xref: /freebsd-src/sys/contrib/device-tree/Bindings/display/msm/qcom,sm6115-mdss.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
28bab661aSEmmanuel Vadot%YAML 1.2
38bab661aSEmmanuel Vadot---
48bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/display/msm/qcom,sm6115-mdss.yaml#
58bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68bab661aSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Qualcomm SM6115 Display MDSS
88bab661aSEmmanuel Vadot
98bab661aSEmmanuel Vadotmaintainers:
108bab661aSEmmanuel Vadot  - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
118bab661aSEmmanuel Vadot
128bab661aSEmmanuel Vadotdescription:
138bab661aSEmmanuel Vadot  Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates
148bab661aSEmmanuel Vadot  sub-blocks like DPU display controller and DSI. Device tree bindings of MDSS
158bab661aSEmmanuel Vadot  are mentioned for SM6115 target.
168bab661aSEmmanuel Vadot
178bab661aSEmmanuel Vadot$ref: /schemas/display/msm/mdss-common.yaml#
188bab661aSEmmanuel Vadot
198bab661aSEmmanuel Vadotproperties:
208bab661aSEmmanuel Vadot  compatible:
21cb7aa33aSEmmanuel Vadot    const: qcom,sm6115-mdss
228bab661aSEmmanuel Vadot
238bab661aSEmmanuel Vadot  clocks:
248bab661aSEmmanuel Vadot    items:
258bab661aSEmmanuel Vadot      - description: Display AHB clock from gcc
268bab661aSEmmanuel Vadot      - description: Display AXI clock
278bab661aSEmmanuel Vadot      - description: Display core clock
288bab661aSEmmanuel Vadot
298bab661aSEmmanuel Vadot  iommus:
308bab661aSEmmanuel Vadot    maxItems: 2
318bab661aSEmmanuel Vadot
32*8d13bc63SEmmanuel Vadot  interconnects:
33*8d13bc63SEmmanuel Vadot    items:
34*8d13bc63SEmmanuel Vadot      - description: Interconnect path from mdp0 port to the data bus
35*8d13bc63SEmmanuel Vadot      - description: Interconnect path from CPU to the reg bus
36*8d13bc63SEmmanuel Vadot
37*8d13bc63SEmmanuel Vadot  interconnect-names:
38*8d13bc63SEmmanuel Vadot    items:
39*8d13bc63SEmmanuel Vadot      - const: mdp0-mem
40*8d13bc63SEmmanuel Vadot      - const: cpu-cfg
41*8d13bc63SEmmanuel Vadot
428bab661aSEmmanuel VadotpatternProperties:
438bab661aSEmmanuel Vadot  "^display-controller@[0-9a-f]+$":
448bab661aSEmmanuel Vadot    type: object
4584943d6fSEmmanuel Vadot    additionalProperties: true
4684943d6fSEmmanuel Vadot
478bab661aSEmmanuel Vadot    properties:
488bab661aSEmmanuel Vadot      compatible:
498bab661aSEmmanuel Vadot        const: qcom,sm6115-dpu
508bab661aSEmmanuel Vadot
518bab661aSEmmanuel Vadot  "^dsi@[0-9a-f]+$":
528bab661aSEmmanuel Vadot    type: object
5384943d6fSEmmanuel Vadot    additionalProperties: true
5484943d6fSEmmanuel Vadot
558bab661aSEmmanuel Vadot    properties:
568bab661aSEmmanuel Vadot      compatible:
57fac71e4eSEmmanuel Vadot        oneOf:
58fac71e4eSEmmanuel Vadot          - items:
59fac71e4eSEmmanuel Vadot              - const: qcom,sm6115-dsi-ctrl
60fac71e4eSEmmanuel Vadot              - const: qcom,mdss-dsi-ctrl
61fac71e4eSEmmanuel Vadot          - description: Old binding, please don't use
62fac71e4eSEmmanuel Vadot            deprecated: true
638bab661aSEmmanuel Vadot            const: qcom,dsi-ctrl-6g-qcm2290
648bab661aSEmmanuel Vadot
658bab661aSEmmanuel Vadot  "^phy@[0-9a-f]+$":
668bab661aSEmmanuel Vadot    type: object
6784943d6fSEmmanuel Vadot    additionalProperties: true
6884943d6fSEmmanuel Vadot
698bab661aSEmmanuel Vadot    properties:
708bab661aSEmmanuel Vadot      compatible:
718bab661aSEmmanuel Vadot        const: qcom,dsi-phy-14nm-2290
728bab661aSEmmanuel Vadot
738bab661aSEmmanuel Vadotrequired:
748bab661aSEmmanuel Vadot  - compatible
758bab661aSEmmanuel Vadot
768bab661aSEmmanuel VadotunevaluatedProperties: false
778bab661aSEmmanuel Vadot
788bab661aSEmmanuel Vadotexamples:
798bab661aSEmmanuel Vadot  - |
808bab661aSEmmanuel Vadot    #include <dt-bindings/clock/qcom,sm6115-dispcc.h>
818bab661aSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sm6115.h>
828bab661aSEmmanuel Vadot    #include <dt-bindings/clock/qcom,rpmcc.h>
838bab661aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
848bab661aSEmmanuel Vadot    #include <dt-bindings/power/qcom-rpmpd.h>
858bab661aSEmmanuel Vadot
868bab661aSEmmanuel Vadot    display-subsystem@5e00000 {
878bab661aSEmmanuel Vadot        #address-cells = <1>;
888bab661aSEmmanuel Vadot        #size-cells = <1>;
898bab661aSEmmanuel Vadot        compatible = "qcom,sm6115-mdss";
908bab661aSEmmanuel Vadot        reg = <0x05e00000 0x1000>;
918bab661aSEmmanuel Vadot        reg-names = "mdss";
928bab661aSEmmanuel Vadot        power-domains = <&dispcc MDSS_GDSC>;
938bab661aSEmmanuel Vadot        clocks = <&gcc GCC_DISP_AHB_CLK>,
948bab661aSEmmanuel Vadot                 <&gcc GCC_DISP_HF_AXI_CLK>,
958bab661aSEmmanuel Vadot                 <&dispcc DISP_CC_MDSS_MDP_CLK>;
968bab661aSEmmanuel Vadot
978bab661aSEmmanuel Vadot        interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
988bab661aSEmmanuel Vadot        interrupt-controller;
998bab661aSEmmanuel Vadot        #interrupt-cells = <1>;
1008bab661aSEmmanuel Vadot
1018bab661aSEmmanuel Vadot        iommus = <&apps_smmu 0x420 0x2>,
1028bab661aSEmmanuel Vadot                 <&apps_smmu 0x421 0x0>;
1038bab661aSEmmanuel Vadot        ranges;
1048bab661aSEmmanuel Vadot
1058bab661aSEmmanuel Vadot        display-controller@5e01000 {
1068bab661aSEmmanuel Vadot            compatible = "qcom,sm6115-dpu";
1078bab661aSEmmanuel Vadot            reg = <0x05e01000 0x8f000>,
1088bab661aSEmmanuel Vadot                  <0x05eb0000 0x2008>;
1098bab661aSEmmanuel Vadot            reg-names = "mdp", "vbif";
1108bab661aSEmmanuel Vadot
1118bab661aSEmmanuel Vadot            clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
1128bab661aSEmmanuel Vadot                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
1138bab661aSEmmanuel Vadot                     <&dispcc DISP_CC_MDSS_MDP_CLK>,
1148bab661aSEmmanuel Vadot                     <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
1158bab661aSEmmanuel Vadot                     <&dispcc DISP_CC_MDSS_ROT_CLK>,
1168bab661aSEmmanuel Vadot                     <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
1178bab661aSEmmanuel Vadot            clock-names = "bus", "iface", "core", "lut", "rot", "vsync";
1188bab661aSEmmanuel Vadot
1198bab661aSEmmanuel Vadot            operating-points-v2 = <&mdp_opp_table>;
1208bab661aSEmmanuel Vadot            power-domains = <&rpmpd SM6115_VDDCX>;
1218bab661aSEmmanuel Vadot
1228bab661aSEmmanuel Vadot            interrupt-parent = <&mdss>;
1238bab661aSEmmanuel Vadot            interrupts = <0>;
1248bab661aSEmmanuel Vadot
1258bab661aSEmmanuel Vadot            ports {
1268bab661aSEmmanuel Vadot                #address-cells = <1>;
1278bab661aSEmmanuel Vadot                #size-cells = <0>;
1288bab661aSEmmanuel Vadot
1298bab661aSEmmanuel Vadot                port@0 {
1308bab661aSEmmanuel Vadot                    reg = <0>;
1318bab661aSEmmanuel Vadot                    dpu_intf1_out: endpoint {
1328bab661aSEmmanuel Vadot                        remote-endpoint = <&dsi0_in>;
1338bab661aSEmmanuel Vadot                    };
1348bab661aSEmmanuel Vadot                };
1358bab661aSEmmanuel Vadot            };
1368bab661aSEmmanuel Vadot        };
1378bab661aSEmmanuel Vadot
1388bab661aSEmmanuel Vadot        dsi@5e94000 {
139fac71e4eSEmmanuel Vadot            compatible = "qcom,sm6115-dsi-ctrl", "qcom,mdss-dsi-ctrl";
1408bab661aSEmmanuel Vadot            reg = <0x05e94000 0x400>;
1418bab661aSEmmanuel Vadot            reg-names = "dsi_ctrl";
1428bab661aSEmmanuel Vadot
1438bab661aSEmmanuel Vadot            interrupt-parent = <&mdss>;
1448bab661aSEmmanuel Vadot            interrupts = <4>;
1458bab661aSEmmanuel Vadot
1468bab661aSEmmanuel Vadot            clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
1478bab661aSEmmanuel Vadot                     <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
1488bab661aSEmmanuel Vadot                     <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
1498bab661aSEmmanuel Vadot                     <&dispcc DISP_CC_MDSS_ESC0_CLK>,
1508bab661aSEmmanuel Vadot                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
1518bab661aSEmmanuel Vadot                     <&gcc GCC_DISP_HF_AXI_CLK>;
1528bab661aSEmmanuel Vadot            clock-names = "byte",
1538bab661aSEmmanuel Vadot                          "byte_intf",
1548bab661aSEmmanuel Vadot                          "pixel",
1558bab661aSEmmanuel Vadot                          "core",
1568bab661aSEmmanuel Vadot                          "iface",
1578bab661aSEmmanuel Vadot                          "bus";
1588bab661aSEmmanuel Vadot            assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
1598bab661aSEmmanuel Vadot            assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
1608bab661aSEmmanuel Vadot
1618bab661aSEmmanuel Vadot            operating-points-v2 = <&dsi_opp_table>;
1628bab661aSEmmanuel Vadot            power-domains = <&rpmpd SM6115_VDDCX>;
1638bab661aSEmmanuel Vadot            phys = <&dsi0_phy>;
1648bab661aSEmmanuel Vadot
1658bab661aSEmmanuel Vadot            #address-cells = <1>;
1668bab661aSEmmanuel Vadot            #size-cells = <0>;
1678bab661aSEmmanuel Vadot
1688bab661aSEmmanuel Vadot            ports {
1698bab661aSEmmanuel Vadot                #address-cells = <1>;
1708bab661aSEmmanuel Vadot                #size-cells = <0>;
1718bab661aSEmmanuel Vadot
1728bab661aSEmmanuel Vadot                port@0 {
1738bab661aSEmmanuel Vadot                    reg = <0>;
1748bab661aSEmmanuel Vadot                    dsi0_in: endpoint {
1758bab661aSEmmanuel Vadot                        remote-endpoint = <&dpu_intf1_out>;
1768bab661aSEmmanuel Vadot                    };
1778bab661aSEmmanuel Vadot                };
1788bab661aSEmmanuel Vadot
1798bab661aSEmmanuel Vadot                port@1 {
1808bab661aSEmmanuel Vadot                    reg = <1>;
1818bab661aSEmmanuel Vadot                    dsi0_out: endpoint {
1828bab661aSEmmanuel Vadot                    };
1838bab661aSEmmanuel Vadot                };
1848bab661aSEmmanuel Vadot            };
1858bab661aSEmmanuel Vadot        };
1868bab661aSEmmanuel Vadot
1878bab661aSEmmanuel Vadot        dsi0_phy: phy@5e94400 {
1888bab661aSEmmanuel Vadot            compatible = "qcom,dsi-phy-14nm-2290";
1898bab661aSEmmanuel Vadot            reg = <0x05e94400 0x100>,
1908bab661aSEmmanuel Vadot                  <0x05e94500 0x300>,
1918bab661aSEmmanuel Vadot                  <0x05e94800 0x188>;
1928bab661aSEmmanuel Vadot            reg-names = "dsi_phy",
1938bab661aSEmmanuel Vadot                        "dsi_phy_lane",
1948bab661aSEmmanuel Vadot                        "dsi_pll";
1958bab661aSEmmanuel Vadot
1968bab661aSEmmanuel Vadot            #clock-cells = <1>;
1978bab661aSEmmanuel Vadot            #phy-cells = <0>;
1988bab661aSEmmanuel Vadot
1998bab661aSEmmanuel Vadot            clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
2008bab661aSEmmanuel Vadot            clock-names = "iface", "ref";
2018bab661aSEmmanuel Vadot        };
2028bab661aSEmmanuel Vadot    };
2038bab661aSEmmanuel Vadot...
204