xref: /openbmc/linux/Documentation/devicetree/bindings/display/msm/qcom,sc7280-mdss.yaml (revision 2c44a9936636b8fb33aff9ea6ee9da5b372f8dfb)
1*2c44a993SDmitry Baryshkov# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
2*2c44a993SDmitry Baryshkov%YAML 1.2
3*2c44a993SDmitry Baryshkov---
4*2c44a993SDmitry Baryshkov$id: http://devicetree.org/schemas/display/msm/qcom,sc7280-mdss.yaml#
5*2c44a993SDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2c44a993SDmitry Baryshkov
7*2c44a993SDmitry Baryshkovtitle: Qualcomm SC7280 Display MDSS
8*2c44a993SDmitry Baryshkov
9*2c44a993SDmitry Baryshkovmaintainers:
10*2c44a993SDmitry Baryshkov  - Krishna Manikandan <quic_mkrishn@quicinc.com>
11*2c44a993SDmitry Baryshkov
12*2c44a993SDmitry Baryshkovdescription:
13*2c44a993SDmitry Baryshkov  Device tree bindings for MSM Mobile Display Subsystem (MDSS) that encapsulates
14*2c44a993SDmitry Baryshkov  sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree
15*2c44a993SDmitry Baryshkov  bindings of MDSS are mentioned for SC7280.
16*2c44a993SDmitry Baryshkov
17*2c44a993SDmitry Baryshkov$ref: /schemas/display/msm/mdss-common.yaml#
18*2c44a993SDmitry Baryshkov
19*2c44a993SDmitry Baryshkovproperties:
20*2c44a993SDmitry Baryshkov  compatible:
21*2c44a993SDmitry Baryshkov    const: qcom,sc7280-mdss
22*2c44a993SDmitry Baryshkov
23*2c44a993SDmitry Baryshkov  clocks:
24*2c44a993SDmitry Baryshkov    items:
25*2c44a993SDmitry Baryshkov      - description: Display AHB clock from gcc
26*2c44a993SDmitry Baryshkov      - description: Display AHB clock from dispcc
27*2c44a993SDmitry Baryshkov      - description: Display core clock
28*2c44a993SDmitry Baryshkov
29*2c44a993SDmitry Baryshkov  clock-names:
30*2c44a993SDmitry Baryshkov    items:
31*2c44a993SDmitry Baryshkov      - const: iface
32*2c44a993SDmitry Baryshkov      - const: ahb
33*2c44a993SDmitry Baryshkov      - const: core
34*2c44a993SDmitry Baryshkov
35*2c44a993SDmitry Baryshkov  iommus:
36*2c44a993SDmitry Baryshkov    maxItems: 1
37*2c44a993SDmitry Baryshkov
38*2c44a993SDmitry Baryshkov  interconnects:
39*2c44a993SDmitry Baryshkov    maxItems: 1
40*2c44a993SDmitry Baryshkov
41*2c44a993SDmitry Baryshkov  interconnect-names:
42*2c44a993SDmitry Baryshkov    maxItems: 1
43*2c44a993SDmitry Baryshkov
44*2c44a993SDmitry BaryshkovpatternProperties:
45*2c44a993SDmitry Baryshkov  "^display-controller@[0-9a-f]+$":
46*2c44a993SDmitry Baryshkov    type: object
47*2c44a993SDmitry Baryshkov    properties:
48*2c44a993SDmitry Baryshkov      compatible:
49*2c44a993SDmitry Baryshkov        const: qcom,sc7280-dpu
50*2c44a993SDmitry Baryshkov
51*2c44a993SDmitry BaryshkovunevaluatedProperties: false
52*2c44a993SDmitry Baryshkov
53*2c44a993SDmitry Baryshkovexamples:
54*2c44a993SDmitry Baryshkov  - |
55*2c44a993SDmitry Baryshkov    #include <dt-bindings/clock/qcom,dispcc-sc7280.h>
56*2c44a993SDmitry Baryshkov    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
57*2c44a993SDmitry Baryshkov    #include <dt-bindings/interrupt-controller/arm-gic.h>
58*2c44a993SDmitry Baryshkov    #include <dt-bindings/interconnect/qcom,sc7280.h>
59*2c44a993SDmitry Baryshkov    #include <dt-bindings/power/qcom-rpmpd.h>
60*2c44a993SDmitry Baryshkov
61*2c44a993SDmitry Baryshkov    display-subsystem@ae00000 {
62*2c44a993SDmitry Baryshkov        #address-cells = <1>;
63*2c44a993SDmitry Baryshkov        #size-cells = <1>;
64*2c44a993SDmitry Baryshkov        compatible = "qcom,sc7280-mdss";
65*2c44a993SDmitry Baryshkov        reg = <0xae00000 0x1000>;
66*2c44a993SDmitry Baryshkov        reg-names = "mdss";
67*2c44a993SDmitry Baryshkov        power-domains = <&dispcc DISP_CC_MDSS_CORE_GDSC>;
68*2c44a993SDmitry Baryshkov        clocks = <&gcc GCC_DISP_AHB_CLK>,
69*2c44a993SDmitry Baryshkov                 <&dispcc DISP_CC_MDSS_AHB_CLK>,
70*2c44a993SDmitry Baryshkov                 <&dispcc DISP_CC_MDSS_MDP_CLK>;
71*2c44a993SDmitry Baryshkov        clock-names = "iface",
72*2c44a993SDmitry Baryshkov                      "ahb",
73*2c44a993SDmitry Baryshkov                      "core";
74*2c44a993SDmitry Baryshkov
75*2c44a993SDmitry Baryshkov        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
76*2c44a993SDmitry Baryshkov        interrupt-controller;
77*2c44a993SDmitry Baryshkov        #interrupt-cells = <1>;
78*2c44a993SDmitry Baryshkov
79*2c44a993SDmitry Baryshkov        interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>;
80*2c44a993SDmitry Baryshkov        interconnect-names = "mdp0-mem";
81*2c44a993SDmitry Baryshkov
82*2c44a993SDmitry Baryshkov        iommus = <&apps_smmu 0x900 0x402>;
83*2c44a993SDmitry Baryshkov        ranges;
84*2c44a993SDmitry Baryshkov
85*2c44a993SDmitry Baryshkov        display-controller@ae01000 {
86*2c44a993SDmitry Baryshkov            compatible = "qcom,sc7280-dpu";
87*2c44a993SDmitry Baryshkov            reg = <0x0ae01000 0x8f000>,
88*2c44a993SDmitry Baryshkov                  <0x0aeb0000 0x2008>;
89*2c44a993SDmitry Baryshkov
90*2c44a993SDmitry Baryshkov            reg-names = "mdp", "vbif";
91*2c44a993SDmitry Baryshkov
92*2c44a993SDmitry Baryshkov            clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
93*2c44a993SDmitry Baryshkov                     <&gcc GCC_DISP_SF_AXI_CLK>,
94*2c44a993SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_AHB_CLK>,
95*2c44a993SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
96*2c44a993SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_MDP_CLK>,
97*2c44a993SDmitry Baryshkov                     <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
98*2c44a993SDmitry Baryshkov            clock-names = "bus",
99*2c44a993SDmitry Baryshkov                          "nrt_bus",
100*2c44a993SDmitry Baryshkov                          "iface",
101*2c44a993SDmitry Baryshkov                          "lut",
102*2c44a993SDmitry Baryshkov                          "core",
103*2c44a993SDmitry Baryshkov                          "vsync";
104*2c44a993SDmitry Baryshkov
105*2c44a993SDmitry Baryshkov            interrupt-parent = <&mdss>;
106*2c44a993SDmitry Baryshkov            interrupts = <0>;
107*2c44a993SDmitry Baryshkov            power-domains = <&rpmhpd SC7280_CX>;
108*2c44a993SDmitry Baryshkov            operating-points-v2 = <&mdp_opp_table>;
109*2c44a993SDmitry Baryshkov
110*2c44a993SDmitry Baryshkov            ports {
111*2c44a993SDmitry Baryshkov                #address-cells = <1>;
112*2c44a993SDmitry Baryshkov                #size-cells = <0>;
113*2c44a993SDmitry Baryshkov
114*2c44a993SDmitry Baryshkov                port@0 {
115*2c44a993SDmitry Baryshkov                    reg = <0>;
116*2c44a993SDmitry Baryshkov                    dpu_intf1_out: endpoint {
117*2c44a993SDmitry Baryshkov                        remote-endpoint = <&dsi0_in>;
118*2c44a993SDmitry Baryshkov                    };
119*2c44a993SDmitry Baryshkov                };
120*2c44a993SDmitry Baryshkov
121*2c44a993SDmitry Baryshkov                port@1 {
122*2c44a993SDmitry Baryshkov                    reg = <1>;
123*2c44a993SDmitry Baryshkov                    dpu_intf5_out: endpoint {
124*2c44a993SDmitry Baryshkov                        remote-endpoint = <&edp_in>;
125*2c44a993SDmitry Baryshkov                    };
126*2c44a993SDmitry Baryshkov                };
127*2c44a993SDmitry Baryshkov            };
128*2c44a993SDmitry Baryshkov        };
129*2c44a993SDmitry Baryshkov    };
130*2c44a993SDmitry Baryshkov...
131