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,sdm845-mdss.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm SDM845 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 SDM845 target. 16 17$ref: /schemas/display/msm/mdss-common.yaml# 18 19properties: 20 compatible: 21 const: qcom,sdm845-mdss 22 23 clocks: 24 items: 25 - description: Display AHB clock from gcc 26 - description: Display core clock 27 28 clock-names: 29 items: 30 - const: iface 31 - const: core 32 33 iommus: 34 maxItems: 2 35 36 interconnects: 37 maxItems: 2 38 39 interconnect-names: 40 maxItems: 2 41 42patternProperties: 43 "^display-controller@[0-9a-f]+$": 44 type: object 45 properties: 46 compatible: 47 const: qcom,sdm845-dpu 48 49 "^displayport-controller@[0-9a-f]+$": 50 type: object 51 properties: 52 compatible: 53 const: qcom,sdm845-dp 54 55 "^dsi@[0-9a-f]+$": 56 type: object 57 properties: 58 compatible: 59 items: 60 - const: qcom,sdm845-dsi-ctrl 61 - const: qcom,mdss-dsi-ctrl 62 63 "^phy@[0-9a-f]+$": 64 type: object 65 properties: 66 compatible: 67 const: qcom,dsi-phy-10nm 68 69required: 70 - compatible 71 72unevaluatedProperties: false 73 74examples: 75 - | 76 #include <dt-bindings/clock/qcom,dispcc-sdm845.h> 77 #include <dt-bindings/clock/qcom,gcc-sdm845.h> 78 #include <dt-bindings/clock/qcom,rpmh.h> 79 #include <dt-bindings/interrupt-controller/arm-gic.h> 80 #include <dt-bindings/power/qcom-rpmpd.h> 81 82 display-subsystem@ae00000 { 83 #address-cells = <1>; 84 #size-cells = <1>; 85 compatible = "qcom,sdm845-mdss"; 86 reg = <0x0ae00000 0x1000>; 87 reg-names = "mdss"; 88 power-domains = <&dispcc MDSS_GDSC>; 89 90 clocks = <&gcc GCC_DISP_AHB_CLK>, 91 <&dispcc DISP_CC_MDSS_MDP_CLK>; 92 clock-names = "iface", "core"; 93 94 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 95 interrupt-controller; 96 #interrupt-cells = <1>; 97 98 iommus = <&apps_smmu 0x880 0x8>, 99 <&apps_smmu 0xc80 0x8>; 100 ranges; 101 102 display-controller@ae01000 { 103 compatible = "qcom,sdm845-dpu"; 104 reg = <0x0ae01000 0x8f000>, 105 <0x0aeb0000 0x2008>; 106 reg-names = "mdp", "vbif"; 107 108 clocks = <&gcc GCC_DISP_AXI_CLK>, 109 <&dispcc DISP_CC_MDSS_AHB_CLK>, 110 <&dispcc DISP_CC_MDSS_AXI_CLK>, 111 <&dispcc DISP_CC_MDSS_MDP_CLK>, 112 <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 113 clock-names = "gcc-bus", "iface", "bus", "core", "vsync"; 114 115 interrupt-parent = <&mdss>; 116 interrupts = <0>; 117 power-domains = <&rpmhpd SDM845_CX>; 118 operating-points-v2 = <&mdp_opp_table>; 119 120 ports { 121 #address-cells = <1>; 122 #size-cells = <0>; 123 124 port@0 { 125 reg = <0>; 126 dpu_intf1_out: endpoint { 127 remote-endpoint = <&dsi0_in>; 128 }; 129 }; 130 131 port@1 { 132 reg = <1>; 133 dpu_intf2_out: endpoint { 134 remote-endpoint = <&dsi1_in>; 135 }; 136 }; 137 }; 138 }; 139 140 dsi@ae94000 { 141 compatible = "qcom,sdm845-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 142 reg = <0x0ae94000 0x400>; 143 reg-names = "dsi_ctrl"; 144 145 interrupt-parent = <&mdss>; 146 interrupts = <4>; 147 148 clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>, 149 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>, 150 <&dispcc DISP_CC_MDSS_PCLK0_CLK>, 151 <&dispcc DISP_CC_MDSS_ESC0_CLK>, 152 <&dispcc DISP_CC_MDSS_AHB_CLK>, 153 <&dispcc DISP_CC_MDSS_AXI_CLK>; 154 clock-names = "byte", 155 "byte_intf", 156 "pixel", 157 "core", 158 "iface", 159 "bus"; 160 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, 161 <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>; 162 assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>; 163 164 operating-points-v2 = <&dsi_opp_table>; 165 power-domains = <&rpmhpd SDM845_CX>; 166 167 phys = <&dsi0_phy>; 168 phy-names = "dsi"; 169 170 #address-cells = <1>; 171 #size-cells = <0>; 172 173 ports { 174 #address-cells = <1>; 175 #size-cells = <0>; 176 177 port@0 { 178 reg = <0>; 179 dsi0_in: endpoint { 180 remote-endpoint = <&dpu_intf1_out>; 181 }; 182 }; 183 184 port@1 { 185 reg = <1>; 186 dsi0_out: endpoint { 187 }; 188 }; 189 }; 190 }; 191 192 dsi0_phy: phy@ae94400 { 193 compatible = "qcom,dsi-phy-10nm"; 194 reg = <0x0ae94400 0x200>, 195 <0x0ae94600 0x280>, 196 <0x0ae94a00 0x1e0>; 197 reg-names = "dsi_phy", 198 "dsi_phy_lane", 199 "dsi_pll"; 200 201 #clock-cells = <1>; 202 #phy-cells = <0>; 203 204 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 205 <&rpmhcc RPMH_CXO_CLK>; 206 clock-names = "iface", "ref"; 207 vdds-supply = <&vreg_dsi_phy>; 208 }; 209 210 dsi@ae96000 { 211 compatible = "qcom,sdm845-dsi-ctrl", "qcom,mdss-dsi-ctrl"; 212 reg = <0x0ae96000 0x400>; 213 reg-names = "dsi_ctrl"; 214 215 interrupt-parent = <&mdss>; 216 interrupts = <5>; 217 218 clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>, 219 <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>, 220 <&dispcc DISP_CC_MDSS_PCLK1_CLK>, 221 <&dispcc DISP_CC_MDSS_ESC1_CLK>, 222 <&dispcc DISP_CC_MDSS_AHB_CLK>, 223 <&dispcc DISP_CC_MDSS_AXI_CLK>; 224 clock-names = "byte", 225 "byte_intf", 226 "pixel", 227 "core", 228 "iface", 229 "bus"; 230 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>, 231 <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>; 232 assigned-clock-parents = <&dsi1_phy 0>, <&dsi1_phy 1>; 233 234 operating-points-v2 = <&dsi_opp_table>; 235 power-domains = <&rpmhpd SDM845_CX>; 236 237 phys = <&dsi1_phy>; 238 phy-names = "dsi"; 239 240 #address-cells = <1>; 241 #size-cells = <0>; 242 243 ports { 244 #address-cells = <1>; 245 #size-cells = <0>; 246 247 port@0 { 248 reg = <0>; 249 dsi1_in: endpoint { 250 remote-endpoint = <&dpu_intf2_out>; 251 }; 252 }; 253 254 port@1 { 255 reg = <1>; 256 dsi1_out: endpoint { 257 }; 258 }; 259 }; 260 }; 261 262 dsi1_phy: phy@ae96400 { 263 compatible = "qcom,dsi-phy-10nm"; 264 reg = <0x0ae96400 0x200>, 265 <0x0ae96600 0x280>, 266 <0x0ae96a00 0x10e>; 267 reg-names = "dsi_phy", 268 "dsi_phy_lane", 269 "dsi_pll"; 270 271 #clock-cells = <1>; 272 #phy-cells = <0>; 273 274 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 275 <&rpmhcc RPMH_CXO_CLK>; 276 clock-names = "iface", "ref"; 277 vdds-supply = <&vreg_dsi_phy>; 278 }; 279 }; 280... 281