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

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/display/msm/qcom,sm8250-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,sm8250-mdss.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Qualcomm SM8250 Display MDSS
  8 
  9 maintainers:
 10   - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
 11 
 12 description:
 13   Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates
 14   sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree
 15   bindings of MDSS are mentioned for SM8250 target.
 16 
 17 $ref: /schemas/display/msm/mdss-common.yaml#
 18 
 19 properties:
 20   compatible:
 21     const: qcom,sm8250-mdss
 22 
 23   clocks:
 24     items:
 25       - description: Display AHB clock from gcc
 26       - description: Display hf axi clock
 27       - description: Display sf axi clock
 28       - description: Display core clock
 29 
 30   clock-names:
 31     items:
 32       - const: iface
 33       - const: bus
 34       - const: nrt_bus
 35       - const: core
 36 
 37   iommus:
 38     maxItems: 1
 39 
 40   interconnects:
 41     maxItems: 2
 42 
 43   interconnect-names:
 44     maxItems: 2
 45 
 46 patternProperties:
 47   "^display-controller@[0-9a-f]+$":
 48     type: object
 49     additionalProperties: true
 50 
 51     properties:
 52       compatible:
 53         const: qcom,sm8250-dpu
 54 
 55   "^displayport-controller@[0-9a-f]+$":
 56     type: object
 57     additionalProperties: true
 58 
 59     properties:
 60       compatible:
 61         items:
 62           - const: qcom,sm8250-dp
 63           - const: qcom,sm8350-dp
 64 
 65   "^dsi@[0-9a-f]+$":
 66     type: object
 67     additionalProperties: true
 68 
 69     properties:
 70       compatible:
 71         items:
 72           - const: qcom,sm8250-dsi-ctrl
 73           - const: qcom,mdss-dsi-ctrl
 74 
 75   "^phy@[0-9a-f]+$":
 76     type: object
 77     additionalProperties: true
 78 
 79     properties:
 80       compatible:
 81         const: qcom,dsi-phy-7nm
 82 
 83 required:
 84   - compatible
 85 
 86 unevaluatedProperties: false
 87 
 88 examples:
 89   - |
 90     #include <dt-bindings/clock/qcom,dispcc-sm8250.h>
 91     #include <dt-bindings/clock/qcom,gcc-sm8250.h>
 92     #include <dt-bindings/clock/qcom,rpmh.h>
 93     #include <dt-bindings/interrupt-controller/arm-gic.h>
 94     #include <dt-bindings/interconnect/qcom,sm8250.h>
 95     #include <dt-bindings/power/qcom,rpmhpd.h>
 96 
 97     display-subsystem@ae00000 {
 98         compatible = "qcom,sm8250-mdss";
 99         reg = <0x0ae00000 0x1000>;
100         reg-names = "mdss";
101 
102         interconnects = <&mmss_noc MASTER_MDP_PORT0 &mc_virt SLAVE_EBI_CH0>,
103                         <&mmss_noc MASTER_MDP_PORT1 &mc_virt SLAVE_EBI_CH0>;
104         interconnect-names = "mdp0-mem", "mdp1-mem";
105 
106         power-domains = <&dispcc MDSS_GDSC>;
107 
108         clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
109                  <&gcc GCC_DISP_HF_AXI_CLK>,
110                  <&gcc GCC_DISP_SF_AXI_CLK>,
111                  <&dispcc DISP_CC_MDSS_MDP_CLK>;
112         clock-names = "iface", "bus", "nrt_bus", "core";
113 
114         interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
115         interrupt-controller;
116         #interrupt-cells = <1>;
117 
118         iommus = <&apps_smmu 0x820 0x402>;
119 
120         #address-cells = <1>;
121         #size-cells = <1>;
122         ranges;
123 
124         display-controller@ae01000 {
125             compatible = "qcom,sm8250-dpu";
126             reg = <0x0ae01000 0x8f000>,
127                   <0x0aeb0000 0x2008>;
128             reg-names = "mdp", "vbif";
129 
130             clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
131                      <&gcc GCC_DISP_HF_AXI_CLK>,
132                      <&dispcc DISP_CC_MDSS_MDP_CLK>,
133                      <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
134             clock-names = "iface", "bus", "core", "vsync";
135 
136             assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
137             assigned-clock-rates = <19200000>;
138 
139             operating-points-v2 = <&mdp_opp_table>;
140             power-domains = <&rpmhpd RPMHPD_MMCX>;
141 
142             interrupt-parent = <&mdss>;
143             interrupts = <0>;
144 
145             ports {
146                 #address-cells = <1>;
147                 #size-cells = <0>;
148 
149                 port@0 {
150                     reg = <0>;
151                     dpu_intf1_out: endpoint {
152                         remote-endpoint = <&dsi0_in>;
153                     };
154                 };
155 
156                 port@1 {
157                     reg = <1>;
158                     dpu_intf2_out: endpoint {
159                         remote-endpoint = <&dsi1_in>;
160                     };
161                 };
162             };
163 
164             mdp_opp_table: opp-table {
165                 compatible = "operating-points-v2";
166 
167                 opp-200000000 {
168                     opp-hz = /bits/ 64 <200000000>;
169                     required-opps = <&rpmhpd_opp_low_svs>;
170                 };
171 
172                 opp-300000000 {
173                     opp-hz = /bits/ 64 <300000000>;
174                     required-opps = <&rpmhpd_opp_svs>;
175                 };
176 
177                 opp-345000000 {
178                     opp-hz = /bits/ 64 <345000000>;
179                     required-opps = <&rpmhpd_opp_svs_l1>;
180                 };
181 
182                 opp-460000000 {
183                     opp-hz = /bits/ 64 <460000000>;
184                     required-opps = <&rpmhpd_opp_nom>;
185                 };
186             };
187         };
188 
189         dsi@ae94000 {
190             compatible = "qcom,sm8250-dsi-ctrl", "qcom,mdss-dsi-ctrl";
191             reg = <0x0ae94000 0x400>;
192             reg-names = "dsi_ctrl";
193 
194             interrupt-parent = <&mdss>;
195             interrupts = <4>;
196 
197             clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
198                      <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
199                      <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
200                      <&dispcc DISP_CC_MDSS_ESC0_CLK>,
201                      <&dispcc DISP_CC_MDSS_AHB_CLK>,
202                      <&gcc GCC_DISP_HF_AXI_CLK>;
203             clock-names = "byte",
204                           "byte_intf",
205                           "pixel",
206                           "core",
207                           "iface",
208                           "bus";
209 
210             assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
211                               <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
212             assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
213 
214             operating-points-v2 = <&dsi_opp_table>;
215             power-domains = <&rpmhpd RPMHPD_MMCX>;
216 
217             phys = <&dsi0_phy>;
218             phy-names = "dsi";
219 
220             #address-cells = <1>;
221             #size-cells = <0>;
222 
223             ports {
224                 #address-cells = <1>;
225                 #size-cells = <0>;
226 
227                 port@0 {
228                     reg = <0>;
229                     dsi0_in: endpoint {
230                         remote-endpoint = <&dpu_intf1_out>;
231                     };
232                 };
233 
234                 port@1 {
235                     reg = <1>;
236                     dsi0_out: endpoint {
237                     };
238                 };
239             };
240 
241             dsi_opp_table: opp-table {
242                 compatible = "operating-points-v2";
243 
244                 opp-187500000 {
245                     opp-hz = /bits/ 64 <187500000>;
246                     required-opps = <&rpmhpd_opp_low_svs>;
247                 };
248 
249                 opp-300000000 {
250                     opp-hz = /bits/ 64 <300000000>;
251                     required-opps = <&rpmhpd_opp_svs>;
252                 };
253 
254                 opp-358000000 {
255                     opp-hz = /bits/ 64 <358000000>;
256                     required-opps = <&rpmhpd_opp_svs_l1>;
257                 };
258             };
259         };
260 
261         dsi0_phy: phy@ae94400 {
262             compatible = "qcom,dsi-phy-7nm";
263             reg = <0x0ae94400 0x200>,
264                   <0x0ae94600 0x280>,
265                   <0x0ae94900 0x260>;
266             reg-names = "dsi_phy",
267                         "dsi_phy_lane",
268                         "dsi_pll";
269 
270             #clock-cells = <1>;
271             #phy-cells = <0>;
272 
273             clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
274                      <&rpmhcc RPMH_CXO_CLK>;
275             clock-names = "iface", "ref";
276             vdds-supply = <&vreg_dsi_phy>;
277         };
278 
279         dsi@ae96000 {
280             compatible = "qcom,sm8250-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,dsi-phy-7nm";
334             reg = <0x0ae96400 0x200>,
335                   <0x0ae96600 0x280>,
336                   <0x0ae96900 0x260>;
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             vdds-supply = <&vreg_dsi_phy>;
348         };
349     };
350 ...

~ [ 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