xref: /openbmc/linux/Documentation/devicetree/bindings/display/msm/qcom,qcm2290-mdss.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1*440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
206097b13SDmitry Baryshkov%YAML 1.2
306097b13SDmitry Baryshkov---
406097b13SDmitry Baryshkov$id: http://devicetree.org/schemas/display/msm/qcom,qcm2290-mdss.yaml#
506097b13SDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml#
606097b13SDmitry Baryshkov
706097b13SDmitry Baryshkovtitle: Qualcomm QCM220 Display MDSS
806097b13SDmitry Baryshkov
906097b13SDmitry Baryshkovmaintainers:
1006097b13SDmitry Baryshkov  - Loic Poulain <loic.poulain@linaro.org>
1106097b13SDmitry Baryshkov
1206097b13SDmitry Baryshkovdescription:
1306097b13SDmitry Baryshkov  Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates
1406097b13SDmitry Baryshkov  sub-blocks like DPU display controller and DSI. Device tree bindings of MDSS
1506097b13SDmitry Baryshkov  are mentioned for QCM2290 target.
1606097b13SDmitry Baryshkov
1706097b13SDmitry Baryshkov$ref: /schemas/display/msm/mdss-common.yaml#
1806097b13SDmitry Baryshkov
1906097b13SDmitry Baryshkovproperties:
2006097b13SDmitry Baryshkov  compatible:
217ad65866SKrzysztof Kozlowski    const: qcom,qcm2290-mdss
2206097b13SDmitry Baryshkov
2306097b13SDmitry Baryshkov  clocks:
2406097b13SDmitry Baryshkov    items:
2506097b13SDmitry Baryshkov      - description: Display AHB clock from gcc
2606097b13SDmitry Baryshkov      - description: Display AXI clock
2706097b13SDmitry Baryshkov      - description: Display core clock
2806097b13SDmitry Baryshkov
2906097b13SDmitry Baryshkov  clock-names:
3006097b13SDmitry Baryshkov    items:
3106097b13SDmitry Baryshkov      - const: iface
3206097b13SDmitry Baryshkov      - const: bus
3306097b13SDmitry Baryshkov      - const: core
3406097b13SDmitry Baryshkov
3506097b13SDmitry Baryshkov  iommus:
3606097b13SDmitry Baryshkov    maxItems: 2
3706097b13SDmitry Baryshkov
3806097b13SDmitry Baryshkov  interconnects:
3906097b13SDmitry Baryshkov    maxItems: 1
4006097b13SDmitry Baryshkov
4106097b13SDmitry Baryshkov  interconnect-names:
4206097b13SDmitry Baryshkov    maxItems: 1
4306097b13SDmitry Baryshkov
4406097b13SDmitry BaryshkovpatternProperties:
4506097b13SDmitry Baryshkov  "^display-controller@[0-9a-f]+$":
4606097b13SDmitry Baryshkov    type: object
4706097b13SDmitry Baryshkov    properties:
4806097b13SDmitry Baryshkov      compatible:
4906097b13SDmitry Baryshkov        const: qcom,qcm2290-dpu
5006097b13SDmitry Baryshkov
514b32e466SDmitry Baryshkov  "^dsi@[0-9a-f]+$":
524b32e466SDmitry Baryshkov    type: object
534b32e466SDmitry Baryshkov    properties:
544b32e466SDmitry Baryshkov      compatible:
554b32e466SDmitry Baryshkov        const: qcom,dsi-ctrl-6g-qcm2290
564b32e466SDmitry Baryshkov
574b32e466SDmitry Baryshkov  "^phy@[0-9a-f]+$":
584b32e466SDmitry Baryshkov    type: object
594b32e466SDmitry Baryshkov    properties:
604b32e466SDmitry Baryshkov      compatible:
614b32e466SDmitry Baryshkov        const: qcom,dsi-phy-14nm-2290
624b32e466SDmitry Baryshkov
63e96150a6SDmitry Baryshkovrequired:
64e96150a6SDmitry Baryshkov  - compatible
65e96150a6SDmitry Baryshkov
6606097b13SDmitry BaryshkovunevaluatedProperties: false
6706097b13SDmitry Baryshkov
6806097b13SDmitry Baryshkovexamples:
6906097b13SDmitry Baryshkov  - |
7006097b13SDmitry Baryshkov    #include <dt-bindings/clock/qcom,dispcc-qcm2290.h>
7106097b13SDmitry Baryshkov    #include <dt-bindings/clock/qcom,gcc-qcm2290.h>
724b32e466SDmitry Baryshkov    #include <dt-bindings/clock/qcom,rpmcc.h>
7306097b13SDmitry Baryshkov    #include <dt-bindings/interrupt-controller/arm-gic.h>
7406097b13SDmitry Baryshkov    #include <dt-bindings/interconnect/qcom,qcm2290.h>
7506097b13SDmitry Baryshkov    #include <dt-bindings/power/qcom-rpmpd.h>
7606097b13SDmitry Baryshkov
77e5266ca3SAdam Skladowski    display-subsystem@5e00000 {
7806097b13SDmitry Baryshkov        #address-cells = <1>;
7906097b13SDmitry Baryshkov        #size-cells = <1>;
8006097b13SDmitry Baryshkov        compatible = "qcom,qcm2290-mdss";
8106097b13SDmitry Baryshkov        reg = <0x05e00000 0x1000>;
8206097b13SDmitry Baryshkov        reg-names = "mdss";
8306097b13SDmitry Baryshkov        power-domains = <&dispcc MDSS_GDSC>;
8406097b13SDmitry Baryshkov        clocks = <&gcc GCC_DISP_AHB_CLK>,
8506097b13SDmitry Baryshkov                 <&gcc GCC_DISP_HF_AXI_CLK>,
8606097b13SDmitry Baryshkov                 <&dispcc DISP_CC_MDSS_MDP_CLK>;
8706097b13SDmitry Baryshkov        clock-names = "iface", "bus", "core";
8806097b13SDmitry Baryshkov
8906097b13SDmitry Baryshkov        interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
9006097b13SDmitry Baryshkov        interrupt-controller;
9106097b13SDmitry Baryshkov        #interrupt-cells = <1>;
9206097b13SDmitry Baryshkov
9306097b13SDmitry Baryshkov        interconnects = <&mmrt_virt MASTER_MDP0 &bimc SLAVE_EBI1>;
9406097b13SDmitry Baryshkov        interconnect-names = "mdp0-mem";
9506097b13SDmitry Baryshkov
9606097b13SDmitry Baryshkov        iommus = <&apps_smmu 0x420 0x2>,
9706097b13SDmitry Baryshkov                 <&apps_smmu 0x421 0x0>;
9806097b13SDmitry Baryshkov        ranges;
9906097b13SDmitry Baryshkov
10006097b13SDmitry Baryshkov        display-controller@5e01000 {
10106097b13SDmitry Baryshkov            compatible = "qcom,qcm2290-dpu";
10206097b13SDmitry Baryshkov            reg = <0x05e01000 0x8f000>,
10306097b13SDmitry Baryshkov                  <0x05eb0000 0x2008>;
10406097b13SDmitry Baryshkov            reg-names = "mdp", "vbif";
10506097b13SDmitry Baryshkov
10606097b13SDmitry Baryshkov            clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
10706097b13SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
10806097b13SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_MDP_CLK>,
10906097b13SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
11006097b13SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
11106097b13SDmitry Baryshkov            clock-names = "bus", "iface", "core", "lut", "vsync";
11206097b13SDmitry Baryshkov
11306097b13SDmitry Baryshkov            operating-points-v2 = <&mdp_opp_table>;
11406097b13SDmitry Baryshkov            power-domains = <&rpmpd QCM2290_VDDCX>;
11506097b13SDmitry Baryshkov
11606097b13SDmitry Baryshkov            interrupt-parent = <&mdss>;
11706097b13SDmitry Baryshkov            interrupts = <0>;
11806097b13SDmitry Baryshkov
11906097b13SDmitry Baryshkov            ports {
12006097b13SDmitry Baryshkov                #address-cells = <1>;
12106097b13SDmitry Baryshkov                #size-cells = <0>;
12206097b13SDmitry Baryshkov
12306097b13SDmitry Baryshkov                port@0 {
12406097b13SDmitry Baryshkov                    reg = <0>;
12506097b13SDmitry Baryshkov                    dpu_intf1_out: endpoint {
12606097b13SDmitry Baryshkov                        remote-endpoint = <&dsi0_in>;
12706097b13SDmitry Baryshkov                    };
12806097b13SDmitry Baryshkov                };
12906097b13SDmitry Baryshkov            };
13006097b13SDmitry Baryshkov        };
1314b32e466SDmitry Baryshkov
1324b32e466SDmitry Baryshkov        dsi@5e94000 {
1334b32e466SDmitry Baryshkov            compatible = "qcom,dsi-ctrl-6g-qcm2290";
1344b32e466SDmitry Baryshkov            reg = <0x05e94000 0x400>;
1354b32e466SDmitry Baryshkov            reg-names = "dsi_ctrl";
1364b32e466SDmitry Baryshkov
1374b32e466SDmitry Baryshkov            interrupt-parent = <&mdss>;
1384b32e466SDmitry Baryshkov            interrupts = <4>;
1394b32e466SDmitry Baryshkov
1404b32e466SDmitry Baryshkov            clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
1414b32e466SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
1424b32e466SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
1434b32e466SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_ESC0_CLK>,
1444b32e466SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
1454b32e466SDmitry Baryshkov                     <&gcc GCC_DISP_HF_AXI_CLK>;
1464b32e466SDmitry Baryshkov            clock-names = "byte",
1474b32e466SDmitry Baryshkov                          "byte_intf",
1484b32e466SDmitry Baryshkov                          "pixel",
1494b32e466SDmitry Baryshkov                          "core",
1504b32e466SDmitry Baryshkov                          "iface",
1514b32e466SDmitry Baryshkov                          "bus";
1524b32e466SDmitry Baryshkov            assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
1534b32e466SDmitry Baryshkov            assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
1544b32e466SDmitry Baryshkov
1554b32e466SDmitry Baryshkov            operating-points-v2 = <&dsi_opp_table>;
1564b32e466SDmitry Baryshkov            power-domains = <&rpmpd QCM2290_VDDCX>;
1574b32e466SDmitry Baryshkov
1584b32e466SDmitry Baryshkov            phys = <&dsi0_phy>;
1594b32e466SDmitry Baryshkov            phy-names = "dsi";
1604b32e466SDmitry Baryshkov
1614b32e466SDmitry Baryshkov            #address-cells = <1>;
1624b32e466SDmitry Baryshkov            #size-cells = <0>;
1634b32e466SDmitry Baryshkov
1644b32e466SDmitry Baryshkov            ports {
1654b32e466SDmitry Baryshkov                #address-cells = <1>;
1664b32e466SDmitry Baryshkov                #size-cells = <0>;
1674b32e466SDmitry Baryshkov
1684b32e466SDmitry Baryshkov                port@0 {
1694b32e466SDmitry Baryshkov                    reg = <0>;
1704b32e466SDmitry Baryshkov                    dsi0_in: endpoint {
1714b32e466SDmitry Baryshkov                        remote-endpoint = <&dpu_intf1_out>;
1724b32e466SDmitry Baryshkov                    };
1734b32e466SDmitry Baryshkov                };
1744b32e466SDmitry Baryshkov
1754b32e466SDmitry Baryshkov                port@1 {
1764b32e466SDmitry Baryshkov                    reg = <1>;
1774b32e466SDmitry Baryshkov                    dsi0_out: endpoint {
1784b32e466SDmitry Baryshkov                    };
1794b32e466SDmitry Baryshkov                };
1804b32e466SDmitry Baryshkov            };
1814b32e466SDmitry Baryshkov        };
1824b32e466SDmitry Baryshkov
1834b32e466SDmitry Baryshkov        dsi0_phy: phy@5e94400 {
1844b32e466SDmitry Baryshkov            compatible = "qcom,dsi-phy-14nm-2290";
1854b32e466SDmitry Baryshkov            reg = <0x05e94400 0x100>,
1864b32e466SDmitry Baryshkov                  <0x05e94500 0x300>,
1874b32e466SDmitry Baryshkov                  <0x05e94800 0x188>;
1884b32e466SDmitry Baryshkov            reg-names = "dsi_phy",
1894b32e466SDmitry Baryshkov                        "dsi_phy_lane",
1904b32e466SDmitry Baryshkov                        "dsi_pll";
1914b32e466SDmitry Baryshkov
1924b32e466SDmitry Baryshkov            #clock-cells = <1>;
1934b32e466SDmitry Baryshkov            #phy-cells = <0>;
1944b32e466SDmitry Baryshkov
1954b32e466SDmitry Baryshkov            clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
1964b32e466SDmitry Baryshkov            clock-names = "iface", "ref";
1974b32e466SDmitry Baryshkov            vcca-supply = <&vreg_dsi_phy>;
1984b32e466SDmitry Baryshkov        };
19906097b13SDmitry Baryshkov    };
20006097b13SDmitry Baryshkov...
201