~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/display/msm/qcom,sm8550-mdss.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/display/msm/qcom,sm8550-mdss.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Qualcomm SM8550 Display MDSS
  8 
  9 maintainers:
 10   - Neil Armstrong <neil.armstrong@linaro.org>
 11 
 12 description:
 13   SM8550 MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like
 14   DPU display controller, DSI and DP interfaces etc.
 15 
 16 $ref: /schemas/display/msm/mdss-common.yaml#
 17 
 18 properties:
 19   compatible:
 20     const: qcom,sm8550-mdss
 21 
 22   clocks:
 23     items:
 24       - description: Display MDSS AHB
 25       - description: Display AHB
 26       - description: Display hf AXI
 27       - description: Display core
 28 
 29   iommus:
 30     maxItems: 1
 31 
 32   interconnects:
 33     maxItems: 2
 34 
 35   interconnect-names:
 36     maxItems: 2
 37 
 38 patternProperties:
 39   "^display-controller@[0-9a-f]+$":
 40     type: object
 41     additionalProperties: true
 42 
 43     properties:
 44       compatible:
 45         const: qcom,sm8550-dpu
 46 
 47   "^displayport-controller@[0-9a-f]+$":
 48     type: object
 49     additionalProperties: true
 50 
 51     properties:
 52       compatible:
 53         items:
 54           - const: qcom,sm8550-dp
 55           - const: qcom,sm8350-dp
 56 
 57   "^dsi@[0-9a-f]+$":
 58     type: object
 59     additionalProperties: true
 60 
 61     properties:
 62       compatible:
 63         items:
 64           - const: qcom,sm8550-dsi-ctrl
 65           - const: qcom,mdss-dsi-ctrl
 66 
 67   "^phy@[0-9a-f]+$":
 68     type: object
 69     additionalProperties: true
 70 
 71     properties:
 72       compatible:
 73         const: qcom,sm8550-dsi-phy-4nm
 74 
 75 required:
 76   - compatible
 77 
 78 unevaluatedProperties: false
 79 
 80 examples:
 81   - |
 82     #include <dt-bindings/clock/qcom,sm8550-dispcc.h>
 83     #include <dt-bindings/clock/qcom,sm8550-gcc.h>
 84     #include <dt-bindings/clock/qcom,rpmh.h>
 85     #include <dt-bindings/interrupt-controller/arm-gic.h>
 86     #include <dt-bindings/interconnect/qcom,sm8550-rpmh.h>
 87     #include <dt-bindings/power/qcom,rpmhpd.h>
 88 
 89     display-subsystem@ae00000 {
 90         compatible = "qcom,sm8550-mdss";
 91         reg = <0x0ae00000 0x1000>;
 92         reg-names = "mdss";
 93 
 94         interconnects = <&mmss_noc MASTER_MDP 0 &gem_noc SLAVE_LLCC 0>,
 95                         <&mc_virt MASTER_LLCC 0 &mc_virt SLAVE_EBI1 0>;
 96         interconnect-names = "mdp0-mem", "mdp1-mem";
 97 
 98         resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
 99 
100         power-domains = <&dispcc MDSS_GDSC>;
101 
102         clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
103                  <&gcc GCC_DISP_AHB_CLK>,
104                  <&gcc GCC_DISP_HF_AXI_CLK>,
105                  <&dispcc DISP_CC_MDSS_MDP_CLK>;
106         clock-names = "iface", "bus", "nrt_bus", "core";
107 
108         interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
109         interrupt-controller;
110         #interrupt-cells = <1>;
111 
112         iommus = <&apps_smmu 0x1c00 0x2>;
113 
114         #address-cells = <1>;
115         #size-cells = <1>;
116         ranges;
117 
118         display-controller@ae01000 {
119             compatible = "qcom,sm8550-dpu";
120             reg = <0x0ae01000 0x8f000>,
121                   <0x0aeb0000 0x2008>;
122             reg-names = "mdp", "vbif";
123 
124             clocks = <&gcc GCC_DISP_AHB_CLK>,
125                     <&gcc GCC_DISP_HF_AXI_CLK>,
126                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
127                     <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
128                     <&dispcc DISP_CC_MDSS_MDP_CLK>,
129                     <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
130             clock-names = "bus",
131                           "nrt_bus",
132                           "iface",
133                           "lut",
134                           "core",
135                           "vsync";
136 
137             assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
138             assigned-clock-rates = <19200000>;
139 
140             operating-points-v2 = <&mdp_opp_table>;
141             power-domains = <&rpmhpd RPMHPD_MMCX>;
142 
143             interrupt-parent = <&mdss>;
144             interrupts = <0>;
145 
146             ports {
147                 #address-cells = <1>;
148                 #size-cells = <0>;
149 
150                 port@0 {
151                     reg = <0>;
152                     dpu_intf1_out: endpoint {
153                         remote-endpoint = <&dsi0_in>;
154                     };
155                 };
156 
157                 port@1 {
158                     reg = <1>;
159                     dpu_intf2_out: endpoint {
160                         remote-endpoint = <&dsi1_in>;
161                     };
162                 };
163             };
164 
165             mdp_opp_table: opp-table {
166                 compatible = "operating-points-v2";
167 
168                 opp-200000000 {
169                     opp-hz = /bits/ 64 <200000000>;
170                     required-opps = <&rpmhpd_opp_low_svs>;
171                 };
172 
173                 opp-325000000 {
174                     opp-hz = /bits/ 64 <325000000>;
175                     required-opps = <&rpmhpd_opp_svs>;
176                 };
177 
178                 opp-375000000 {
179                     opp-hz = /bits/ 64 <375000000>;
180                     required-opps = <&rpmhpd_opp_svs_l1>;
181                 };
182 
183                 opp-514000000 {
184                     opp-hz = /bits/ 64 <514000000>;
185                     required-opps = <&rpmhpd_opp_nom>;
186                 };
187             };
188         };
189 
190         dsi@ae94000 {
191             compatible = "qcom,sm8550-dsi-ctrl", "qcom,mdss-dsi-ctrl";
192             reg = <0x0ae94000 0x400>;
193             reg-names = "dsi_ctrl";
194 
195             interrupt-parent = <&mdss>;
196             interrupts = <4>;
197 
198             clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
199                      <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
200                      <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
201                      <&dispcc DISP_CC_MDSS_ESC0_CLK>,
202                      <&dispcc DISP_CC_MDSS_AHB_CLK>,
203                      <&gcc GCC_DISP_HF_AXI_CLK>;
204             clock-names = "byte",
205                           "byte_intf",
206                           "pixel",
207                           "core",
208                           "iface",
209                           "bus";
210 
211             assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
212                               <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
213             assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
214 
215             operating-points-v2 = <&dsi_opp_table>;
216             power-domains = <&rpmhpd RPMHPD_MMCX>;
217 
218             phys = <&dsi0_phy>;
219             phy-names = "dsi";
220 
221             #address-cells = <1>;
222             #size-cells = <0>;
223 
224             ports {
225                 #address-cells = <1>;
226                 #size-cells = <0>;
227 
228                 port@0 {
229                     reg = <0>;
230                     dsi0_in: endpoint {
231                         remote-endpoint = <&dpu_intf1_out>;
232                     };
233                 };
234 
235                 port@1 {
236                     reg = <1>;
237                     dsi0_out: endpoint {
238                     };
239                 };
240             };
241 
242             dsi_opp_table: opp-table {
243                 compatible = "operating-points-v2";
244 
245                 opp-187500000 {
246                     opp-hz = /bits/ 64 <187500000>;
247                     required-opps = <&rpmhpd_opp_low_svs>;
248                 };
249 
250                 opp-300000000 {
251                     opp-hz = /bits/ 64 <300000000>;
252                     required-opps = <&rpmhpd_opp_svs>;
253                 };
254 
255                 opp-358000000 {
256                     opp-hz = /bits/ 64 <358000000>;
257                     required-opps = <&rpmhpd_opp_svs_l1>;
258                 };
259             };
260         };
261 
262         dsi0_phy: phy@ae94400 {
263             compatible = "qcom,sm8550-dsi-phy-4nm";
264             reg = <0x0ae95000 0x200>,
265                   <0x0ae95200 0x280>,
266                   <0x0ae95500 0x400>;
267             reg-names = "dsi_phy",
268                         "dsi_phy_lane",
269                         "dsi_pll";
270 
271             #clock-cells = <1>;
272             #phy-cells = <0>;
273 
274             clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
275                      <&rpmhcc RPMH_CXO_CLK>;
276             clock-names = "iface", "ref";
277         };
278 
279         dsi@ae96000 {
280             compatible = "qcom,sm8550-dsi-ctrl", "qcom,mdss-dsi-ctrl";
281             reg = <0x0ae96000 0x400>;
282             reg-names = "dsi_ctrl";
283 
284             interrupt-parent = <&mdss>;
285             interrupts = <5>;
286 
287             clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
288                      <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
289                      <&dispcc DISP_CC_MDSS_PCLK1_CLK>,
290                      <&dispcc DISP_CC_MDSS_ESC1_CLK>,
291                      <&dispcc DISP_CC_MDSS_AHB_CLK>,
292                      <&gcc GCC_DISP_HF_AXI_CLK>;
293             clock-names = "byte",
294                           "byte_intf",
295                           "pixel",
296                           "core",
297                           "iface",
298                           "bus";
299 
300             assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>,
301                               <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>;
302             assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>;
303 
304             operating-points-v2 = <&dsi_opp_table>;
305             power-domains = <&rpmhpd RPMHPD_MMCX>;
306 
307             phys = <&dsi1_phy>;
308             phy-names = "dsi";
309 
310             #address-cells = <1>;
311             #size-cells = <0>;
312 
313             ports {
314                 #address-cells = <1>;
315                 #size-cells = <0>;
316 
317                 port@0 {
318                     reg = <0>;
319                     dsi1_in: endpoint {
320                         remote-endpoint = <&dpu_intf2_out>;
321                     };
322                 };
323 
324                 port@1 {
325                     reg = <1>;
326                     dsi1_out: endpoint {
327                     };
328                 };
329             };
330         };
331 
332         dsi1_phy: phy@ae96400 {
333             compatible = "qcom,sm8550-dsi-phy-4nm";
334             reg = <0x0ae97000 0x200>,
335                   <0x0ae97200 0x280>,
336                   <0x0ae97500 0x400>;
337             reg-names = "dsi_phy",
338                         "dsi_phy_lane",
339                         "dsi_pll";
340 
341             #clock-cells = <1>;
342             #phy-cells = <0>;
343 
344             clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
345                      <&rpmhcc RPMH_CXO_CLK>;
346             clock-names = "iface", "ref";
347         };
348     };
349 ...

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php