14dbe55c9SKrishna Manikandan# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
24dbe55c9SKrishna Manikandan%YAML 1.2
34dbe55c9SKrishna Manikandan---
44dbe55c9SKrishna Manikandan$id: http://devicetree.org/schemas/display/msm/dsi-controller-main.yaml#
54dbe55c9SKrishna Manikandan$schema: http://devicetree.org/meta-schemas/core.yaml#
64dbe55c9SKrishna Manikandan
74dbe55c9SKrishna Manikandantitle: Qualcomm Display DSI controller
84dbe55c9SKrishna Manikandan
94dbe55c9SKrishna Manikandanmaintainers:
10cce65bb2SKrishna Manikandan  - Krishna Manikandan <quic_mkrishn@quicinc.com>
114dbe55c9SKrishna Manikandan
124dbe55c9SKrishna ManikandanallOf:
134dbe55c9SKrishna Manikandan  - $ref: "../dsi-controller.yaml#"
144dbe55c9SKrishna Manikandan
154dbe55c9SKrishna Manikandanproperties:
164dbe55c9SKrishna Manikandan  compatible:
17*0c0f65c6SBryan O'Donoghue    oneOf:
18*0c0f65c6SBryan O'Donoghue      - items:
19*0c0f65c6SBryan O'Donoghue          - enum:
20*0c0f65c6SBryan O'Donoghue              - qcom,apq8064-dsi-ctrl
21*0c0f65c6SBryan O'Donoghue              - qcom,msm8916-dsi-ctrl
22*0c0f65c6SBryan O'Donoghue              - qcom,msm8953-dsi-ctrl
23*0c0f65c6SBryan O'Donoghue              - qcom,msm8974-dsi-ctrl
24*0c0f65c6SBryan O'Donoghue              - qcom,msm8996-dsi-ctrl
25*0c0f65c6SBryan O'Donoghue              - qcom,msm8998-dsi-ctrl
26*0c0f65c6SBryan O'Donoghue              - qcom,qcm2290-dsi-ctrl
27*0c0f65c6SBryan O'Donoghue              - qcom,sc7180-dsi-ctrl
28*0c0f65c6SBryan O'Donoghue              - qcom,sc7280-dsi-ctrl
29*0c0f65c6SBryan O'Donoghue              - qcom,sdm660-dsi-ctrl
30*0c0f65c6SBryan O'Donoghue              - qcom,sdm845-dsi-ctrl
31*0c0f65c6SBryan O'Donoghue              - qcom,sm8150-dsi-ctrl
32*0c0f65c6SBryan O'Donoghue              - qcom,sm8250-dsi-ctrl
33*0c0f65c6SBryan O'Donoghue              - qcom,sm8350-dsi-ctrl
34*0c0f65c6SBryan O'Donoghue              - qcom,sm8450-dsi-ctrl
35*0c0f65c6SBryan O'Donoghue              - qcom,sm8550-dsi-ctrl
36*0c0f65c6SBryan O'Donoghue          - const: qcom,mdss-dsi-ctrl
37*0c0f65c6SBryan O'Donoghue      - items:
38*0c0f65c6SBryan O'Donoghue          - enum:
39*0c0f65c6SBryan O'Donoghue              - dsi-ctrl-6g-qcm2290
40*0c0f65c6SBryan O'Donoghue          - const: qcom,mdss-dsi-ctrl
41*0c0f65c6SBryan O'Donoghue        deprecated: true
424dbe55c9SKrishna Manikandan
434dbe55c9SKrishna Manikandan  reg:
444dbe55c9SKrishna Manikandan    maxItems: 1
454dbe55c9SKrishna Manikandan
464dbe55c9SKrishna Manikandan  reg-names:
474dbe55c9SKrishna Manikandan    const: dsi_ctrl
484dbe55c9SKrishna Manikandan
494dbe55c9SKrishna Manikandan  interrupts:
504dbe55c9SKrishna Manikandan    maxItems: 1
514dbe55c9SKrishna Manikandan
524dbe55c9SKrishna Manikandan  clocks:
534dbe55c9SKrishna Manikandan    items:
544dbe55c9SKrishna Manikandan      - description: Display byte clock
554dbe55c9SKrishna Manikandan      - description: Display byte interface clock
564dbe55c9SKrishna Manikandan      - description: Display pixel clock
57654ffe4bSBryan O'Donoghue      - description: Display core clock
584dbe55c9SKrishna Manikandan      - description: Display AHB clock
594dbe55c9SKrishna Manikandan      - description: Display AXI clock
604dbe55c9SKrishna Manikandan
614dbe55c9SKrishna Manikandan  clock-names:
624dbe55c9SKrishna Manikandan    items:
634dbe55c9SKrishna Manikandan      - const: byte
644dbe55c9SKrishna Manikandan      - const: byte_intf
654dbe55c9SKrishna Manikandan      - const: pixel
664dbe55c9SKrishna Manikandan      - const: core
674dbe55c9SKrishna Manikandan      - const: iface
684dbe55c9SKrishna Manikandan      - const: bus
694dbe55c9SKrishna Manikandan
704dbe55c9SKrishna Manikandan  phys:
714dbe55c9SKrishna Manikandan    maxItems: 1
724dbe55c9SKrishna Manikandan
734dbe55c9SKrishna Manikandan  phy-names:
74c5415562SBryan O'Donoghue    deprecated: true
754dbe55c9SKrishna Manikandan    const: dsi
764dbe55c9SKrishna Manikandan
774dbe55c9SKrishna Manikandan  "#address-cells": true
784dbe55c9SKrishna Manikandan
794dbe55c9SKrishna Manikandan  "#size-cells": true
804dbe55c9SKrishna Manikandan
814dbe55c9SKrishna Manikandan  syscon-sfpb:
824dbe55c9SKrishna Manikandan    description: A phandle to mmss_sfpb syscon node (only for DSIv2).
834dbe55c9SKrishna Manikandan    $ref: "/schemas/types.yaml#/definitions/phandle"
844dbe55c9SKrishna Manikandan
854dbe55c9SKrishna Manikandan  qcom,dual-dsi-mode:
864dbe55c9SKrishna Manikandan    type: boolean
874dbe55c9SKrishna Manikandan    description: |
884dbe55c9SKrishna Manikandan      Indicates if the DSI controller is driving a panel which needs
894dbe55c9SKrishna Manikandan      2 DSI links.
904dbe55c9SKrishna Manikandan
91061a9aeaSDmitry Baryshkov  assigned-clocks:
92061a9aeaSDmitry Baryshkov    maxItems: 2
93061a9aeaSDmitry Baryshkov    description: |
94061a9aeaSDmitry Baryshkov      Parents of "byte" and "pixel" for the given platform.
95061a9aeaSDmitry Baryshkov
96061a9aeaSDmitry Baryshkov  assigned-clock-parents:
97061a9aeaSDmitry Baryshkov    maxItems: 2
98061a9aeaSDmitry Baryshkov    description: |
99061a9aeaSDmitry Baryshkov      The Byte clock and Pixel clock PLL outputs provided by a DSI PHY block.
100061a9aeaSDmitry Baryshkov
1014dbe55c9SKrishna Manikandan  power-domains:
1024dbe55c9SKrishna Manikandan    maxItems: 1
1034dbe55c9SKrishna Manikandan
1044dbe55c9SKrishna Manikandan  operating-points-v2: true
1054dbe55c9SKrishna Manikandan
106bac4ccceSDmitry Baryshkov  opp-table:
107bac4ccceSDmitry Baryshkov    type: object
108bac4ccceSDmitry Baryshkov
1094dbe55c9SKrishna Manikandan  ports:
1104dbe55c9SKrishna Manikandan    $ref: "/schemas/graph.yaml#/properties/ports"
1114dbe55c9SKrishna Manikandan    description: |
1124dbe55c9SKrishna Manikandan      Contains DSI controller input and output ports as children, each
1134dbe55c9SKrishna Manikandan      containing one endpoint subnode.
1144dbe55c9SKrishna Manikandan
1154dbe55c9SKrishna Manikandan    properties:
1164dbe55c9SKrishna Manikandan      port@0:
117b4db237eSRob Herring        $ref: "/schemas/graph.yaml#/$defs/port-base"
118b4db237eSRob Herring        unevaluatedProperties: false
1194dbe55c9SKrishna Manikandan        description: |
1204dbe55c9SKrishna Manikandan          Input endpoints of the controller.
1214dbe55c9SKrishna Manikandan        properties:
1224dbe55c9SKrishna Manikandan          endpoint:
1234dbe55c9SKrishna Manikandan            $ref: /schemas/media/video-interfaces.yaml#
1244dbe55c9SKrishna Manikandan            unevaluatedProperties: false
1254dbe55c9SKrishna Manikandan            properties:
1264dbe55c9SKrishna Manikandan              data-lanes:
1274dbe55c9SKrishna Manikandan                maxItems: 4
1284dbe55c9SKrishna Manikandan                minItems: 4
1294dbe55c9SKrishna Manikandan                items:
1304dbe55c9SKrishna Manikandan                  enum: [ 0, 1, 2, 3 ]
1314dbe55c9SKrishna Manikandan
1324dbe55c9SKrishna Manikandan      port@1:
133b4db237eSRob Herring        $ref: "/schemas/graph.yaml#/$defs/port-base"
134b4db237eSRob Herring        unevaluatedProperties: false
1354dbe55c9SKrishna Manikandan        description: |
1364dbe55c9SKrishna Manikandan          Output endpoints of the controller.
1374dbe55c9SKrishna Manikandan        properties:
1384dbe55c9SKrishna Manikandan          endpoint:
1394dbe55c9SKrishna Manikandan            $ref: /schemas/media/video-interfaces.yaml#
1404dbe55c9SKrishna Manikandan            unevaluatedProperties: false
1414dbe55c9SKrishna Manikandan            properties:
1424dbe55c9SKrishna Manikandan              data-lanes:
1434dbe55c9SKrishna Manikandan                maxItems: 4
1444dbe55c9SKrishna Manikandan                minItems: 4
1454dbe55c9SKrishna Manikandan                items:
1464dbe55c9SKrishna Manikandan                  enum: [ 0, 1, 2, 3 ]
1474dbe55c9SKrishna Manikandan
1484dbe55c9SKrishna Manikandan    required:
1494dbe55c9SKrishna Manikandan      - port@0
1504dbe55c9SKrishna Manikandan      - port@1
1514dbe55c9SKrishna Manikandan
152adf6a3ebSBryan O'Donoghue  vdd-supply:
153adf6a3ebSBryan O'Donoghue    description:
154adf6a3ebSBryan O'Donoghue      VDD regulator
155adf6a3ebSBryan O'Donoghue
156adf6a3ebSBryan O'Donoghue  vddio-supply:
157adf6a3ebSBryan O'Donoghue    description:
158adf6a3ebSBryan O'Donoghue      VDD-IO regulator
159adf6a3ebSBryan O'Donoghue
160adf6a3ebSBryan O'Donoghue  vdda-supply:
161adf6a3ebSBryan O'Donoghue    description:
162adf6a3ebSBryan O'Donoghue      VDDA regulator
163adf6a3ebSBryan O'Donoghue
1644dbe55c9SKrishna Manikandanrequired:
1654dbe55c9SKrishna Manikandan  - compatible
1664dbe55c9SKrishna Manikandan  - reg
1674dbe55c9SKrishna Manikandan  - reg-names
1684dbe55c9SKrishna Manikandan  - interrupts
1694dbe55c9SKrishna Manikandan  - clocks
1704dbe55c9SKrishna Manikandan  - clock-names
1714dbe55c9SKrishna Manikandan  - phys
172061a9aeaSDmitry Baryshkov  - assigned-clocks
173061a9aeaSDmitry Baryshkov  - assigned-clock-parents
1744dbe55c9SKrishna Manikandan  - ports
1754dbe55c9SKrishna Manikandan
1764dbe55c9SKrishna ManikandanadditionalProperties: false
1774dbe55c9SKrishna Manikandan
1784dbe55c9SKrishna Manikandanexamples:
1794dbe55c9SKrishna Manikandan  - |
1804dbe55c9SKrishna Manikandan     #include <dt-bindings/interrupt-controller/arm-gic.h>
1814dbe55c9SKrishna Manikandan     #include <dt-bindings/clock/qcom,dispcc-sdm845.h>
1824dbe55c9SKrishna Manikandan     #include <dt-bindings/clock/qcom,gcc-sdm845.h>
1834dbe55c9SKrishna Manikandan     #include <dt-bindings/power/qcom-rpmpd.h>
1844dbe55c9SKrishna Manikandan
1854dbe55c9SKrishna Manikandan     dsi@ae94000 {
186*0c0f65c6SBryan O'Donoghue           compatible = "qcom,sc7180-dsi-ctrl", "qcom,mdss-dsi-ctrl";
1874dbe55c9SKrishna Manikandan           reg = <0x0ae94000 0x400>;
1884dbe55c9SKrishna Manikandan           reg-names = "dsi_ctrl";
1894dbe55c9SKrishna Manikandan
1904dbe55c9SKrishna Manikandan           #address-cells = <1>;
1914dbe55c9SKrishna Manikandan           #size-cells = <0>;
1924dbe55c9SKrishna Manikandan
1934dbe55c9SKrishna Manikandan           interrupt-parent = <&mdss>;
1944dbe55c9SKrishna Manikandan           interrupts = <4>;
1954dbe55c9SKrishna Manikandan
1964dbe55c9SKrishna Manikandan           clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
1974dbe55c9SKrishna Manikandan                    <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
1984dbe55c9SKrishna Manikandan                    <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
1994dbe55c9SKrishna Manikandan                    <&dispcc DISP_CC_MDSS_ESC0_CLK>,
2004dbe55c9SKrishna Manikandan                    <&dispcc DISP_CC_MDSS_AHB_CLK>,
2014dbe55c9SKrishna Manikandan                    <&dispcc DISP_CC_MDSS_AXI_CLK>;
2024dbe55c9SKrishna Manikandan           clock-names = "byte",
2034dbe55c9SKrishna Manikandan                         "byte_intf",
2044dbe55c9SKrishna Manikandan                         "pixel",
2054dbe55c9SKrishna Manikandan                         "core",
2064dbe55c9SKrishna Manikandan                         "iface",
2074dbe55c9SKrishna Manikandan                         "bus";
2084dbe55c9SKrishna Manikandan
2094dbe55c9SKrishna Manikandan           phys = <&dsi0_phy>;
2104dbe55c9SKrishna Manikandan           phy-names = "dsi";
2114dbe55c9SKrishna Manikandan
212061a9aeaSDmitry Baryshkov           assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
213061a9aeaSDmitry Baryshkov           assigned-clock-parents = <&dsi_phy 0>, <&dsi_phy 1>;
214061a9aeaSDmitry Baryshkov
2154dbe55c9SKrishna Manikandan           power-domains = <&rpmhpd SC7180_CX>;
2164dbe55c9SKrishna Manikandan           operating-points-v2 = <&dsi_opp_table>;
2174dbe55c9SKrishna Manikandan
2184dbe55c9SKrishna Manikandan           ports {
2194dbe55c9SKrishna Manikandan                  #address-cells = <1>;
2204dbe55c9SKrishna Manikandan                  #size-cells = <0>;
2214dbe55c9SKrishna Manikandan
2224dbe55c9SKrishna Manikandan                  port@0 {
2234dbe55c9SKrishna Manikandan                          reg = <0>;
2244dbe55c9SKrishna Manikandan                          dsi0_in: endpoint {
2254dbe55c9SKrishna Manikandan                                   remote-endpoint = <&dpu_intf1_out>;
2264dbe55c9SKrishna Manikandan                          };
2274dbe55c9SKrishna Manikandan                  };
2284dbe55c9SKrishna Manikandan
2294dbe55c9SKrishna Manikandan                  port@1 {
2304dbe55c9SKrishna Manikandan                          reg = <1>;
2314dbe55c9SKrishna Manikandan                          dsi0_out: endpoint {
2324dbe55c9SKrishna Manikandan                                   remote-endpoint = <&sn65dsi86_in>;
2334dbe55c9SKrishna Manikandan                                   data-lanes = <0 1 2 3>;
2344dbe55c9SKrishna Manikandan                          };
2354dbe55c9SKrishna Manikandan                  };
2364dbe55c9SKrishna Manikandan           };
2374dbe55c9SKrishna Manikandan     };
2384dbe55c9SKrishna Manikandan...
239