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-msm8998.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm Display DPU dt properties for MSM8998 target 8 9maintainers: 10 - AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org> 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 MSM8998 target. 16 17properties: 18 compatible: 19 items: 20 - const: qcom,msm8998-mdss 21 22 reg: 23 maxItems: 1 24 25 reg-names: 26 const: mdss 27 28 power-domains: 29 maxItems: 1 30 31 clocks: 32 items: 33 - description: Display AHB clock 34 - description: Display AXI clock 35 - description: Display core clock 36 37 clock-names: 38 items: 39 - const: iface 40 - const: bus 41 - const: core 42 43 interrupts: 44 maxItems: 1 45 46 interrupt-controller: true 47 48 "#address-cells": true 49 50 "#size-cells": true 51 52 "#interrupt-cells": 53 const: 1 54 55 iommus: 56 items: 57 - description: Phandle to apps_smmu node with SID mask for Hard-Fail port0 58 59 ranges: true 60 61patternProperties: 62 "^display-controller@[0-9a-f]+$": 63 type: object 64 description: Node containing the properties of DPU. 65 66 properties: 67 compatible: 68 items: 69 - const: qcom,msm8998-dpu 70 71 reg: 72 items: 73 - description: Address offset and size for mdp register set 74 - description: Address offset and size for regdma register set 75 - description: Address offset and size for vbif register set 76 - description: Address offset and size for non-realtime vbif register set 77 78 reg-names: 79 items: 80 - const: mdp 81 - const: regdma 82 - const: vbif 83 - const: vbif_nrt 84 85 clocks: 86 items: 87 - description: Display ahb clock 88 - description: Display axi clock 89 - description: Display mem-noc clock 90 - description: Display core clock 91 - description: Display vsync clock 92 93 clock-names: 94 items: 95 - const: iface 96 - const: bus 97 - const: mnoc 98 - const: core 99 - const: vsync 100 101 interrupts: 102 maxItems: 1 103 104 power-domains: 105 maxItems: 1 106 107 operating-points-v2: true 108 ports: 109 $ref: /schemas/graph.yaml#/properties/ports 110 description: | 111 Contains the list of output ports from DPU device. These ports 112 connect to interfaces that are external to the DPU hardware, 113 such as DSI, DP etc. Each output port contains an endpoint that 114 describes how it is connected to an external interface. 115 116 properties: 117 port@0: 118 $ref: /schemas/graph.yaml#/properties/port 119 description: DPU_INTF1 (DSI1) 120 121 port@1: 122 $ref: /schemas/graph.yaml#/properties/port 123 description: DPU_INTF2 (DSI2) 124 125 required: 126 - port@0 127 - port@1 128 129 required: 130 - compatible 131 - reg 132 - reg-names 133 - clocks 134 - interrupts 135 - power-domains 136 - operating-points-v2 137 - ports 138 139required: 140 - compatible 141 - reg 142 - reg-names 143 - power-domains 144 - clocks 145 - interrupts 146 - interrupt-controller 147 - iommus 148 - ranges 149 150additionalProperties: false 151 152examples: 153 - | 154 #include <dt-bindings/clock/qcom,mmcc-msm8998.h> 155 #include <dt-bindings/interrupt-controller/arm-gic.h> 156 #include <dt-bindings/power/qcom-rpmpd.h> 157 158 mdss: display-subsystem@c900000 { 159 compatible = "qcom,msm8998-mdss"; 160 reg = <0x0c900000 0x1000>; 161 reg-names = "mdss"; 162 163 clocks = <&mmcc MDSS_AHB_CLK>, 164 <&mmcc MDSS_AXI_CLK>, 165 <&mmcc MDSS_MDP_CLK>; 166 clock-names = "iface", "bus", "core"; 167 168 #address-cells = <1>; 169 #interrupt-cells = <1>; 170 #size-cells = <1>; 171 172 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 173 interrupt-controller; 174 iommus = <&mmss_smmu 0>; 175 176 power-domains = <&mmcc MDSS_GDSC>; 177 ranges; 178 179 display-controller@c901000 { 180 compatible = "qcom,msm8998-dpu"; 181 reg = <0x0c901000 0x8f000>, 182 <0x0c9a8e00 0xf0>, 183 <0x0c9b0000 0x2008>, 184 <0x0c9b8000 0x1040>; 185 reg-names = "mdp", "regdma", "vbif", "vbif_nrt"; 186 187 clocks = <&mmcc MDSS_AHB_CLK>, 188 <&mmcc MDSS_AXI_CLK>, 189 <&mmcc MNOC_AHB_CLK>, 190 <&mmcc MDSS_MDP_CLK>, 191 <&mmcc MDSS_VSYNC_CLK>; 192 clock-names = "iface", "bus", "mnoc", "core", "vsync"; 193 194 interrupt-parent = <&mdss>; 195 interrupts = <0>; 196 operating-points-v2 = <&mdp_opp_table>; 197 power-domains = <&rpmpd MSM8998_VDDMX>; 198 199 ports { 200 #address-cells = <1>; 201 #size-cells = <0>; 202 203 port@0 { 204 reg = <0>; 205 dpu_intf1_out: endpoint { 206 remote-endpoint = <&dsi0_in>; 207 }; 208 }; 209 210 port@1 { 211 reg = <1>; 212 dpu_intf2_out: endpoint { 213 remote-endpoint = <&dsi1_in>; 214 }; 215 }; 216 }; 217 }; 218 }; 219... 220