1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/media/qcom,msm8953-camss.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm MSM8953 Camera Subsystem (CAMSS) 8 9maintainers: 10 - Barnabas Czeman <barnabas.czeman@mainlining.org> 11 12description: 13 The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms 14 15properties: 16 compatible: 17 const: qcom,msm8953-camss 18 19 clocks: 20 minItems: 30 21 maxItems: 30 22 23 clock-names: 24 items: 25 - const: ahb 26 - const: csi0 27 - const: csi0_ahb 28 - const: csi0_phy 29 - const: csi0_pix 30 - const: csi0_rdi 31 - const: csi1 32 - const: csi1_ahb 33 - const: csi1_phy 34 - const: csi1_pix 35 - const: csi1_rdi 36 - const: csi2 37 - const: csi2_ahb 38 - const: csi2_phy 39 - const: csi2_pix 40 - const: csi2_rdi 41 - const: csi_vfe0 42 - const: csi_vfe1 43 - const: csiphy0_timer 44 - const: csiphy1_timer 45 - const: csiphy2_timer 46 - const: ispif_ahb 47 - const: micro_ahb 48 - const: top_ahb 49 - const: vfe0 50 - const: vfe0_ahb 51 - const: vfe0_axi 52 - const: vfe1 53 - const: vfe1_ahb 54 - const: vfe1_axi 55 56 interrupts: 57 minItems: 9 58 maxItems: 9 59 60 interrupt-names: 61 items: 62 - const: csid0 63 - const: csid1 64 - const: csid2 65 - const: csiphy0 66 - const: csiphy1 67 - const: csiphy2 68 - const: ispif 69 - const: vfe0 70 - const: vfe1 71 72 iommus: 73 maxItems: 1 74 75 power-domains: 76 items: 77 - description: VFE0 GDSC - Video Front End, Global Distributed Switch Controller. 78 - description: VFE1 GDSC - Video Front End, Global Distributed Switch Controller. 79 80 power-domain-names: 81 items: 82 - const: vfe0 83 - const: vfe1 84 85 ports: 86 $ref: /schemas/graph.yaml#/properties/ports 87 88 description: 89 CSI input ports. 90 91 properties: 92 port@0: 93 $ref: /schemas/graph.yaml#/$defs/port-base 94 unevaluatedProperties: false 95 description: 96 Input port for receiving CSI data. 97 98 properties: 99 endpoint: 100 $ref: video-interfaces.yaml# 101 unevaluatedProperties: false 102 103 properties: 104 data-lanes: 105 description: 106 An array of physical data lanes indexes. 107 Position of an entry determines the logical 108 lane number, while the value of an entry 109 indicates physical lane index. Lane swapping 110 is supported. Physical lane indexes; 111 0, 2, 3, 4. 112 minItems: 1 113 maxItems: 4 114 115 required: 116 - data-lanes 117 118 port@1: 119 $ref: /schemas/graph.yaml#/$defs/port-base 120 unevaluatedProperties: false 121 description: 122 Input port for receiving CSI data. 123 124 properties: 125 endpoint: 126 $ref: video-interfaces.yaml# 127 unevaluatedProperties: false 128 129 properties: 130 data-lanes: 131 minItems: 1 132 maxItems: 4 133 134 required: 135 - data-lanes 136 137 port@2: 138 $ref: /schemas/graph.yaml#/$defs/port-base 139 unevaluatedProperties: false 140 description: 141 Input port for receiving CSI data. 142 143 properties: 144 endpoint: 145 $ref: video-interfaces.yaml# 146 unevaluatedProperties: false 147 148 properties: 149 data-lanes: 150 minItems: 1 151 maxItems: 4 152 153 required: 154 - data-lanes 155 156 reg: 157 minItems: 13 158 maxItems: 13 159 160 reg-names: 161 items: 162 - const: csi_clk_mux 163 - const: csid0 164 - const: csid1 165 - const: csid2 166 - const: csiphy0 167 - const: csiphy0_clk_mux 168 - const: csiphy1 169 - const: csiphy1_clk_mux 170 - const: csiphy2 171 - const: csiphy2_clk_mux 172 - const: ispif 173 - const: vfe0 174 - const: vfe1 175 176 vdda-supply: 177 description: 178 Definition of the regulator used as analog power supply. 179 180required: 181 - compatible 182 - reg 183 - reg-names 184 - clocks 185 - clock-names 186 - interrupts 187 - interrupt-names 188 - iommus 189 - power-domains 190 - power-domain-names 191 - vdda-supply 192 193additionalProperties: false 194 195examples: 196 - | 197 #include <dt-bindings/interrupt-controller/arm-gic.h> 198 #include <dt-bindings/clock/qcom,gcc-msm8953.h> 199 200 camss: camss@1b00020 { 201 compatible = "qcom,msm8953-camss"; 202 203 reg = <0x1b00020 0x10>, 204 <0x1b30000 0x100>, 205 <0x1b30400 0x100>, 206 <0x1b30800 0x100>, 207 <0x1b34000 0x1000>, 208 <0x1b00030 0x4>, 209 <0x1b35000 0x1000>, 210 <0x1b00038 0x4>, 211 <0x1b36000 0x1000>, 212 <0x1b00040 0x4>, 213 <0x1b31000 0x500>, 214 <0x1b10000 0x1000>, 215 <0x1b14000 0x1000>; 216 reg-names = "csi_clk_mux", 217 "csid0", 218 "csid1", 219 "csid2", 220 "csiphy0", 221 "csiphy0_clk_mux", 222 "csiphy1", 223 "csiphy1_clk_mux", 224 "csiphy2", 225 "csiphy2_clk_mux", 226 "ispif", 227 "vfe0", 228 "vfe1"; 229 230 clocks = <&gcc GCC_CAMSS_AHB_CLK>, 231 <&gcc GCC_CAMSS_CSI0_CLK>, 232 <&gcc GCC_CAMSS_CSI0_AHB_CLK>, 233 <&gcc GCC_CAMSS_CSI0PHY_CLK>, 234 <&gcc GCC_CAMSS_CSI0PIX_CLK>, 235 <&gcc GCC_CAMSS_CSI0RDI_CLK>, 236 <&gcc GCC_CAMSS_CSI1_CLK>, 237 <&gcc GCC_CAMSS_CSI1_AHB_CLK>, 238 <&gcc GCC_CAMSS_CSI1PHY_CLK>, 239 <&gcc GCC_CAMSS_CSI1PIX_CLK>, 240 <&gcc GCC_CAMSS_CSI1RDI_CLK>, 241 <&gcc GCC_CAMSS_CSI2_CLK>, 242 <&gcc GCC_CAMSS_CSI2_AHB_CLK>, 243 <&gcc GCC_CAMSS_CSI2PHY_CLK>, 244 <&gcc GCC_CAMSS_CSI2PIX_CLK>, 245 <&gcc GCC_CAMSS_CSI2RDI_CLK>, 246 <&gcc GCC_CAMSS_CSI_VFE0_CLK>, 247 <&gcc GCC_CAMSS_CSI_VFE1_CLK>, 248 <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>, 249 <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>, 250 <&gcc GCC_CAMSS_CSI2PHYTIMER_CLK>, 251 <&gcc GCC_CAMSS_ISPIF_AHB_CLK>, 252 <&gcc GCC_CAMSS_MICRO_AHB_CLK>, 253 <&gcc GCC_CAMSS_TOP_AHB_CLK>, 254 <&gcc GCC_CAMSS_VFE0_CLK>, 255 <&gcc GCC_CAMSS_VFE0_AHB_CLK>, 256 <&gcc GCC_CAMSS_VFE0_AXI_CLK>, 257 <&gcc GCC_CAMSS_VFE1_CLK>, 258 <&gcc GCC_CAMSS_VFE1_AHB_CLK>, 259 <&gcc GCC_CAMSS_VFE1_AXI_CLK>; 260 clock-names = "ahb", 261 "csi0", 262 "csi0_ahb", 263 "csi0_phy", 264 "csi0_pix", 265 "csi0_rdi", 266 "csi1", 267 "csi1_ahb", 268 "csi1_phy", 269 "csi1_pix", 270 "csi1_rdi", 271 "csi2", 272 "csi2_ahb", 273 "csi2_phy", 274 "csi2_pix", 275 "csi2_rdi", 276 "csi_vfe0", 277 "csi_vfe1", 278 "csiphy0_timer", 279 "csiphy1_timer", 280 "csiphy2_timer", 281 "ispif_ahb", 282 "micro_ahb", 283 "top_ahb", 284 "vfe0", 285 "vfe0_ahb", 286 "vfe0_axi", 287 "vfe1", 288 "vfe1_ahb", 289 "vfe1_axi"; 290 291 interrupts = <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>, 292 <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>, 293 <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>, 294 <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>, 295 <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>, 296 <GIC_SPI 315 IRQ_TYPE_EDGE_RISING>, 297 <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>, 298 <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>, 299 <GIC_SPI 29 IRQ_TYPE_EDGE_RISING>; 300 interrupt-names = "csid0", 301 "csid1", 302 "csid2", 303 "csiphy0", 304 "csiphy1", 305 "csiphy2", 306 "ispif", 307 "vfe0", 308 "vfe1"; 309 310 iommus = <&apps_iommu 0x14>; 311 312 power-domains = <&gcc VFE0_GDSC>, 313 <&gcc VFE1_GDSC>; 314 power-domain-names = "vfe0", "vfe1"; 315 316 vdda-supply = <®_2v8>; 317 318 ports { 319 #address-cells = <1>; 320 #size-cells = <0>; 321 }; 322 }; 323