xref: /linux/Documentation/devicetree/bindings/display/msm/qcom,sm8550-dpu.yaml (revision b6dde3a06f2e00d2c4c902a581ef72c101f50bcc)
1*b6dde3a0SNeil Armstrong# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
2*b6dde3a0SNeil Armstrong%YAML 1.2
3*b6dde3a0SNeil Armstrong---
4*b6dde3a0SNeil Armstrong$id: http://devicetree.org/schemas/display/msm/qcom,sm8550-dpu.yaml#
5*b6dde3a0SNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b6dde3a0SNeil Armstrong
7*b6dde3a0SNeil Armstrongtitle: Qualcomm SM8550 Display DPU
8*b6dde3a0SNeil Armstrong
9*b6dde3a0SNeil Armstrongmaintainers:
10*b6dde3a0SNeil Armstrong  - Neil Armstrong <neil.armstrong@linaro.org>
11*b6dde3a0SNeil Armstrong
12*b6dde3a0SNeil Armstrong$ref: /schemas/display/msm/dpu-common.yaml#
13*b6dde3a0SNeil Armstrong
14*b6dde3a0SNeil Armstrongproperties:
15*b6dde3a0SNeil Armstrong  compatible:
16*b6dde3a0SNeil Armstrong    const: qcom,sm8550-dpu
17*b6dde3a0SNeil Armstrong
18*b6dde3a0SNeil Armstrong  reg:
19*b6dde3a0SNeil Armstrong    items:
20*b6dde3a0SNeil Armstrong      - description: Address offset and size for mdp register set
21*b6dde3a0SNeil Armstrong      - description: Address offset and size for vbif register set
22*b6dde3a0SNeil Armstrong
23*b6dde3a0SNeil Armstrong  reg-names:
24*b6dde3a0SNeil Armstrong    items:
25*b6dde3a0SNeil Armstrong      - const: mdp
26*b6dde3a0SNeil Armstrong      - const: vbif
27*b6dde3a0SNeil Armstrong
28*b6dde3a0SNeil Armstrong  clocks:
29*b6dde3a0SNeil Armstrong    items:
30*b6dde3a0SNeil Armstrong      - description: Display AHB
31*b6dde3a0SNeil Armstrong      - description: Display hf axi
32*b6dde3a0SNeil Armstrong      - description: Display MDSS ahb
33*b6dde3a0SNeil Armstrong      - description: Display lut
34*b6dde3a0SNeil Armstrong      - description: Display core
35*b6dde3a0SNeil Armstrong      - description: Display vsync
36*b6dde3a0SNeil Armstrong
37*b6dde3a0SNeil Armstrong  clock-names:
38*b6dde3a0SNeil Armstrong    items:
39*b6dde3a0SNeil Armstrong      - const: bus
40*b6dde3a0SNeil Armstrong      - const: nrt_bus
41*b6dde3a0SNeil Armstrong      - const: iface
42*b6dde3a0SNeil Armstrong      - const: lut
43*b6dde3a0SNeil Armstrong      - const: core
44*b6dde3a0SNeil Armstrong      - const: vsync
45*b6dde3a0SNeil Armstrong
46*b6dde3a0SNeil Armstrongrequired:
47*b6dde3a0SNeil Armstrong  - compatible
48*b6dde3a0SNeil Armstrong  - reg
49*b6dde3a0SNeil Armstrong  - reg-names
50*b6dde3a0SNeil Armstrong  - clocks
51*b6dde3a0SNeil Armstrong  - clock-names
52*b6dde3a0SNeil Armstrong
53*b6dde3a0SNeil ArmstrongunevaluatedProperties: false
54*b6dde3a0SNeil Armstrong
55*b6dde3a0SNeil Armstrongexamples:
56*b6dde3a0SNeil Armstrong  - |
57*b6dde3a0SNeil Armstrong    #include <dt-bindings/clock/qcom,sm8550-dispcc.h>
58*b6dde3a0SNeil Armstrong    #include <dt-bindings/clock/qcom,sm8550-gcc.h>
59*b6dde3a0SNeil Armstrong    #include <dt-bindings/interrupt-controller/arm-gic.h>
60*b6dde3a0SNeil Armstrong    #include <dt-bindings/power/qcom-rpmpd.h>
61*b6dde3a0SNeil Armstrong
62*b6dde3a0SNeil Armstrong    display-controller@ae01000 {
63*b6dde3a0SNeil Armstrong        compatible = "qcom,sm8550-dpu";
64*b6dde3a0SNeil Armstrong        reg = <0x0ae01000 0x8f000>,
65*b6dde3a0SNeil Armstrong              <0x0aeb0000 0x2008>;
66*b6dde3a0SNeil Armstrong        reg-names = "mdp", "vbif";
67*b6dde3a0SNeil Armstrong
68*b6dde3a0SNeil Armstrong        clocks = <&gcc GCC_DISP_AHB_CLK>,
69*b6dde3a0SNeil Armstrong                <&gcc GCC_DISP_HF_AXI_CLK>,
70*b6dde3a0SNeil Armstrong                <&dispcc DISP_CC_MDSS_AHB_CLK>,
71*b6dde3a0SNeil Armstrong                <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
72*b6dde3a0SNeil Armstrong                <&dispcc DISP_CC_MDSS_MDP_CLK>,
73*b6dde3a0SNeil Armstrong                <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
74*b6dde3a0SNeil Armstrong        clock-names = "bus",
75*b6dde3a0SNeil Armstrong                      "nrt_bus",
76*b6dde3a0SNeil Armstrong                      "iface",
77*b6dde3a0SNeil Armstrong                      "lut",
78*b6dde3a0SNeil Armstrong                      "core",
79*b6dde3a0SNeil Armstrong                      "vsync";
80*b6dde3a0SNeil Armstrong
81*b6dde3a0SNeil Armstrong        assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
82*b6dde3a0SNeil Armstrong        assigned-clock-rates = <19200000>;
83*b6dde3a0SNeil Armstrong
84*b6dde3a0SNeil Armstrong        operating-points-v2 = <&mdp_opp_table>;
85*b6dde3a0SNeil Armstrong        power-domains = <&rpmhpd SM8550_MMCX>;
86*b6dde3a0SNeil Armstrong
87*b6dde3a0SNeil Armstrong        interrupt-parent = <&mdss>;
88*b6dde3a0SNeil Armstrong        interrupts = <0>;
89*b6dde3a0SNeil Armstrong
90*b6dde3a0SNeil Armstrong        ports {
91*b6dde3a0SNeil Armstrong            #address-cells = <1>;
92*b6dde3a0SNeil Armstrong            #size-cells = <0>;
93*b6dde3a0SNeil Armstrong
94*b6dde3a0SNeil Armstrong            port@0 {
95*b6dde3a0SNeil Armstrong                reg = <0>;
96*b6dde3a0SNeil Armstrong                dpu_intf1_out: endpoint {
97*b6dde3a0SNeil Armstrong                    remote-endpoint = <&dsi0_in>;
98*b6dde3a0SNeil Armstrong                };
99*b6dde3a0SNeil Armstrong            };
100*b6dde3a0SNeil Armstrong
101*b6dde3a0SNeil Armstrong            port@1 {
102*b6dde3a0SNeil Armstrong                reg = <1>;
103*b6dde3a0SNeil Armstrong                dpu_intf2_out: endpoint {
104*b6dde3a0SNeil Armstrong                    remote-endpoint = <&dsi1_in>;
105*b6dde3a0SNeil Armstrong                };
106*b6dde3a0SNeil Armstrong            };
107*b6dde3a0SNeil Armstrong        };
108*b6dde3a0SNeil Armstrong
109*b6dde3a0SNeil Armstrong        mdp_opp_table: opp-table {
110*b6dde3a0SNeil Armstrong            compatible = "operating-points-v2";
111*b6dde3a0SNeil Armstrong
112*b6dde3a0SNeil Armstrong            opp-200000000 {
113*b6dde3a0SNeil Armstrong                opp-hz = /bits/ 64 <200000000>;
114*b6dde3a0SNeil Armstrong                required-opps = <&rpmhpd_opp_low_svs>;
115*b6dde3a0SNeil Armstrong            };
116*b6dde3a0SNeil Armstrong
117*b6dde3a0SNeil Armstrong            opp-325000000 {
118*b6dde3a0SNeil Armstrong                opp-hz = /bits/ 64 <325000000>;
119*b6dde3a0SNeil Armstrong                required-opps = <&rpmhpd_opp_svs>;
120*b6dde3a0SNeil Armstrong            };
121*b6dde3a0SNeil Armstrong
122*b6dde3a0SNeil Armstrong            opp-375000000 {
123*b6dde3a0SNeil Armstrong                opp-hz = /bits/ 64 <375000000>;
124*b6dde3a0SNeil Armstrong                required-opps = <&rpmhpd_opp_svs_l1>;
125*b6dde3a0SNeil Armstrong            };
126*b6dde3a0SNeil Armstrong
127*b6dde3a0SNeil Armstrong            opp-514000000 {
128*b6dde3a0SNeil Armstrong                opp-hz = /bits/ 64 <514000000>;
129*b6dde3a0SNeil Armstrong                required-opps = <&rpmhpd_opp_nom>;
130*b6dde3a0SNeil Armstrong            };
131*b6dde3a0SNeil Armstrong        };
132*b6dde3a0SNeil Armstrong    };
133*b6dde3a0SNeil Armstrong...
134