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/dpu-sc7280.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm Display DPU dt properties for SC7280 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 and DPU are mentioned for SC7280. 16 17properties: 18 compatible: 19 const: qcom,sc7280-mdss 20 21 reg: 22 maxItems: 1 23 24 reg-names: 25 const: mdss 26 27 power-domains: 28 maxItems: 1 29 30 clocks: 31 items: 32 - description: Display AHB clock from gcc 33 - description: Display AHB clock from dispcc 34 - description: Display core clock 35 36 clock-names: 37 items: 38 - const: iface 39 - const: ahb 40 - const: core 41 42 interrupts: 43 maxItems: 1 44 45 interrupt-controller: true 46 47 "#address-cells": true 48 49 "#size-cells": true 50 51 "#interrupt-cells": 52 const: 1 53 54 iommus: 55 items: 56 - description: Phandle to apps_smmu node with SID mask for Hard-Fail port0 57 58 ranges: true 59 60 interconnects: 61 items: 62 - description: Interconnect path specifying the port ids for data bus 63 64 interconnect-names: 65 const: mdp0-mem 66 67 resets: 68 items: 69 - description: MDSS_CORE reset 70 71patternProperties: 72 "^display-controller@[0-9a-f]+$": 73 type: object 74 description: Node containing the properties of DPU. 75 additionalProperties: false 76 77 properties: 78 compatible: 79 const: qcom,sc7280-dpu 80 81 reg: 82 items: 83 - description: Address offset and size for mdp register set 84 - description: Address offset and size for vbif register set 85 86 reg-names: 87 items: 88 - const: mdp 89 - const: vbif 90 91 clocks: 92 items: 93 - description: Display hf axi clock 94 - description: Display sf axi clock 95 - description: Display ahb clock 96 - description: Display lut clock 97 - description: Display core clock 98 - description: Display vsync clock 99 100 clock-names: 101 items: 102 - const: bus 103 - const: nrt_bus 104 - const: iface 105 - const: lut 106 - const: core 107 - const: vsync 108 109 interrupts: 110 maxItems: 1 111 112 power-domains: 113 maxItems: 1 114 115 operating-points-v2: true 116 opp-table: 117 type: object 118 119 ports: 120 $ref: /schemas/graph.yaml#/properties/ports 121 description: | 122 Contains the list of output ports from DPU device. These ports 123 connect to interfaces that are external to the DPU hardware, 124 such as DSI, DP etc. Each output port contains an endpoint that 125 describes how it is connected to an external interface. 126 127 properties: 128 port@0: 129 $ref: /schemas/graph.yaml#/properties/port 130 description: DPU_INTF1 (DSI) 131 132 port@1: 133 $ref: /schemas/graph.yaml#/properties/port 134 description: DPU_INTF5 (EDP) 135 136 required: 137 - port@0 138 139 required: 140 - compatible 141 - reg 142 - reg-names 143 - clocks 144 - interrupts 145 - power-domains 146 - operating-points-v2 147 - ports 148 149required: 150 - compatible 151 - reg 152 - reg-names 153 - power-domains 154 - clocks 155 - interrupts 156 - interrupt-controller 157 - iommus 158 - ranges 159 160additionalProperties: false 161 162examples: 163 - | 164 #include <dt-bindings/clock/qcom,dispcc-sc7280.h> 165 #include <dt-bindings/clock/qcom,gcc-sc7280.h> 166 #include <dt-bindings/interrupt-controller/arm-gic.h> 167 #include <dt-bindings/interconnect/qcom,sc7280.h> 168 #include <dt-bindings/power/qcom-rpmpd.h> 169 170 display-subsystem@ae00000 { 171 #address-cells = <1>; 172 #size-cells = <1>; 173 compatible = "qcom,sc7280-mdss"; 174 reg = <0xae00000 0x1000>; 175 reg-names = "mdss"; 176 power-domains = <&dispcc DISP_CC_MDSS_CORE_GDSC>; 177 clocks = <&gcc GCC_DISP_AHB_CLK>, 178 <&dispcc DISP_CC_MDSS_AHB_CLK>, 179 <&dispcc DISP_CC_MDSS_MDP_CLK>; 180 clock-names = "iface", 181 "ahb", 182 "core"; 183 184 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 185 interrupt-controller; 186 #interrupt-cells = <1>; 187 188 interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>; 189 interconnect-names = "mdp0-mem"; 190 191 iommus = <&apps_smmu 0x900 0x402>; 192 ranges; 193 194 display-controller@ae01000 { 195 compatible = "qcom,sc7280-dpu"; 196 reg = <0x0ae01000 0x8f000>, 197 <0x0aeb0000 0x2008>; 198 199 reg-names = "mdp", "vbif"; 200 201 clocks = <&gcc GCC_DISP_HF_AXI_CLK>, 202 <&gcc GCC_DISP_SF_AXI_CLK>, 203 <&dispcc DISP_CC_MDSS_AHB_CLK>, 204 <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>, 205 <&dispcc DISP_CC_MDSS_MDP_CLK>, 206 <&dispcc DISP_CC_MDSS_VSYNC_CLK>; 207 clock-names = "bus", 208 "nrt_bus", 209 "iface", 210 "lut", 211 "core", 212 "vsync"; 213 214 interrupt-parent = <&mdss>; 215 interrupts = <0>; 216 power-domains = <&rpmhpd SC7280_CX>; 217 operating-points-v2 = <&mdp_opp_table>; 218 219 ports { 220 #address-cells = <1>; 221 #size-cells = <0>; 222 223 port@0 { 224 reg = <0>; 225 dpu_intf1_out: endpoint { 226 remote-endpoint = <&dsi0_in>; 227 }; 228 }; 229 230 port@1 { 231 reg = <1>; 232 dpu_intf5_out: endpoint { 233 remote-endpoint = <&edp_in>; 234 }; 235 }; 236 }; 237 }; 238 }; 239... 240