File Index
Files and directories
Sign in
FILE

dsi-controller-main.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml YAML
  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/dsi-controller-main.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Qualcomm Display DSI controller
  8
  9maintainers:
 10  - Krishna Manikandan <quic_mkrishn@quicinc.com>
 11
 12properties:
 13  compatible:
 14    oneOf:
 15      - items:
 16          - enum:
 17              - qcom,apq8064-dsi-ctrl
 18              - qcom,msm8226-dsi-ctrl
 19              - qcom,msm8916-dsi-ctrl
 20              - qcom,msm8953-dsi-ctrl
 21              - qcom,msm8974-dsi-ctrl
 22              - qcom,msm8976-dsi-ctrl
 23              - qcom,msm8996-dsi-ctrl
 24              - qcom,msm8998-dsi-ctrl
 25              - qcom,qcm2290-dsi-ctrl
 26              - qcom,sa8775p-dsi-ctrl
 27              - qcom,sar2130p-dsi-ctrl
 28              - qcom,sc7180-dsi-ctrl
 29              - qcom,sc7280-dsi-ctrl
 30              - qcom,sc8180x-dsi-ctrl
 31              - qcom,sdm660-dsi-ctrl
 32              - qcom,sdm670-dsi-ctrl
 33              - qcom,sdm845-dsi-ctrl
 34              - qcom,sm6115-dsi-ctrl
 35              - qcom,sm6125-dsi-ctrl
 36              - qcom,sm6150-dsi-ctrl
 37              - qcom,sm6350-dsi-ctrl
 38              - qcom,sm6375-dsi-ctrl
 39              - qcom,sm7150-dsi-ctrl
 40              - qcom,sm8150-dsi-ctrl
 41              - qcom,sm8250-dsi-ctrl
 42              - qcom,sm8350-dsi-ctrl
 43              - qcom,sm8450-dsi-ctrl
 44              - qcom,sm8550-dsi-ctrl
 45              - qcom,sm8650-dsi-ctrl
 46              - qcom,sm8750-dsi-ctrl
 47          - const: qcom,mdss-dsi-ctrl
 48      - enum:
 49          - qcom,dsi-ctrl-6g-qcm2290
 50          - qcom,mdss-dsi-ctrl # This should always come with an SoC-specific compatible
 51        deprecated: true
 52
 53  reg:
 54    maxItems: 1
 55
 56  reg-names:
 57    const: dsi_ctrl
 58
 59  interrupts:
 60    maxItems: 1
 61
 62  clocks:
 63    description: |
 64      Several clocks are used, depending on the variant. Typical ones are::
 65       - bus:: Display AHB clock.
 66       - byte:: Display byte clock.
 67       - byte_intf:: Display byte interface clock.
 68       - core:: Display core clock.
 69       - core_mss:: Core MultiMedia SubSystem clock.
 70       - iface:: Display AXI clock.
 71       - mdp_core:: MDP Core clock.
 72       - mnoc:: MNOC clock
 73       - pixel:: Display pixel clock.
 74    minItems: 3
 75    maxItems: 12
 76
 77  clock-names:
 78    minItems: 3
 79    maxItems: 12
 80
 81  phys:
 82    maxItems: 1
 83
 84  phy-names:
 85    deprecated: true
 86    const: dsi
 87
 88  syscon-sfpb:
 89    description: A phandle to mmss_sfpb syscon node (only for DSIv2).
 90    $ref: /schemas/types.yaml#/definitions/phandle
 91
 92  qcom,dual-dsi-mode:
 93    type: boolean
 94    description: |
 95      Indicates if the DSI controller is driving a panel which needs
 96      2 DSI links.
 97
 98  qcom,master-dsi:
 99    type: boolean
100    description: |
101      Indicates if the DSI controller is the master DSI controller when
102      qcom,dual-dsi-mode enabled.
103
104  qcom,sync-dual-dsi:
105    type: boolean
106    description: |
107      Indicates if the DSI controller needs to sync the other DSI controller
108      with MIPI DCS commands when qcom,dual-dsi-mode enabled.
109
110  assigned-clocks:
111    minItems: 2
112    maxItems: 4
113    description: |
114      For DSI on SM8650 and older: parents of "byte" and "pixel" for the given
115      platform.
116      For DSIv2 platforms this should contain "byte", "esc", "src" and
117      "pixel_src" clocks.
118
119  assigned-clock-parents:
120    minItems: 2
121    maxItems: 4
122    description: |
123      The Byte clock and Pixel clock PLL outputs provided by a DSI PHY block.
124
125  power-domains:
126    maxItems: 1
127
128  operating-points-v2: true
129
130  opp-table:
131    type: object
132
133  ports:
134    $ref: /schemas/graph.yaml#/properties/ports
135    description: |
136      Contains DSI controller input and output ports as children, each
137      containing one endpoint subnode.
138
139    properties:
140      port@0:
141        $ref: /schemas/graph.yaml#/$defs/port-base
142        unevaluatedProperties: false
143        description: |
144          Input endpoints of the controller.
145        properties:
146          endpoint:
147            $ref: /schemas/media/video-interfaces.yaml#
148            unevaluatedProperties: false
149            properties:
150              data-lanes:
151                maxItems: 4
152                minItems: 1
153                items:
154                  enum: [ 0, 1, 2, 3 ]
155
156      port@1:
157        $ref: /schemas/graph.yaml#/$defs/port-base
158        unevaluatedProperties: false
159        description: |
160          Output endpoints of the controller.
161        properties:
162          endpoint:
163            $ref: /schemas/media/video-interfaces.yaml#
164            unevaluatedProperties: false
165            properties:
166              data-lanes:
167                maxItems: 4
168                minItems: 1
169                items:
170                  enum: [ 0, 1, 2, 3 ]
171
172              qcom,te-source:
173                $ref: /schemas/types.yaml#/definitions/string
174                description:
175                  Specifies the source of vsync signal from the panel used for
176                  tearing elimination.
177                default: mdp_vsync_p
178                enum:
179                  - mdp_vsync_p
180                  - mdp_vsync_s
181                  - mdp_vsync_e
182                  - timer0
183                  - timer1
184                  - timer2
185                  - timer3
186                  - timer4
187
188    required:
189      - port@0
190      - port@1
191
192  avdd-supply:
193    description:
194      Phandle to vdd regulator device node
195
196  refgen-supply:
197    description:
198      Phandle to REFGEN regulator device node
199
200  vcca-supply:
201    description:
202      Phandle to vdd regulator device node
203
204  vdd-supply:
205    description:
206      VDD regulator
207
208  vddio-supply:
209    description:
210      VDD-IO regulator
211
212  vdda-supply:
213    description:
214      VDDA regulator
215
216required:
217  - compatible
218  - reg
219  - reg-names
220  - interrupts
221  - clocks
222  - clock-names
223  - phys
224  - ports
225
226allOf:
227  - $ref: ../dsi-controller.yaml#
228  - if:
229      properties:
230        compatible:
231          contains:
232            enum:
233              - qcom,apq8064-dsi-ctrl
234    then:
235      properties:
236        clocks:
237          minItems: 7
238          maxItems: 7
239        clock-names:
240          items:
241            - const: iface
242            - const: bus
243            - const: core_mmss
244            - const: src
245            - const: byte
246            - const: pixel
247            - const: core
248      required:
249        - assigned-clocks
250        - assigned-clock-parents
251
252  - if:
253      properties:
254        compatible:
255          contains:
256            enum:
257              - qcom,msm8916-dsi-ctrl
258              - qcom,msm8953-dsi-ctrl
259              - qcom,msm8976-dsi-ctrl
260    then:
261      properties:
262        clocks:
263          minItems: 6
264          maxItems: 6
265        clock-names:
266          items:
267            - const: mdp_core
268            - const: iface
269            - const: bus
270            - const: byte
271            - const: pixel
272            - const: core
273      required:
274        - assigned-clocks
275        - assigned-clock-parents
276
277  - if:
278      properties:
279        compatible:
280          contains:
281            enum:
282              - qcom,msm8226-dsi-ctrl
283              - qcom,msm8974-dsi-ctrl
284    then:
285      properties:
286        clocks:
287          minItems: 7
288          maxItems: 7
289        clock-names:
290          items:
291            - const: mdp_core
292            - const: iface
293            - const: bus
294            - const: byte
295            - const: pixel
296            - const: core
297            - const: core_mmss
298      required:
299        - assigned-clocks
300        - assigned-clock-parents
301
302  - if:
303      properties:
304        compatible:
305          contains:
306            enum:
307              - qcom,msm8996-dsi-ctrl
308    then:
309      properties:
310        clocks:
311          minItems: 7
312          maxItems: 7
313        clock-names:
314          items:
315            - const: mdp_core
316            - const: byte
317            - const: iface
318            - const: bus
319            - const: core_mmss
320            - const: pixel
321            - const: core
322      required:
323        - assigned-clocks
324        - assigned-clock-parents
325
326  - if:
327      properties:
328        compatible:
329          contains:
330            enum:
331              - qcom,msm8998-dsi-ctrl
332              - qcom,sa8775p-dsi-ctrl
333              - qcom,sar2130p-dsi-ctrl
334              - qcom,sc7180-dsi-ctrl
335              - qcom,sc7280-dsi-ctrl
336              - qcom,sc8180x-dsi-ctrl
337              - qcom,sdm845-dsi-ctrl
338              - qcom,sm6115-dsi-ctrl
339              - qcom,sm6125-dsi-ctrl
340              - qcom,sm6350-dsi-ctrl
341              - qcom,sm6375-dsi-ctrl
342              - qcom,sm6150-dsi-ctrl
343              - qcom,sm7150-dsi-ctrl
344              - qcom,sm8150-dsi-ctrl
345              - qcom,sm8250-dsi-ctrl
346              - qcom,sm8350-dsi-ctrl
347              - qcom,sm8450-dsi-ctrl
348              - qcom,sm8550-dsi-ctrl
349              - qcom,sm8650-dsi-ctrl
350    then:
351      properties:
352        clocks:
353          minItems: 6
354          maxItems: 6
355        clock-names:
356          items:
357            - const: byte
358            - const: byte_intf
359            - const: pixel
360            - const: core
361            - const: iface
362            - const: bus
363      required:
364        - assigned-clocks
365        - assigned-clock-parents
366
367  - if:
368      properties:
369        compatible:
370          contains:
371            enum:
372              - qcom,sm8750-dsi-ctrl
373    then:
374      properties:
375        clocks:
376          minItems: 12
377          maxItems: 12
378        clock-names:
379          items:
380            - const: byte
381            - const: byte_intf
382            - const: pixel
383            - const: core
384            - const: iface
385            - const: bus
386            - const: dsi_pll_pixel
387            - const: dsi_pll_byte
388            - const: esync
389            - const: osc
390            - const: byte_src
391            - const: pixel_src
392
393  - if:
394      properties:
395        compatible:
396          contains:
397            enum:
398              - qcom,sdm660-dsi-ctrl
399    then:
400      properties:
401        clocks:
402          minItems: 9
403          maxItems: 9
404        clock-names:
405          items:
406            - const: mdp_core
407            - const: byte
408            - const: byte_intf
409            - const: mnoc
410            - const: iface
411            - const: bus
412            - const: core_mmss
413            - const: pixel
414            - const: core
415      required:
416        - assigned-clocks
417        - assigned-clock-parents
418
419unevaluatedProperties: false
420
421examples:
422  - |
423    #include <dt-bindings/interrupt-controller/arm-gic.h>
424    #include <dt-bindings/clock/qcom,dispcc-sdm845.h>
425    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
426    #include <dt-bindings/power/qcom-rpmpd.h>
427
428    dsi@ae94000 {
429        compatible = "qcom,sc7180-dsi-ctrl", "qcom,mdss-dsi-ctrl";
430        reg = <0x0ae94000 0x400>;
431        reg-names = "dsi_ctrl";
432
433        #address-cells = <1>;
434        #size-cells = <0>;
435
436        interrupt-parent = <&mdss>;
437        interrupts = <4>;
438
439        clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
440                 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
441                 <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
442                 <&dispcc DISP_CC_MDSS_ESC0_CLK>,
443                 <&dispcc DISP_CC_MDSS_AHB_CLK>,
444                 <&dispcc DISP_CC_MDSS_AXI_CLK>;
445        clock-names = "byte",
446                      "byte_intf",
447                      "pixel",
448                      "core",
449                      "iface",
450                      "bus";
451
452        phys = <&dsi0_phy>;
453        phy-names = "dsi";
454
455        assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
456        assigned-clock-parents = <&dsi_phy 0>, <&dsi_phy 1>;
457
458        power-domains = <&rpmhpd SC7180_CX>;
459        operating-points-v2 = <&dsi_opp_table>;
460
461        ports {
462            #address-cells = <1>;
463            #size-cells = <0>;
464
465            port@0 {
466                reg = <0>;
467                endpoint {
468                    remote-endpoint = <&dpu_intf1_out>;
469                };
470            };
471
472            port@1 {
473                reg = <1>;
474                endpoint {
475                    remote-endpoint = <&sn65dsi86_in>;
476                    data-lanes = <0 1 2 3>;
477                    qcom,te-source = "mdp_vsync_e";
478                };
479            };
480        };
481    };
482...
~/ Read-only file preview.