xref: /openbmc/linux/Documentation/devicetree/bindings/display/msm/qcom,sm8350-mdss.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2430e11f4SRobert Foss%YAML 1.2
3430e11f4SRobert Foss---
4430e11f4SRobert Foss$id: http://devicetree.org/schemas/display/msm/qcom,sm8350-mdss.yaml#
5430e11f4SRobert Foss$schema: http://devicetree.org/meta-schemas/core.yaml#
6430e11f4SRobert Foss
7430e11f4SRobert Fosstitle: Qualcomm SM8350 Display MDSS
8430e11f4SRobert Foss
9430e11f4SRobert Fossmaintainers:
10430e11f4SRobert Foss  - Robert Foss <robert.foss@linaro.org>
11430e11f4SRobert Foss
12430e11f4SRobert Fossdescription:
13430e11f4SRobert Foss  MSM Mobile Display Subsystem(MDSS) that encapsulates sub-blocks like
14430e11f4SRobert Foss  DPU display controller, DSI and DP interfaces etc.
15430e11f4SRobert Foss
16430e11f4SRobert Foss$ref: /schemas/display/msm/mdss-common.yaml#
17430e11f4SRobert Foss
18430e11f4SRobert Fossproperties:
19430e11f4SRobert Foss  compatible:
20430e11f4SRobert Foss    items:
21430e11f4SRobert Foss      - const: qcom,sm8350-mdss
22430e11f4SRobert Foss
23430e11f4SRobert Foss  clocks:
24430e11f4SRobert Foss    items:
25430e11f4SRobert Foss      - description: Display AHB clock from gcc
26430e11f4SRobert Foss      - description: Display hf axi clock
27430e11f4SRobert Foss      - description: Display sf axi clock
28430e11f4SRobert Foss      - description: Display core clock
29430e11f4SRobert Foss
30430e11f4SRobert Foss  clock-names:
31430e11f4SRobert Foss    items:
32430e11f4SRobert Foss      - const: iface
33430e11f4SRobert Foss      - const: bus
34430e11f4SRobert Foss      - const: nrt_bus
35430e11f4SRobert Foss      - const: core
36430e11f4SRobert Foss
37430e11f4SRobert Foss  iommus:
38430e11f4SRobert Foss    maxItems: 1
39430e11f4SRobert Foss
40430e11f4SRobert Foss  interconnects:
41430e11f4SRobert Foss    maxItems: 2
42430e11f4SRobert Foss
43430e11f4SRobert Foss  interconnect-names:
44430e11f4SRobert Foss    items:
45430e11f4SRobert Foss      - const: mdp0-mem
46430e11f4SRobert Foss      - const: mdp1-mem
47430e11f4SRobert Foss
48430e11f4SRobert FosspatternProperties:
49430e11f4SRobert Foss  "^display-controller@[0-9a-f]+$":
50430e11f4SRobert Foss    type: object
51430e11f4SRobert Foss    properties:
52430e11f4SRobert Foss      compatible:
53430e11f4SRobert Foss        const: qcom,sm8350-dpu
54430e11f4SRobert Foss
55648c40bbSNeil Armstrong  "^displayport-controller@[0-9a-f]+$":
56648c40bbSNeil Armstrong    type: object
57648c40bbSNeil Armstrong    properties:
58648c40bbSNeil Armstrong      compatible:
59648c40bbSNeil Armstrong        const: qcom,sm8350-dp
60648c40bbSNeil Armstrong
61430e11f4SRobert Foss  "^dsi@[0-9a-f]+$":
62430e11f4SRobert Foss    type: object
63430e11f4SRobert Foss    properties:
64430e11f4SRobert Foss      compatible:
650c0f65c6SBryan O'Donoghue        items:
660c0f65c6SBryan O'Donoghue          - const: qcom,sm8350-dsi-ctrl
670c0f65c6SBryan O'Donoghue          - const: qcom,mdss-dsi-ctrl
68430e11f4SRobert Foss
69430e11f4SRobert Foss  "^phy@[0-9a-f]+$":
70430e11f4SRobert Foss    type: object
71430e11f4SRobert Foss    properties:
72430e11f4SRobert Foss      compatible:
7358fab797SKonrad Dybcio        const: qcom,sm8350-dsi-phy-5nm
74430e11f4SRobert Foss
75430e11f4SRobert FossunevaluatedProperties: false
76430e11f4SRobert Foss
77430e11f4SRobert Fossexamples:
78430e11f4SRobert Foss  - |
79430e11f4SRobert Foss    #include <dt-bindings/clock/qcom,dispcc-sm8350.h>
80430e11f4SRobert Foss    #include <dt-bindings/clock/qcom,gcc-sm8350.h>
81430e11f4SRobert Foss    #include <dt-bindings/clock/qcom,rpmh.h>
82430e11f4SRobert Foss    #include <dt-bindings/interrupt-controller/arm-gic.h>
83430e11f4SRobert Foss    #include <dt-bindings/interconnect/qcom,sm8350.h>
84014f3272SRohit Agarwal    #include <dt-bindings/power/qcom,rpmhpd.h>
85430e11f4SRobert Foss
86430e11f4SRobert Foss    display-subsystem@ae00000 {
87430e11f4SRobert Foss        compatible = "qcom,sm8350-mdss";
88430e11f4SRobert Foss        reg = <0x0ae00000 0x1000>;
89430e11f4SRobert Foss        reg-names = "mdss";
90430e11f4SRobert Foss
91430e11f4SRobert Foss        interconnects = <&mmss_noc MASTER_MDP0 0 &mc_virt SLAVE_EBI1 0>,
92430e11f4SRobert Foss                        <&mmss_noc MASTER_MDP1 0 &mc_virt SLAVE_EBI1 0>;
93430e11f4SRobert Foss        interconnect-names = "mdp0-mem", "mdp1-mem";
94430e11f4SRobert Foss
95430e11f4SRobert Foss        power-domains = <&dispcc MDSS_GDSC>;
96430e11f4SRobert Foss        resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
97430e11f4SRobert Foss
98430e11f4SRobert Foss        clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
99430e11f4SRobert Foss                 <&gcc GCC_DISP_HF_AXI_CLK>,
100430e11f4SRobert Foss                 <&gcc GCC_DISP_SF_AXI_CLK>,
101430e11f4SRobert Foss                 <&dispcc DISP_CC_MDSS_MDP_CLK>;
102430e11f4SRobert Foss        clock-names = "iface", "bus", "nrt_bus", "core";
103430e11f4SRobert Foss
104430e11f4SRobert Foss        iommus = <&apps_smmu 0x820 0x402>;
105430e11f4SRobert Foss
106430e11f4SRobert Foss        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
107430e11f4SRobert Foss        interrupt-controller;
108430e11f4SRobert Foss        #interrupt-cells = <1>;
109430e11f4SRobert Foss
110430e11f4SRobert Foss        #address-cells = <1>;
111430e11f4SRobert Foss        #size-cells = <1>;
112430e11f4SRobert Foss        ranges;
113430e11f4SRobert Foss
114430e11f4SRobert Foss        display-controller@ae01000 {
115430e11f4SRobert Foss            compatible = "qcom,sm8350-dpu";
116430e11f4SRobert Foss            reg = <0x0ae01000 0x8f000>,
117430e11f4SRobert Foss                  <0x0aeb0000 0x2008>;
118430e11f4SRobert Foss            reg-names = "mdp", "vbif";
119430e11f4SRobert Foss
120430e11f4SRobert Foss            clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
121430e11f4SRobert Foss                     <&gcc GCC_DISP_SF_AXI_CLK>,
122430e11f4SRobert Foss                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
123430e11f4SRobert Foss                     <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
124430e11f4SRobert Foss                     <&dispcc DISP_CC_MDSS_MDP_CLK>,
125430e11f4SRobert Foss                     <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
126430e11f4SRobert Foss            clock-names = "bus",
127430e11f4SRobert Foss                          "nrt_bus",
128430e11f4SRobert Foss                          "iface",
129430e11f4SRobert Foss                          "lut",
130430e11f4SRobert Foss                          "core",
131430e11f4SRobert Foss                          "vsync";
132430e11f4SRobert Foss
133430e11f4SRobert Foss            assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
134430e11f4SRobert Foss            assigned-clock-rates = <19200000>;
135430e11f4SRobert Foss
136430e11f4SRobert Foss            operating-points-v2 = <&mdp_opp_table>;
137014f3272SRohit Agarwal            power-domains = <&rpmhpd RPMHPD_MMCX>;
138430e11f4SRobert Foss
139430e11f4SRobert Foss            interrupt-parent = <&mdss>;
140430e11f4SRobert Foss            interrupts = <0>;
141430e11f4SRobert Foss
142430e11f4SRobert Foss            ports {
143430e11f4SRobert Foss                #address-cells = <1>;
144430e11f4SRobert Foss                #size-cells = <0>;
145430e11f4SRobert Foss
146430e11f4SRobert Foss                port@0 {
147430e11f4SRobert Foss                    reg = <0>;
148430e11f4SRobert Foss                    dpu_intf1_out: endpoint {
149430e11f4SRobert Foss                        remote-endpoint = <&dsi0_in>;
150430e11f4SRobert Foss                    };
151430e11f4SRobert Foss                };
152430e11f4SRobert Foss            };
153430e11f4SRobert Foss
154430e11f4SRobert Foss            mdp_opp_table: opp-table {
155430e11f4SRobert Foss                compatible = "operating-points-v2";
156430e11f4SRobert Foss
157430e11f4SRobert Foss                opp-200000000 {
158430e11f4SRobert Foss                    opp-hz = /bits/ 64 <200000000>;
159430e11f4SRobert Foss                    required-opps = <&rpmhpd_opp_low_svs>;
160430e11f4SRobert Foss                };
161430e11f4SRobert Foss
162430e11f4SRobert Foss                opp-300000000 {
163430e11f4SRobert Foss                    opp-hz = /bits/ 64 <300000000>;
164430e11f4SRobert Foss                    required-opps = <&rpmhpd_opp_svs>;
165430e11f4SRobert Foss                };
166430e11f4SRobert Foss
167430e11f4SRobert Foss                opp-345000000 {
168430e11f4SRobert Foss                    opp-hz = /bits/ 64 <345000000>;
169430e11f4SRobert Foss                    required-opps = <&rpmhpd_opp_svs_l1>;
170430e11f4SRobert Foss                };
171430e11f4SRobert Foss
172430e11f4SRobert Foss                opp-460000000 {
173430e11f4SRobert Foss                    opp-hz = /bits/ 64 <460000000>;
174430e11f4SRobert Foss                    required-opps = <&rpmhpd_opp_nom>;
175430e11f4SRobert Foss                };
176430e11f4SRobert Foss            };
177430e11f4SRobert Foss        };
178430e11f4SRobert Foss
179430e11f4SRobert Foss        dsi0: dsi@ae94000 {
1800c0f65c6SBryan O'Donoghue            compatible = "qcom,sm8350-dsi-ctrl", "qcom,mdss-dsi-ctrl";
181430e11f4SRobert Foss            reg = <0x0ae94000 0x400>;
182430e11f4SRobert Foss            reg-names = "dsi_ctrl";
183430e11f4SRobert Foss
184430e11f4SRobert Foss            interrupt-parent = <&mdss>;
185430e11f4SRobert Foss            interrupts = <4>;
186430e11f4SRobert Foss
187430e11f4SRobert Foss            clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
188430e11f4SRobert Foss                     <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
189430e11f4SRobert Foss                     <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
190430e11f4SRobert Foss                     <&dispcc DISP_CC_MDSS_ESC0_CLK>,
191430e11f4SRobert Foss                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
192430e11f4SRobert Foss                     <&gcc GCC_DISP_HF_AXI_CLK>;
193430e11f4SRobert Foss            clock-names = "byte",
194430e11f4SRobert Foss                      "byte_intf",
195430e11f4SRobert Foss                      "pixel",
196430e11f4SRobert Foss                      "core",
197430e11f4SRobert Foss                      "iface",
198430e11f4SRobert Foss                      "bus";
199430e11f4SRobert Foss
200430e11f4SRobert Foss            assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
201430e11f4SRobert Foss                          <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
202430e11f4SRobert Foss            assigned-clock-parents = <&mdss_dsi0_phy 0>,
203430e11f4SRobert Foss                                 <&mdss_dsi0_phy 1>;
204430e11f4SRobert Foss
205430e11f4SRobert Foss            operating-points-v2 = <&dsi_opp_table>;
206014f3272SRohit Agarwal            power-domains = <&rpmhpd RPMHPD_MMCX>;
207430e11f4SRobert Foss
208430e11f4SRobert Foss            phys = <&mdss_dsi0_phy>;
209430e11f4SRobert Foss
210430e11f4SRobert Foss            ports {
211430e11f4SRobert Foss             #address-cells = <1>;
212430e11f4SRobert Foss                #size-cells = <0>;
213430e11f4SRobert Foss
214430e11f4SRobert Foss                port@0 {
215430e11f4SRobert Foss                    reg = <0>;
216430e11f4SRobert Foss                    dsi0_in: endpoint {
217430e11f4SRobert Foss                        remote-endpoint = <&dpu_intf1_out>;
218430e11f4SRobert Foss                    };
219430e11f4SRobert Foss                };
220430e11f4SRobert Foss
221430e11f4SRobert Foss                port@1 {
222430e11f4SRobert Foss                    reg = <1>;
223430e11f4SRobert Foss                    dsi0_out: endpoint {
224430e11f4SRobert Foss                    };
225430e11f4SRobert Foss                };
226430e11f4SRobert Foss            };
227430e11f4SRobert Foss        };
228430e11f4SRobert Foss    };
229430e11f4SRobert Foss...
230