[PATCH v4 1/3] arm64: dts: qcom: sdm845: Add dpu to sdm845 dts file
Doug Anderson
dianders at chromium.org
Fri Nov 9 00:56:51 UTC 2018
Hi,
On Fri, Nov 2, 2018 at 3:26 PM Jeykumar Sankaran <jsanka at codeaurora.org> wrote:
>
> DPU is short for the Display Processing Unit. It is the display
> controller on Qualcomm SDM845 chips.
>
> This change adds MDSS and DSI nodes to enable display on the
> target device.
>
> Changes in v2:
> - Beefed up commit message
> - Use SoC specific compatibles for mdss and dpu (Rob H)
> - Use assigned-clocks to set initial clock frequency(Rob H)
> Changes in v3:
> - added IOMMU node
> - Fix device naming (remove _phys)
> - Use correct IRQ_TYPE in interrupt specifiers
> Changes in v4:
> - move mdss node to preserve the unit address sort order
> - remove _clk suffix from dsi clocks
> (both the comments are from Doug Anderson)
>
> Signed-off-by: Jeykumar Sankaran <jsanka at codeaurora.org>
> Signed-off-by: Sean Paul <seanpaul at chromium.org>
> ---
> arch/arm64/boot/dts/qcom/sdm845.dtsi | 191 +++++++++++++++++++++++++++++++++++
> 1 file changed, 191 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> index b72bdb0..5728b4c 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> @@ -1248,6 +1248,197 @@
> };
> };
>
> + mdss: mdss at ae00000 {
> + compatible = "qcom,sdm845-mdss";
> + reg = <0xae00000 0x1000>;
> + reg-names = "mdss";
> +
> + power-domains = <&dispcc 0>;
Could be done in a follow-up patch, but technically the above should be:
power-domains = <&dispcc MDSS_GDSC>;
> + dsi0: dsi at ae94000 {
> + compatible = "qcom,mdss-dsi-ctrl";
> + reg = <0xae94000 0x400>;
> + reg-names = "dsi_ctrl";
> +
> + interrupt-parent = <&mdss>;
> + interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
Just out of curiousity, where does the 4 comes from? I guess this matches:
#define MDSS_HW_INTR_STATUS_INTR_DSI0 0x00000010
#define MDSS_HW_INTR_STATUS_INTR_DSI1 0x00000020
...where 0x10 == (1 << 4)
I don't see any bindings for this define so I guess hardcoding it is
fine (and the 5 for DSI1).
> + dsi0_phy: dsi-phy at ae94400 {
> + compatible = "qcom,dsi-phy-10nm";
> + reg = <0xae94400 0x200>,
> + <0xae94a00 0x1e0>,
> + <0xae94600 0x280>;
> + reg-names = "dsi_phy",
> + "dsi_pll",
> + "dsi_phy_lane";
> +
> + #clock-cells = <1>;
> + #phy-cells = <0>;
> +
> + clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>;
> + clock-names = "iface";
> + };
+Matthias will probably want to base a future patch on this one since
he's trying to hook the clocks up more properly. ...but what you have
above matches the current bindings so I think we're good.
Overall: I am not massively familiar with display / bridge / panel
bindings but as far as I can tell this patch is good and ready to
land. Future work (like fixing the nit about using the power domain
#define) can always be done in a follow-up patch. Thus:
Reviewed-by: Douglas Anderson <dianders at chromium.org>
I've tested this patch and it's helped me get a working display. Thus:
Tested-by: Douglas Anderson <dianders at chromium.org>
-Doug
More information about the dri-devel
mailing list