xref: /openbmc/linux/Documentation/devicetree/bindings/display/msm/qcom,sm6350-mdss.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
23b7502b0SKonrad Dybcio%YAML 1.2
33b7502b0SKonrad Dybcio---
43b7502b0SKonrad Dybcio$id: http://devicetree.org/schemas/display/msm/qcom,sm6350-mdss.yaml#
53b7502b0SKonrad Dybcio$schema: http://devicetree.org/meta-schemas/core.yaml#
63b7502b0SKonrad Dybcio
73b7502b0SKonrad Dybciotitle: Qualcomm SM6350 Display MDSS
83b7502b0SKonrad Dybcio
93b7502b0SKonrad Dybciomaintainers:
103b7502b0SKonrad Dybcio  - Krishna Manikandan <quic_mkrishn@quicinc.com>
113b7502b0SKonrad Dybcio
123b7502b0SKonrad Dybciodescription:
133b7502b0SKonrad Dybcio  SM6350 MSM Mobile Display Subsystem (MDSS), which encapsulates sub-blocks
143b7502b0SKonrad Dybcio  like DPU display controller, DSI and DP interfaces etc.
153b7502b0SKonrad Dybcio
163b7502b0SKonrad Dybcio$ref: /schemas/display/msm/mdss-common.yaml#
173b7502b0SKonrad Dybcio
183b7502b0SKonrad Dybcioproperties:
193b7502b0SKonrad Dybcio  compatible:
203b7502b0SKonrad Dybcio    const: qcom,sm6350-mdss
213b7502b0SKonrad Dybcio
223b7502b0SKonrad Dybcio  clocks:
233b7502b0SKonrad Dybcio    items:
243b7502b0SKonrad Dybcio      - description: Display AHB clock from gcc
253b7502b0SKonrad Dybcio      - description: Display AXI clock from gcc
263b7502b0SKonrad Dybcio      - description: Display core clock
273b7502b0SKonrad Dybcio
283b7502b0SKonrad Dybcio  clock-names:
293b7502b0SKonrad Dybcio    items:
303b7502b0SKonrad Dybcio      - const: iface
313b7502b0SKonrad Dybcio      - const: bus
323b7502b0SKonrad Dybcio      - const: core
333b7502b0SKonrad Dybcio
343b7502b0SKonrad Dybcio  iommus:
353b7502b0SKonrad Dybcio    maxItems: 1
363b7502b0SKonrad Dybcio
373b7502b0SKonrad Dybcio  interconnects:
383b7502b0SKonrad Dybcio    maxItems: 2
393b7502b0SKonrad Dybcio
403b7502b0SKonrad Dybcio  interconnect-names:
413b7502b0SKonrad Dybcio    maxItems: 2
423b7502b0SKonrad Dybcio
433b7502b0SKonrad DybciopatternProperties:
443b7502b0SKonrad Dybcio  "^display-controller@[0-9a-f]+$":
453b7502b0SKonrad Dybcio    type: object
463b7502b0SKonrad Dybcio    properties:
473b7502b0SKonrad Dybcio      compatible:
483b7502b0SKonrad Dybcio        const: qcom,sm6350-dpu
493b7502b0SKonrad Dybcio
503b7502b0SKonrad Dybcio  "^dsi@[0-9a-f]+$":
513b7502b0SKonrad Dybcio    type: object
523b7502b0SKonrad Dybcio    properties:
533b7502b0SKonrad Dybcio      compatible:
543b7502b0SKonrad Dybcio        items:
553b7502b0SKonrad Dybcio          - const: qcom,sm6350-dsi-ctrl
563b7502b0SKonrad Dybcio          - const: qcom,mdss-dsi-ctrl
573b7502b0SKonrad Dybcio
583b7502b0SKonrad Dybcio  "^phy@[0-9a-f]+$":
593b7502b0SKonrad Dybcio    type: object
603b7502b0SKonrad Dybcio    properties:
613b7502b0SKonrad Dybcio      compatible:
623b7502b0SKonrad Dybcio        const: qcom,dsi-phy-10nm
633b7502b0SKonrad Dybcio
643b7502b0SKonrad DybciounevaluatedProperties: false
653b7502b0SKonrad Dybcio
663b7502b0SKonrad Dybcioexamples:
673b7502b0SKonrad Dybcio  - |
683b7502b0SKonrad Dybcio    #include <dt-bindings/clock/qcom,dispcc-sm6350.h>
693b7502b0SKonrad Dybcio    #include <dt-bindings/clock/qcom,gcc-sm6350.h>
703b7502b0SKonrad Dybcio    #include <dt-bindings/clock/qcom,rpmh.h>
713b7502b0SKonrad Dybcio    #include <dt-bindings/interrupt-controller/arm-gic.h>
723b7502b0SKonrad Dybcio    #include <dt-bindings/power/qcom-rpmpd.h>
733b7502b0SKonrad Dybcio
743b7502b0SKonrad Dybcio    display-subsystem@ae00000 {
753b7502b0SKonrad Dybcio        compatible = "qcom,sm6350-mdss";
763b7502b0SKonrad Dybcio        reg = <0x0ae00000 0x1000>;
773b7502b0SKonrad Dybcio        reg-names = "mdss";
783b7502b0SKonrad Dybcio
793b7502b0SKonrad Dybcio        power-domains = <&dispcc MDSS_GDSC>;
803b7502b0SKonrad Dybcio
813b7502b0SKonrad Dybcio        clocks = <&gcc GCC_DISP_AHB_CLK>,
823b7502b0SKonrad Dybcio                 <&gcc GCC_DISP_AXI_CLK>,
833b7502b0SKonrad Dybcio                 <&dispcc DISP_CC_MDSS_MDP_CLK>;
843b7502b0SKonrad Dybcio        clock-names = "iface", "bus", "core";
853b7502b0SKonrad Dybcio
863b7502b0SKonrad Dybcio        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
873b7502b0SKonrad Dybcio        interrupt-controller;
883b7502b0SKonrad Dybcio        #interrupt-cells = <1>;
893b7502b0SKonrad Dybcio
903b7502b0SKonrad Dybcio        iommus = <&apps_smmu 0x800 0x2>;
913b7502b0SKonrad Dybcio        #address-cells = <1>;
923b7502b0SKonrad Dybcio        #size-cells = <1>;
933b7502b0SKonrad Dybcio        ranges;
943b7502b0SKonrad Dybcio
953b7502b0SKonrad Dybcio        display-controller@ae01000 {
963b7502b0SKonrad Dybcio            compatible = "qcom,sm6350-dpu";
973b7502b0SKonrad Dybcio            reg = <0x0ae01000 0x8f000>,
983b7502b0SKonrad Dybcio                  <0x0aeb0000 0x2008>;
993b7502b0SKonrad Dybcio            reg-names = "mdp", "vbif";
1003b7502b0SKonrad Dybcio
1013b7502b0SKonrad Dybcio            clocks = <&gcc GCC_DISP_AXI_CLK>,
1023b7502b0SKonrad Dybcio              <&dispcc DISP_CC_MDSS_AHB_CLK>,
1033b7502b0SKonrad Dybcio              <&dispcc DISP_CC_MDSS_ROT_CLK>,
1043b7502b0SKonrad Dybcio              <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
1053b7502b0SKonrad Dybcio              <&dispcc DISP_CC_MDSS_MDP_CLK>,
1063b7502b0SKonrad Dybcio              <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
1073b7502b0SKonrad Dybcio            clock-names = "bus", "iface", "rot", "lut", "core",
1083b7502b0SKonrad Dybcio                    "vsync";
1093b7502b0SKonrad Dybcio
1103b7502b0SKonrad Dybcio            assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>,
1113b7502b0SKonrad Dybcio                              <&dispcc DISP_CC_MDSS_VSYNC_CLK>,
1123b7502b0SKonrad Dybcio                              <&dispcc DISP_CC_MDSS_ROT_CLK>,
1133b7502b0SKonrad Dybcio                              <&dispcc DISP_CC_MDSS_AHB_CLK>;
1143b7502b0SKonrad Dybcio            assigned-clock-rates = <300000000>,
1153b7502b0SKonrad Dybcio                                   <19200000>,
1163b7502b0SKonrad Dybcio                                   <19200000>,
1173b7502b0SKonrad Dybcio                                   <19200000>;
1183b7502b0SKonrad Dybcio
1193b7502b0SKonrad Dybcio            interrupt-parent = <&mdss>;
1203b7502b0SKonrad Dybcio            interrupts = <0>;
1213b7502b0SKonrad Dybcio            operating-points-v2 = <&mdp_opp_table>;
1223b7502b0SKonrad Dybcio            power-domains = <&rpmhpd SM6350_CX>;
1233b7502b0SKonrad Dybcio
1243b7502b0SKonrad Dybcio            ports {
1253b7502b0SKonrad Dybcio                #address-cells = <1>;
1263b7502b0SKonrad Dybcio                #size-cells = <0>;
1273b7502b0SKonrad Dybcio
1283b7502b0SKonrad Dybcio                port@0 {
1293b7502b0SKonrad Dybcio                    reg = <0>;
1303b7502b0SKonrad Dybcio                    dpu_intf1_out: endpoint {
1313b7502b0SKonrad Dybcio                        remote-endpoint = <&dsi0_in>;
1323b7502b0SKonrad Dybcio                    };
1333b7502b0SKonrad Dybcio                };
1343b7502b0SKonrad Dybcio            };
1353b7502b0SKonrad Dybcio        };
1363b7502b0SKonrad Dybcio
1373b7502b0SKonrad Dybcio        dsi@ae94000 {
1383b7502b0SKonrad Dybcio            compatible = "qcom,sm6350-dsi-ctrl", "qcom,mdss-dsi-ctrl";
1393b7502b0SKonrad Dybcio            reg = <0x0ae94000 0x400>;
1403b7502b0SKonrad Dybcio            reg-names = "dsi_ctrl";
1413b7502b0SKonrad Dybcio
1423b7502b0SKonrad Dybcio            interrupt-parent = <&mdss>;
1433b7502b0SKonrad Dybcio            interrupts = <4>;
1443b7502b0SKonrad Dybcio
1453b7502b0SKonrad Dybcio            clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
1463b7502b0SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
1473b7502b0SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
1483b7502b0SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_ESC0_CLK>,
1493b7502b0SKonrad Dybcio                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
1503b7502b0SKonrad Dybcio                     <&gcc GCC_DISP_AXI_CLK>;
1513b7502b0SKonrad Dybcio            clock-names = "byte",
1523b7502b0SKonrad Dybcio                          "byte_intf",
1533b7502b0SKonrad Dybcio                          "pixel",
1543b7502b0SKonrad Dybcio                          "core",
1553b7502b0SKonrad Dybcio                          "iface",
1563b7502b0SKonrad Dybcio                          "bus";
1573b7502b0SKonrad Dybcio
1583b7502b0SKonrad Dybcio            assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
1593b7502b0SKonrad Dybcio                              <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
1603b7502b0SKonrad Dybcio            assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
1613b7502b0SKonrad Dybcio
1623b7502b0SKonrad Dybcio            operating-points-v2 = <&dsi_opp_table>;
1633b7502b0SKonrad Dybcio            power-domains = <&rpmhpd SM6350_MX>;
1643b7502b0SKonrad Dybcio
1653b7502b0SKonrad Dybcio            phys = <&dsi0_phy>;
1663b7502b0SKonrad Dybcio            phy-names = "dsi";
1673b7502b0SKonrad Dybcio
1683b7502b0SKonrad Dybcio            #address-cells = <1>;
1693b7502b0SKonrad Dybcio            #size-cells = <0>;
1703b7502b0SKonrad Dybcio
1713b7502b0SKonrad Dybcio            ports {
1723b7502b0SKonrad Dybcio                #address-cells = <1>;
1733b7502b0SKonrad Dybcio                #size-cells = <0>;
1743b7502b0SKonrad Dybcio
1753b7502b0SKonrad Dybcio                port@0 {
1763b7502b0SKonrad Dybcio                    reg = <0>;
1773b7502b0SKonrad Dybcio                    dsi0_in: endpoint {
1783b7502b0SKonrad Dybcio                        remote-endpoint = <&dpu_intf1_out>;
1793b7502b0SKonrad Dybcio                    };
1803b7502b0SKonrad Dybcio                };
1813b7502b0SKonrad Dybcio
1823b7502b0SKonrad Dybcio                port@1 {
1833b7502b0SKonrad Dybcio                    reg = <1>;
1843b7502b0SKonrad Dybcio                    dsi0_out: endpoint {
1853b7502b0SKonrad Dybcio                    };
1863b7502b0SKonrad Dybcio                };
1873b7502b0SKonrad Dybcio            };
1883b7502b0SKonrad Dybcio        };
1893b7502b0SKonrad Dybcio
1903b7502b0SKonrad Dybcio        dsi0_phy: phy@ae94400 {
1913b7502b0SKonrad Dybcio            compatible = "qcom,dsi-phy-10nm";
1923b7502b0SKonrad Dybcio            reg = <0x0ae94400 0x200>,
1933b7502b0SKonrad Dybcio                  <0x0ae94600 0x280>,
1943b7502b0SKonrad Dybcio                  <0x0ae94a00 0x1e0>;
1953b7502b0SKonrad Dybcio            reg-names = "dsi_phy",
1963b7502b0SKonrad Dybcio                        "dsi_phy_lane",
1973b7502b0SKonrad Dybcio                        "dsi_pll";
1983b7502b0SKonrad Dybcio
1993b7502b0SKonrad Dybcio            #clock-cells = <1>;
2003b7502b0SKonrad Dybcio            #phy-cells = <0>;
2013b7502b0SKonrad Dybcio
2023b7502b0SKonrad Dybcio            clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, <&rpmhcc RPMH_CXO_CLK>;
2033b7502b0SKonrad Dybcio            clock-names = "iface", "ref";
2043b7502b0SKonrad Dybcio        };
2053b7502b0SKonrad Dybcio    };
2063b7502b0SKonrad Dybcio...
207