1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/display/msm/qcom,sc7180-mdss.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm SC7180 Display MDSS 8 9maintainers: 10 - Krishna Manikandan <quic_mkrishn@quicinc.com> 11 12description: 13 Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates 14 sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree 15 bindings of MDSS are mentioned for SC7180 target. 16 17$ref: /schemas/display/msm/mdss-common.yaml# 18 19properties: 20 compatible: 21 const: qcom,sc7180-mdss 22 23 clocks: 24 items: 25 - description: Display AHB clock from gcc 26 - description: Display AHB clock from dispcc 27 - description: Display core clock 28 29 clock-names: 30 items: 31 - const: iface 32 - const: ahb 33 - const: core 34 35 iommus: 36 maxItems: 1 37 38 interconnects: 39 maxItems: 1 40 41 interconnect-names: 42 maxItems: 1 43 44patternProperties: 45 "^display-controller@[0-9a-f]+$": 46 type: object 47 additionalProperties: true 48 49 properties: 50 compatible: 51 const: qcom,sc7180-dpu 52 53 "^displayport-controller@[0-9a-f]+$": 54 type: object 55 additionalProperties: true 56 57 properties: 58 compatible: 59 const: qcom,sc7180-dp 60 61 "^dsi@[0-9a-f]+$": 62 type: object 63 additionalProperties: true 64 65 properties: 66 compatible: 67 items: 68 - const: qcom,sc7180-dsi-ctrl 69 - const: qcom,mdss-dsi-ctrl 70 71 "^phy@[0-9a-f]+$": 72 type: object 73 additionalProperties: true 74 75 properties: 76 compatible: 77 const: qcom,dsi-phy-10nm 78 79required: 80 - compatible 81 82unevaluatedProperties: false 83 84examples: 85 - | 86 #include <dt-bindings/clock/qcom,dispcc-sc7180.h> 87 #include <dt-bindings/clock/qcom,gcc-sc7180.h> 88 #include <dt-bindings/clock/qcom,rpmh.h> 89 #include <dt-bindings/interrupt-controller/arm-gic.h> 90 #include <dt-bindings/interconnect/qcom,sdm845.h> 91 #include <dt-bindings/power/qcom-rpmpd.h> 92 93 display-subsystem@ae00000 { 94 #address-cells = <1>; 95 #size-cells = <1>; 96 compatible = "qcom,sc7180-mdss"; 97 reg = <0xae00000 0x1000>; 98 reg-names = "mdss"; 99 power-domains = <&dispcc MDSS_GDSC>; 100 clocks = <&gcc GCC_DISP_AHB_CLK>, 101 <&dispcc DISP_CC_MDSS_AHB_CLK>, 102 <&dispcc DISP_CC_MDSS_MDP_CLK>; 103 clock-names = "iface", "ahb", "core"; 104 105 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 106 interrupt-controller; 107 #interrupt-cells = <1>; 108 109 interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>; 110 interconnect-names = "mdp0-mem"; 111 112 iommus = <&apps_smmu 0x800 0x2>; 113 ranges; 114 115 display-controller@ae01000 { 116 compatible = "qcom,sc7180-dpu"; 117 reg = <0x0ae01000 0x8f000>, 118 <0x0aeb0000 0x2008>; 119 120 reg-names = "mdp", "vbif"; 121 122 clocks = <&gcc GCC_DISP_HF_AXI_CLK>, 123 <&dispcc DISP_CC_MDSS_AHB_CLK>, 124 <&dispcc DISP_CC_MDSS_ROT_CLK>, 125 <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>, 126 <&dispcc DISP_CC_MDSS_MDP_CLK>, 127 <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 128 clock-names = "bus", "iface", "rot", "lut", "core", 129 "vsync"; 130 131 interrupt-parent = <&mdss>; 132 interrupts = <0>; 133 power-domains = <&rpmhpd SC7180_CX>; 134 operating-points-v2 = <&mdp_opp_table>; 135 136 ports { 137 #address-cells = <1>; 138 #size-cells = <0>; 139 140 port@0 { 141 reg = <0>; 142 dpu_intf1_out: endpoint { 143 remote-endpoint = <&dsi0_in>; 144 }; 145 }; 146 147 port@2 { 148 reg = <2>; 149 dpu_intf0_out: endpoint { 150 remote-endpoint = <&dp_in>; 151 }; 152 }; 153 }; 154 }; 155 156 dsi@ae94000 { 157 compatible = "qcom,sc7180-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 158 reg = <0x0ae94000 0x400>; 159 reg-names = "dsi_ctrl"; 160 161 interrupt-parent = <&mdss>; 162 interrupts = <4>; 163 164 clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>, 165 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, 166 <&dispcc DISP_CC_MDSS_PCLK0_CLK>, 167 <&dispcc DISP_CC_MDSS_ESC0_CLK>, 168 <&dispcc DISP_CC_MDSS_AHB_CLK>, 169 <&gcc GCC_DISP_HF_AXI_CLK>; 170 clock-names = "byte", 171 "byte_intf", 172 "pixel", 173 "core", 174 "iface", 175 "bus"; 176 177 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>; 178 assigned-clock-parents = <&dsi_phy 0>, <&dsi_phy 1>; 179 180 operating-points-v2 = <&dsi_opp_table>; 181 power-domains = <&rpmhpd SC7180_CX>; 182 183 phys = <&dsi_phy>; 184 phy-names = "dsi"; 185 186 #address-cells = <1>; 187 #size-cells = <0>; 188 189 ports { 190 #address-cells = <1>; 191 #size-cells = <0>; 192 193 port@0 { 194 reg = <0>; 195 dsi0_in: endpoint { 196 remote-endpoint = <&dpu_intf1_out>; 197 }; 198 }; 199 200 port@1 { 201 reg = <1>; 202 dsi0_out: endpoint { 203 }; 204 }; 205 }; 206 207 dsi_opp_table: opp-table { 208 compatible = "operating-points-v2"; 209 210 opp-187500000 { 211 opp-hz = /bits/ 64 <187500000>; 212 required-opps = <&rpmhpd_opp_low_svs>; 213 }; 214 215 opp-300000000 { 216 opp-hz = /bits/ 64 <300000000>; 217 required-opps = <&rpmhpd_opp_svs>; 218 }; 219 220 opp-358000000 { 221 opp-hz = /bits/ 64 <358000000>; 222 required-opps = <&rpmhpd_opp_svs_l1>; 223 }; 224 }; 225 }; 226 227 dsi_phy: phy@ae94400 { 228 compatible = "qcom,dsi-phy-10nm"; 229 reg = <0x0ae94400 0x200>, 230 <0x0ae94600 0x280>, 231 <0x0ae94a00 0x1e0>; 232 reg-names = "dsi_phy", 233 "dsi_phy_lane", 234 "dsi_pll"; 235 236 #clock-cells = <1>; 237 #phy-cells = <0>; 238 239 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 240 <&rpmhcc RPMH_CXO_CLK>; 241 clock-names = "iface", "ref"; 242 vdds-supply = <&vreg_dsi_phy>; 243 }; 244 245 displayport-controller@ae90000 { 246 compatible = "qcom,sc7180-dp"; 247 248 reg = <0xae90000 0x200>, 249 <0xae90200 0x200>, 250 <0xae90400 0xc00>, 251 <0xae91000 0x400>, 252 <0xae91400 0x400>; 253 254 interrupt-parent = <&mdss>; 255 interrupts = <12>; 256 257 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 258 <&dispcc DISP_CC_MDSS_DP_AUX_CLK>, 259 <&dispcc DISP_CC_MDSS_DP_LINK_CLK>, 260 <&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>, 261 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>; 262 clock-names = "core_iface", "core_aux", "ctrl_link", 263 "ctrl_link_iface", "stream_pixel"; 264 assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>, 265 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>; 266 assigned-clock-parents = <&dp_phy 0>, <&dp_phy 1>; 267 phys = <&dp_phy>; 268 phy-names = "dp"; 269 270 operating-points-v2 = <&dp_opp_table>; 271 power-domains = <&rpmhpd SC7180_CX>; 272 273 #sound-dai-cells = <0>; 274 275 ports { 276 #address-cells = <1>; 277 #size-cells = <0>; 278 port@0 { 279 reg = <0>; 280 dp_in: endpoint { 281 remote-endpoint = <&dpu_intf0_out>; 282 }; 283 }; 284 285 port@1 { 286 reg = <1>; 287 dp_out: endpoint { }; 288 }; 289 }; 290 291 dp_opp_table: opp-table { 292 compatible = "operating-points-v2"; 293 294 opp-160000000 { 295 opp-hz = /bits/ 64 <160000000>; 296 required-opps = <&rpmhpd_opp_low_svs>; 297 }; 298 299 opp-270000000 { 300 opp-hz = /bits/ 64 <270000000>; 301 required-opps = <&rpmhpd_opp_svs>; 302 }; 303 304 opp-540000000 { 305 opp-hz = /bits/ 64 <540000000>; 306 required-opps = <&rpmhpd_opp_svs_l1>; 307 }; 308 309 opp-810000000 { 310 opp-hz = /bits/ 64 <810000000>; 311 required-opps = <&rpmhpd_opp_nom>; 312 }; 313 }; 314 }; 315 }; 316... 317