xref: /freebsd/sys/contrib/device-tree/Bindings/display/msm/qcom,sm7150-dpu.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*0e8011faSEmmanuel Vadot%YAML 1.2
3*0e8011faSEmmanuel Vadot---
4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/display/msm/qcom,sm7150-dpu.yaml#
5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0e8011faSEmmanuel Vadot
7*0e8011faSEmmanuel Vadottitle: Qualcomm SM7150 Display Processing Unit (DPU)
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel Vadotmaintainers:
10*0e8011faSEmmanuel Vadot  - Danila Tikhonov <danila@jiaxyga.com>
11*0e8011faSEmmanuel Vadot
12*0e8011faSEmmanuel Vadot$ref: /schemas/display/msm/dpu-common.yaml#
13*0e8011faSEmmanuel Vadot
14*0e8011faSEmmanuel Vadotproperties:
15*0e8011faSEmmanuel Vadot  compatible:
16*0e8011faSEmmanuel Vadot    const: qcom,sm7150-dpu
17*0e8011faSEmmanuel Vadot
18*0e8011faSEmmanuel Vadot  reg:
19*0e8011faSEmmanuel Vadot    items:
20*0e8011faSEmmanuel Vadot      - description: Address offset and size for mdp register set
21*0e8011faSEmmanuel Vadot      - description: Address offset and size for vbif register set
22*0e8011faSEmmanuel Vadot
23*0e8011faSEmmanuel Vadot  reg-names:
24*0e8011faSEmmanuel Vadot    items:
25*0e8011faSEmmanuel Vadot      - const: mdp
26*0e8011faSEmmanuel Vadot      - const: vbif
27*0e8011faSEmmanuel Vadot
28*0e8011faSEmmanuel Vadot  clocks:
29*0e8011faSEmmanuel Vadot    items:
30*0e8011faSEmmanuel Vadot      - description: Display hf axi clock
31*0e8011faSEmmanuel Vadot      - description: Display ahb clock
32*0e8011faSEmmanuel Vadot      - description: Display rotator clock
33*0e8011faSEmmanuel Vadot      - description: Display lut clock
34*0e8011faSEmmanuel Vadot      - description: Display core clock
35*0e8011faSEmmanuel Vadot      - description: Display vsync clock
36*0e8011faSEmmanuel Vadot
37*0e8011faSEmmanuel Vadot  clock-names:
38*0e8011faSEmmanuel Vadot    items:
39*0e8011faSEmmanuel Vadot      - const: bus
40*0e8011faSEmmanuel Vadot      - const: iface
41*0e8011faSEmmanuel Vadot      - const: rot
42*0e8011faSEmmanuel Vadot      - const: lut
43*0e8011faSEmmanuel Vadot      - const: core
44*0e8011faSEmmanuel Vadot      - const: vsync
45*0e8011faSEmmanuel Vadot
46*0e8011faSEmmanuel Vadotrequired:
47*0e8011faSEmmanuel Vadot  - compatible
48*0e8011faSEmmanuel Vadot  - reg
49*0e8011faSEmmanuel Vadot  - reg-names
50*0e8011faSEmmanuel Vadot  - clocks
51*0e8011faSEmmanuel Vadot  - clock-names
52*0e8011faSEmmanuel Vadot
53*0e8011faSEmmanuel VadotunevaluatedProperties: false
54*0e8011faSEmmanuel Vadot
55*0e8011faSEmmanuel Vadotexamples:
56*0e8011faSEmmanuel Vadot  - |
57*0e8011faSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
58*0e8011faSEmmanuel Vadot    #include <dt-bindings/power/qcom,rpmhpd.h>
59*0e8011faSEmmanuel Vadot
60*0e8011faSEmmanuel Vadot    display-controller@ae01000 {
61*0e8011faSEmmanuel Vadot        compatible = "qcom,sm7150-dpu";
62*0e8011faSEmmanuel Vadot        reg = <0x0ae01000 0x8f000>,
63*0e8011faSEmmanuel Vadot              <0x0aeb0000 0x2008>;
64*0e8011faSEmmanuel Vadot        reg-names = "mdp", "vbif";
65*0e8011faSEmmanuel Vadot
66*0e8011faSEmmanuel Vadot        clocks = <&gcc_disp_hf_axi_clk>,
67*0e8011faSEmmanuel Vadot                 <&dispcc_mdss_ahb_clk>,
68*0e8011faSEmmanuel Vadot                 <&dispcc_mdss_rot_clk>,
69*0e8011faSEmmanuel Vadot                 <&dispcc_mdss_mdp_lut_clk>,
70*0e8011faSEmmanuel Vadot                 <&dispcc_mdss_mdp_clk>,
71*0e8011faSEmmanuel Vadot                 <&dispcc_mdss_vsync_clk>;
72*0e8011faSEmmanuel Vadot        clock-names = "bus",
73*0e8011faSEmmanuel Vadot                      "iface",
74*0e8011faSEmmanuel Vadot                      "rot",
75*0e8011faSEmmanuel Vadot                      "lut",
76*0e8011faSEmmanuel Vadot                      "core",
77*0e8011faSEmmanuel Vadot                      "vsync";
78*0e8011faSEmmanuel Vadot
79*0e8011faSEmmanuel Vadot        assigned-clocks = <&dispcc_mdss_vsync_clk>;
80*0e8011faSEmmanuel Vadot        assigned-clock-rates = <19200000>;
81*0e8011faSEmmanuel Vadot
82*0e8011faSEmmanuel Vadot        operating-points-v2 = <&mdp_opp_table>;
83*0e8011faSEmmanuel Vadot        power-domains = <&rpmhpd RPMHPD_CX>;
84*0e8011faSEmmanuel Vadot
85*0e8011faSEmmanuel Vadot        interrupt-parent = <&mdss>;
86*0e8011faSEmmanuel Vadot        interrupts = <0>;
87*0e8011faSEmmanuel Vadot
88*0e8011faSEmmanuel Vadot        ports {
89*0e8011faSEmmanuel Vadot            #address-cells = <1>;
90*0e8011faSEmmanuel Vadot            #size-cells = <0>;
91*0e8011faSEmmanuel Vadot
92*0e8011faSEmmanuel Vadot            port@0 {
93*0e8011faSEmmanuel Vadot                reg = <0>;
94*0e8011faSEmmanuel Vadot                dpu_intf1_out: endpoint {
95*0e8011faSEmmanuel Vadot                    remote-endpoint = <&mdss_dsi0_in>;
96*0e8011faSEmmanuel Vadot                };
97*0e8011faSEmmanuel Vadot            };
98*0e8011faSEmmanuel Vadot
99*0e8011faSEmmanuel Vadot            port@1 {
100*0e8011faSEmmanuel Vadot                reg = <1>;
101*0e8011faSEmmanuel Vadot                dpu_intf2_out: endpoint {
102*0e8011faSEmmanuel Vadot                    remote-endpoint = <&mdss_dsi1_in>;
103*0e8011faSEmmanuel Vadot                };
104*0e8011faSEmmanuel Vadot            };
105*0e8011faSEmmanuel Vadot
106*0e8011faSEmmanuel Vadot            port@2 {
107*0e8011faSEmmanuel Vadot                reg = <2>;
108*0e8011faSEmmanuel Vadot                dpu_intf0_out: endpoint {
109*0e8011faSEmmanuel Vadot                    remote-endpoint = <&dp_in>;
110*0e8011faSEmmanuel Vadot                };
111*0e8011faSEmmanuel Vadot            };
112*0e8011faSEmmanuel Vadot        };
113*0e8011faSEmmanuel Vadot
114*0e8011faSEmmanuel Vadot        mdp_opp_table: opp-table {
115*0e8011faSEmmanuel Vadot            compatible = "operating-points-v2";
116*0e8011faSEmmanuel Vadot
117*0e8011faSEmmanuel Vadot            opp-19200000 {
118*0e8011faSEmmanuel Vadot                opp-hz = /bits/ 64 <19200000>;
119*0e8011faSEmmanuel Vadot                required-opps = <&rpmhpd_opp_min_svs>;
120*0e8011faSEmmanuel Vadot            };
121*0e8011faSEmmanuel Vadot
122*0e8011faSEmmanuel Vadot            opp-200000000 {
123*0e8011faSEmmanuel Vadot                opp-hz = /bits/ 64 <200000000>;
124*0e8011faSEmmanuel Vadot                required-opps = <&rpmhpd_opp_low_svs>;
125*0e8011faSEmmanuel Vadot            };
126*0e8011faSEmmanuel Vadot
127*0e8011faSEmmanuel Vadot            opp-300000000 {
128*0e8011faSEmmanuel Vadot                opp-hz = /bits/ 64 <300000000>;
129*0e8011faSEmmanuel Vadot                required-opps = <&rpmhpd_opp_svs>;
130*0e8011faSEmmanuel Vadot            };
131*0e8011faSEmmanuel Vadot
132*0e8011faSEmmanuel Vadot            opp-344000000 {
133*0e8011faSEmmanuel Vadot                opp-hz = /bits/ 64 <344000000>;
134*0e8011faSEmmanuel Vadot                required-opps = <&rpmhpd_opp_svs_l1>;
135*0e8011faSEmmanuel Vadot            };
136*0e8011faSEmmanuel Vadot
137*0e8011faSEmmanuel Vadot            opp-430000000 {
138*0e8011faSEmmanuel Vadot                opp-hz = /bits/ 64 <430000000>;
139*0e8011faSEmmanuel Vadot                required-opps = <&rpmhpd_opp_nom>;
140*0e8011faSEmmanuel Vadot            };
141*0e8011faSEmmanuel Vadot        };
142*0e8011faSEmmanuel Vadot    };
143*0e8011faSEmmanuel Vadot...
144