xref: /openbmc/linux/Documentation/devicetree/bindings/display/msm/qcom,sm6125-mdss.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1*cd188d68SMarijn Suijten# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*cd188d68SMarijn Suijten%YAML 1.2
3*cd188d68SMarijn Suijten---
4*cd188d68SMarijn Suijten$id: http://devicetree.org/schemas/display/msm/qcom,sm6125-mdss.yaml#
5*cd188d68SMarijn Suijten$schema: http://devicetree.org/meta-schemas/core.yaml#
6*cd188d68SMarijn Suijten
7*cd188d68SMarijn Suijtentitle: Qualcomm SM6125 Display MDSS
8*cd188d68SMarijn Suijten
9*cd188d68SMarijn Suijtenmaintainers:
10*cd188d68SMarijn Suijten  - Marijn Suijten <marijn.suijten@somainline.org>
11*cd188d68SMarijn Suijten
12*cd188d68SMarijn Suijtendescription:
13*cd188d68SMarijn Suijten  SM6125 MSM Mobile Display Subsystem (MDSS), which encapsulates sub-blocks
14*cd188d68SMarijn Suijten  like DPU display controller, DSI and DP interfaces etc.
15*cd188d68SMarijn Suijten
16*cd188d68SMarijn Suijten$ref: /schemas/display/msm/mdss-common.yaml#
17*cd188d68SMarijn Suijten
18*cd188d68SMarijn Suijtenproperties:
19*cd188d68SMarijn Suijten  compatible:
20*cd188d68SMarijn Suijten    const: qcom,sm6125-mdss
21*cd188d68SMarijn Suijten
22*cd188d68SMarijn Suijten  clocks:
23*cd188d68SMarijn Suijten    items:
24*cd188d68SMarijn Suijten      - description: Display AHB clock from gcc
25*cd188d68SMarijn Suijten      - description: Display AHB clock
26*cd188d68SMarijn Suijten      - description: Display core clock
27*cd188d68SMarijn Suijten
28*cd188d68SMarijn Suijten  clock-names:
29*cd188d68SMarijn Suijten    items:
30*cd188d68SMarijn Suijten      - const: iface
31*cd188d68SMarijn Suijten      - const: ahb
32*cd188d68SMarijn Suijten      - const: core
33*cd188d68SMarijn Suijten
34*cd188d68SMarijn Suijten  iommus:
35*cd188d68SMarijn Suijten    maxItems: 1
36*cd188d68SMarijn Suijten
37*cd188d68SMarijn Suijten  interconnects:
38*cd188d68SMarijn Suijten    maxItems: 2
39*cd188d68SMarijn Suijten
40*cd188d68SMarijn Suijten  interconnect-names:
41*cd188d68SMarijn Suijten    maxItems: 2
42*cd188d68SMarijn Suijten
43*cd188d68SMarijn SuijtenpatternProperties:
44*cd188d68SMarijn Suijten  "^display-controller@[0-9a-f]+$":
45*cd188d68SMarijn Suijten    type: object
46*cd188d68SMarijn Suijten    properties:
47*cd188d68SMarijn Suijten      compatible:
48*cd188d68SMarijn Suijten        const: qcom,sm6125-dpu
49*cd188d68SMarijn Suijten
50*cd188d68SMarijn Suijten  "^dsi@[0-9a-f]+$":
51*cd188d68SMarijn Suijten    type: object
52*cd188d68SMarijn Suijten    properties:
53*cd188d68SMarijn Suijten      compatible:
54*cd188d68SMarijn Suijten        items:
55*cd188d68SMarijn Suijten          - const: qcom,sm6125-dsi-ctrl
56*cd188d68SMarijn Suijten          - const: qcom,mdss-dsi-ctrl
57*cd188d68SMarijn Suijten
58*cd188d68SMarijn Suijten  "^phy@[0-9a-f]+$":
59*cd188d68SMarijn Suijten    type: object
60*cd188d68SMarijn Suijten    properties:
61*cd188d68SMarijn Suijten      compatible:
62*cd188d68SMarijn Suijten        const: qcom,sm6125-dsi-phy-14nm
63*cd188d68SMarijn Suijten
64*cd188d68SMarijn SuijtenunevaluatedProperties: false
65*cd188d68SMarijn Suijten
66*cd188d68SMarijn Suijtenexamples:
67*cd188d68SMarijn Suijten  - |
68*cd188d68SMarijn Suijten    #include <dt-bindings/clock/qcom,dispcc-sm6125.h>
69*cd188d68SMarijn Suijten    #include <dt-bindings/clock/qcom,gcc-sm6125.h>
70*cd188d68SMarijn Suijten    #include <dt-bindings/clock/qcom,rpmcc.h>
71*cd188d68SMarijn Suijten    #include <dt-bindings/interrupt-controller/arm-gic.h>
72*cd188d68SMarijn Suijten    #include <dt-bindings/power/qcom-rpmpd.h>
73*cd188d68SMarijn Suijten
74*cd188d68SMarijn Suijten    display-subsystem@5e00000 {
75*cd188d68SMarijn Suijten        compatible = "qcom,sm6125-mdss";
76*cd188d68SMarijn Suijten        reg = <0x05e00000 0x1000>;
77*cd188d68SMarijn Suijten        reg-names = "mdss";
78*cd188d68SMarijn Suijten
79*cd188d68SMarijn Suijten        interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
80*cd188d68SMarijn Suijten        interrupt-controller;
81*cd188d68SMarijn Suijten        #interrupt-cells = <1>;
82*cd188d68SMarijn Suijten
83*cd188d68SMarijn Suijten        clocks = <&gcc GCC_DISP_AHB_CLK>,
84*cd188d68SMarijn Suijten                 <&dispcc DISP_CC_MDSS_AHB_CLK>,
85*cd188d68SMarijn Suijten                 <&dispcc DISP_CC_MDSS_MDP_CLK>;
86*cd188d68SMarijn Suijten        clock-names = "iface",
87*cd188d68SMarijn Suijten                      "ahb",
88*cd188d68SMarijn Suijten                      "core";
89*cd188d68SMarijn Suijten
90*cd188d68SMarijn Suijten        power-domains = <&dispcc MDSS_GDSC>;
91*cd188d68SMarijn Suijten
92*cd188d68SMarijn Suijten        iommus = <&apps_smmu 0x400 0x0>;
93*cd188d68SMarijn Suijten
94*cd188d68SMarijn Suijten        #address-cells = <1>;
95*cd188d68SMarijn Suijten        #size-cells = <1>;
96*cd188d68SMarijn Suijten        ranges;
97*cd188d68SMarijn Suijten
98*cd188d68SMarijn Suijten        display-controller@5e01000 {
99*cd188d68SMarijn Suijten            compatible = "qcom,sm6125-dpu";
100*cd188d68SMarijn Suijten            reg = <0x05e01000 0x83208>,
101*cd188d68SMarijn Suijten                  <0x05eb0000 0x2008>;
102*cd188d68SMarijn Suijten            reg-names = "mdp", "vbif";
103*cd188d68SMarijn Suijten
104*cd188d68SMarijn Suijten            interrupt-parent = <&mdss>;
105*cd188d68SMarijn Suijten            interrupts = <0>;
106*cd188d68SMarijn Suijten
107*cd188d68SMarijn Suijten            clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
108*cd188d68SMarijn Suijten                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
109*cd188d68SMarijn Suijten                     <&dispcc DISP_CC_MDSS_ROT_CLK>,
110*cd188d68SMarijn Suijten                     <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
111*cd188d68SMarijn Suijten                     <&dispcc DISP_CC_MDSS_MDP_CLK>,
112*cd188d68SMarijn Suijten                     <&dispcc DISP_CC_MDSS_VSYNC_CLK>,
113*cd188d68SMarijn Suijten                     <&gcc GCC_DISP_THROTTLE_CORE_CLK>;
114*cd188d68SMarijn Suijten            clock-names = "bus",
115*cd188d68SMarijn Suijten                          "iface",
116*cd188d68SMarijn Suijten                          "rot",
117*cd188d68SMarijn Suijten                          "lut",
118*cd188d68SMarijn Suijten                          "core",
119*cd188d68SMarijn Suijten                          "vsync",
120*cd188d68SMarijn Suijten                          "throttle";
121*cd188d68SMarijn Suijten            assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
122*cd188d68SMarijn Suijten            assigned-clock-rates = <19200000>;
123*cd188d68SMarijn Suijten
124*cd188d68SMarijn Suijten            operating-points-v2 = <&mdp_opp_table>;
125*cd188d68SMarijn Suijten            power-domains = <&rpmpd SM6125_VDDCX>;
126*cd188d68SMarijn Suijten
127*cd188d68SMarijn Suijten            ports {
128*cd188d68SMarijn Suijten                #address-cells = <1>;
129*cd188d68SMarijn Suijten                #size-cells = <0>;
130*cd188d68SMarijn Suijten
131*cd188d68SMarijn Suijten                port@0 {
132*cd188d68SMarijn Suijten                    reg = <0>;
133*cd188d68SMarijn Suijten                    dpu_intf1_out: endpoint {
134*cd188d68SMarijn Suijten                        remote-endpoint = <&mdss_dsi0_in>;
135*cd188d68SMarijn Suijten                    };
136*cd188d68SMarijn Suijten                };
137*cd188d68SMarijn Suijten            };
138*cd188d68SMarijn Suijten        };
139*cd188d68SMarijn Suijten
140*cd188d68SMarijn Suijten        dsi@5e94000 {
141*cd188d68SMarijn Suijten            compatible = "qcom,sm6125-dsi-ctrl", "qcom,mdss-dsi-ctrl";
142*cd188d68SMarijn Suijten            reg = <0x05e94000 0x400>;
143*cd188d68SMarijn Suijten            reg-names = "dsi_ctrl";
144*cd188d68SMarijn Suijten
145*cd188d68SMarijn Suijten            interrupt-parent = <&mdss>;
146*cd188d68SMarijn Suijten            interrupts = <4>;
147*cd188d68SMarijn Suijten
148*cd188d68SMarijn Suijten            clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
149*cd188d68SMarijn Suijten                     <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
150*cd188d68SMarijn Suijten                     <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
151*cd188d68SMarijn Suijten                     <&dispcc DISP_CC_MDSS_ESC0_CLK>,
152*cd188d68SMarijn Suijten                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
153*cd188d68SMarijn Suijten                     <&gcc GCC_DISP_HF_AXI_CLK>;
154*cd188d68SMarijn Suijten            clock-names = "byte",
155*cd188d68SMarijn Suijten                          "byte_intf",
156*cd188d68SMarijn Suijten                          "pixel",
157*cd188d68SMarijn Suijten                          "core",
158*cd188d68SMarijn Suijten                          "iface",
159*cd188d68SMarijn Suijten                          "bus";
160*cd188d68SMarijn Suijten            assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
161*cd188d68SMarijn Suijten                      <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
162*cd188d68SMarijn Suijten            assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
163*cd188d68SMarijn Suijten
164*cd188d68SMarijn Suijten            operating-points-v2 = <&dsi_opp_table>;
165*cd188d68SMarijn Suijten            power-domains = <&rpmpd SM6125_VDDCX>;
166*cd188d68SMarijn Suijten
167*cd188d68SMarijn Suijten            phys = <&mdss_dsi0_phy>;
168*cd188d68SMarijn Suijten            phy-names = "dsi";
169*cd188d68SMarijn Suijten
170*cd188d68SMarijn Suijten            #address-cells = <1>;
171*cd188d68SMarijn Suijten            #size-cells = <0>;
172*cd188d68SMarijn Suijten
173*cd188d68SMarijn Suijten            ports {
174*cd188d68SMarijn Suijten                #address-cells = <1>;
175*cd188d68SMarijn Suijten                #size-cells = <0>;
176*cd188d68SMarijn Suijten
177*cd188d68SMarijn Suijten                port@0 {
178*cd188d68SMarijn Suijten                    reg = <0>;
179*cd188d68SMarijn Suijten                    mdss_dsi0_in: endpoint {
180*cd188d68SMarijn Suijten                        remote-endpoint = <&dpu_intf1_out>;
181*cd188d68SMarijn Suijten                    };
182*cd188d68SMarijn Suijten                };
183*cd188d68SMarijn Suijten
184*cd188d68SMarijn Suijten                port@1 {
185*cd188d68SMarijn Suijten                    reg = <1>;
186*cd188d68SMarijn Suijten                    mdss_dsi0_out: endpoint {
187*cd188d68SMarijn Suijten                    };
188*cd188d68SMarijn Suijten                };
189*cd188d68SMarijn Suijten            };
190*cd188d68SMarijn Suijten        };
191*cd188d68SMarijn Suijten
192*cd188d68SMarijn Suijten        phy@5e94400 {
193*cd188d68SMarijn Suijten            compatible = "qcom,sm6125-dsi-phy-14nm";
194*cd188d68SMarijn Suijten            reg = <0x05e94400 0x100>,
195*cd188d68SMarijn Suijten                  <0x05e94500 0x300>,
196*cd188d68SMarijn Suijten                  <0x05e94800 0x188>;
197*cd188d68SMarijn Suijten            reg-names = "dsi_phy",
198*cd188d68SMarijn Suijten                        "dsi_phy_lane",
199*cd188d68SMarijn Suijten                        "dsi_pll";
200*cd188d68SMarijn Suijten
201*cd188d68SMarijn Suijten            #clock-cells = <1>;
202*cd188d68SMarijn Suijten            #phy-cells = <0>;
203*cd188d68SMarijn Suijten
204*cd188d68SMarijn Suijten            clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
205*cd188d68SMarijn Suijten                     <&rpmcc RPM_SMD_XO_CLK_SRC>;
206*cd188d68SMarijn Suijten            clock-names = "iface",
207*cd188d68SMarijn Suijten                          "ref";
208*cd188d68SMarijn Suijten
209*cd188d68SMarijn Suijten            required-opps = <&rpmpd_opp_nom>;
210*cd188d68SMarijn Suijten            power-domains = <&rpmpd SM6125_VDDMX>;
211*cd188d68SMarijn Suijten        };
212*cd188d68SMarijn Suijten    };
213*cd188d68SMarijn Suijten...
214