1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/media/qcom,sm8250-camss.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm CAMSS ISP 8 9maintainers: 10 - Robert Foss <robert.foss@linaro.org> 11 12description: | 13 The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms. 14 15properties: 16 compatible: 17 const: qcom,sm8250-camss 18 19 clocks: 20 minItems: 37 21 maxItems: 37 22 23 clock-names: 24 items: 25 - const: cam_ahb_clk 26 - const: cam_hf_axi 27 - const: cam_sf_axi 28 - const: camnoc_axi 29 - const: camnoc_axi_src 30 - const: core_ahb 31 - const: cpas_ahb 32 - const: csiphy0 33 - const: csiphy0_timer 34 - const: csiphy1 35 - const: csiphy1_timer 36 - const: csiphy2 37 - const: csiphy2_timer 38 - const: csiphy3 39 - const: csiphy3_timer 40 - const: csiphy4 41 - const: csiphy4_timer 42 - const: csiphy5 43 - const: csiphy5_timer 44 - const: slow_ahb_src 45 - const: vfe0_ahb 46 - const: vfe0_axi 47 - const: vfe0 48 - const: vfe0_cphy_rx 49 - const: vfe0_csid 50 - const: vfe0_areg 51 - const: vfe1_ahb 52 - const: vfe1_axi 53 - const: vfe1 54 - const: vfe1_cphy_rx 55 - const: vfe1_csid 56 - const: vfe1_areg 57 - const: vfe_lite_ahb 58 - const: vfe_lite_axi 59 - const: vfe_lite 60 - const: vfe_lite_cphy_rx 61 - const: vfe_lite_csid 62 63 interrupts: 64 minItems: 14 65 maxItems: 14 66 67 interrupt-names: 68 items: 69 - const: csiphy0 70 - const: csiphy1 71 - const: csiphy2 72 - const: csiphy3 73 - const: csiphy4 74 - const: csiphy5 75 - const: csid0 76 - const: csid1 77 - const: csid2 78 - const: csid3 79 - const: vfe0 80 - const: vfe1 81 - const: vfe_lite0 82 - const: vfe_lite1 83 84 iommus: 85 minItems: 8 86 maxItems: 8 87 88 interconnects: 89 minItems: 4 90 maxItems: 4 91 92 interconnect-names: 93 items: 94 - const: cam_ahb 95 - const: cam_hf_0_mnoc 96 - const: cam_sf_0_mnoc 97 - const: cam_sf_icp_mnoc 98 99 power-domains: 100 items: 101 - description: IFE0 GDSC - Image Front End, Global Distributed Switch Controller. 102 - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller. 103 - description: Titan GDSC - Titan ISP Block, Global Distributed Switch Controller. 104 105 ports: 106 $ref: /schemas/graph.yaml#/properties/ports 107 108 description: 109 CSI input ports. 110 111 properties: 112 port@0: 113 $ref: /schemas/graph.yaml#/$defs/port-base 114 unevaluatedProperties: false 115 description: 116 Input port for receiving CSI data. 117 118 properties: 119 endpoint: 120 $ref: video-interfaces.yaml# 121 unevaluatedProperties: false 122 123 properties: 124 clock-lanes: 125 maxItems: 1 126 127 data-lanes: 128 minItems: 1 129 maxItems: 4 130 131 bus-type: 132 enum: 133 - 1 # MEDIA_BUS_TYPE_CSI2_CPHY 134 - 4 # MEDIA_BUS_TYPE_CSI2_DPHY 135 136 required: 137 - clock-lanes 138 - data-lanes 139 140 port@1: 141 $ref: /schemas/graph.yaml#/$defs/port-base 142 unevaluatedProperties: false 143 description: 144 Input port for receiving CSI data. 145 146 properties: 147 endpoint: 148 $ref: video-interfaces.yaml# 149 unevaluatedProperties: false 150 151 properties: 152 clock-lanes: 153 maxItems: 1 154 155 data-lanes: 156 minItems: 1 157 maxItems: 4 158 159 bus-type: 160 enum: 161 - 1 # MEDIA_BUS_TYPE_CSI2_CPHY 162 - 4 # MEDIA_BUS_TYPE_CSI2_DPHY 163 164 required: 165 - clock-lanes 166 - data-lanes 167 168 port@2: 169 $ref: /schemas/graph.yaml#/$defs/port-base 170 unevaluatedProperties: false 171 description: 172 Input port for receiving CSI data. 173 174 properties: 175 endpoint: 176 $ref: video-interfaces.yaml# 177 unevaluatedProperties: false 178 179 properties: 180 clock-lanes: 181 maxItems: 1 182 183 data-lanes: 184 minItems: 1 185 maxItems: 4 186 187 bus-type: 188 enum: 189 - 1 # MEDIA_BUS_TYPE_CSI2_CPHY 190 - 4 # MEDIA_BUS_TYPE_CSI2_DPHY 191 192 required: 193 - clock-lanes 194 - data-lanes 195 196 port@3: 197 $ref: /schemas/graph.yaml#/$defs/port-base 198 unevaluatedProperties: false 199 description: 200 Input port for receiving CSI data. 201 202 properties: 203 endpoint: 204 $ref: video-interfaces.yaml# 205 unevaluatedProperties: false 206 207 properties: 208 clock-lanes: 209 maxItems: 1 210 211 data-lanes: 212 minItems: 1 213 maxItems: 4 214 215 bus-type: 216 enum: 217 - 1 # MEDIA_BUS_TYPE_CSI2_CPHY 218 - 4 # MEDIA_BUS_TYPE_CSI2_DPHY 219 220 required: 221 - clock-lanes 222 - data-lanes 223 224 port@4: 225 $ref: /schemas/graph.yaml#/$defs/port-base 226 unevaluatedProperties: false 227 description: 228 Input port for receiving CSI data. 229 230 properties: 231 endpoint: 232 $ref: video-interfaces.yaml# 233 unevaluatedProperties: false 234 235 properties: 236 clock-lanes: 237 maxItems: 1 238 239 data-lanes: 240 minItems: 1 241 maxItems: 4 242 243 bus-type: 244 enum: 245 - 1 # MEDIA_BUS_TYPE_CSI2_CPHY 246 - 4 # MEDIA_BUS_TYPE_CSI2_DPHY 247 248 required: 249 - clock-lanes 250 - data-lanes 251 252 port@5: 253 $ref: /schemas/graph.yaml#/$defs/port-base 254 unevaluatedProperties: false 255 description: 256 Input port for receiving CSI data. 257 258 properties: 259 endpoint: 260 $ref: video-interfaces.yaml# 261 unevaluatedProperties: false 262 263 properties: 264 clock-lanes: 265 maxItems: 1 266 267 data-lanes: 268 minItems: 1 269 maxItems: 4 270 271 bus-type: 272 enum: 273 - 1 # MEDIA_BUS_TYPE_CSI2_CPHY 274 - 4 # MEDIA_BUS_TYPE_CSI2_DPHY 275 276 required: 277 - clock-lanes 278 - data-lanes 279 280 reg: 281 minItems: 10 282 maxItems: 10 283 284 reg-names: 285 items: 286 - const: csiphy0 287 - const: csiphy1 288 - const: csiphy2 289 - const: csiphy3 290 - const: csiphy4 291 - const: csiphy5 292 - const: vfe0 293 - const: vfe1 294 - const: vfe_lite0 295 - const: vfe_lite1 296 297 vdda-phy-supply: 298 description: 299 Phandle to a regulator supply to PHY core block. 300 301 vdda-pll-supply: 302 description: 303 Phandle to 1.8V regulator supply to PHY refclk pll block. 304 305required: 306 - clock-names 307 - clocks 308 - compatible 309 - interconnects 310 - interconnect-names 311 - interrupts 312 - interrupt-names 313 - iommus 314 - power-domains 315 - reg 316 - reg-names 317 - vdda-phy-supply 318 - vdda-pll-supply 319 320additionalProperties: false 321 322examples: 323 - | 324 #include <dt-bindings/interrupt-controller/arm-gic.h> 325 #include <dt-bindings/clock/qcom,camcc-sm8250.h> 326 #include <dt-bindings/interconnect/qcom,sm8250.h> 327 #include <dt-bindings/clock/qcom,gcc-sm8250.h> 328 #include <dt-bindings/power/qcom-rpmpd.h> 329 330 soc { 331 #address-cells = <2>; 332 #size-cells = <2>; 333 334 camss: camss@ac6a000 { 335 compatible = "qcom,sm8250-camss"; 336 337 reg = <0 0xac6a000 0 0x2000>, 338 <0 0xac6c000 0 0x2000>, 339 <0 0xac6e000 0 0x1000>, 340 <0 0xac70000 0 0x1000>, 341 <0 0xac72000 0 0x1000>, 342 <0 0xac74000 0 0x1000>, 343 <0 0xacb4000 0 0xd000>, 344 <0 0xacc3000 0 0xd000>, 345 <0 0xacd9000 0 0x2200>, 346 <0 0xacdb200 0 0x2200>; 347 reg-names = "csiphy0", 348 "csiphy1", 349 "csiphy2", 350 "csiphy3", 351 "csiphy4", 352 "csiphy5", 353 "vfe0", 354 "vfe1", 355 "vfe_lite0", 356 "vfe_lite1"; 357 358 vdda-phy-supply = <&vreg_l5a_0p88>; 359 vdda-pll-supply = <&vreg_l9a_1p2>; 360 361 interrupts = <GIC_SPI 477 IRQ_TYPE_EDGE_RISING>, 362 <GIC_SPI 478 IRQ_TYPE_EDGE_RISING>, 363 <GIC_SPI 479 IRQ_TYPE_EDGE_RISING>, 364 <GIC_SPI 448 IRQ_TYPE_EDGE_RISING>, 365 <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>, 366 <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>, 367 <GIC_SPI 464 IRQ_TYPE_EDGE_RISING>, 368 <GIC_SPI 466 IRQ_TYPE_EDGE_RISING>, 369 <GIC_SPI 468 IRQ_TYPE_EDGE_RISING>, 370 <GIC_SPI 359 IRQ_TYPE_EDGE_RISING>, 371 <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>, 372 <GIC_SPI 467 IRQ_TYPE_EDGE_RISING>, 373 <GIC_SPI 469 IRQ_TYPE_EDGE_RISING>, 374 <GIC_SPI 360 IRQ_TYPE_EDGE_RISING>; 375 interrupt-names = "csiphy0", 376 "csiphy1", 377 "csiphy2", 378 "csiphy3", 379 "csiphy4", 380 "csiphy5", 381 "csid0", 382 "csid1", 383 "csid2", 384 "csid3", 385 "vfe0", 386 "vfe1", 387 "vfe_lite0", 388 "vfe_lite1"; 389 390 power-domains = <&camcc IFE_0_GDSC>, 391 <&camcc IFE_1_GDSC>, 392 <&camcc TITAN_TOP_GDSC>; 393 394 clocks = <&gcc GCC_CAMERA_AHB_CLK>, 395 <&gcc GCC_CAMERA_HF_AXI_CLK>, 396 <&gcc GCC_CAMERA_SF_AXI_CLK>, 397 <&camcc CAM_CC_CAMNOC_AXI_CLK>, 398 <&camcc CAM_CC_CAMNOC_AXI_CLK_SRC>, 399 <&camcc CAM_CC_CORE_AHB_CLK>, 400 <&camcc CAM_CC_CPAS_AHB_CLK>, 401 <&camcc CAM_CC_CSIPHY0_CLK>, 402 <&camcc CAM_CC_CSI0PHYTIMER_CLK>, 403 <&camcc CAM_CC_CSIPHY1_CLK>, 404 <&camcc CAM_CC_CSI1PHYTIMER_CLK>, 405 <&camcc CAM_CC_CSIPHY2_CLK>, 406 <&camcc CAM_CC_CSI2PHYTIMER_CLK>, 407 <&camcc CAM_CC_CSIPHY3_CLK>, 408 <&camcc CAM_CC_CSI3PHYTIMER_CLK>, 409 <&camcc CAM_CC_CSIPHY4_CLK>, 410 <&camcc CAM_CC_CSI4PHYTIMER_CLK>, 411 <&camcc CAM_CC_CSIPHY5_CLK>, 412 <&camcc CAM_CC_CSI5PHYTIMER_CLK>, 413 <&camcc CAM_CC_SLOW_AHB_CLK_SRC>, 414 <&camcc CAM_CC_IFE_0_AHB_CLK>, 415 <&camcc CAM_CC_IFE_0_AXI_CLK>, 416 <&camcc CAM_CC_IFE_0_CLK>, 417 <&camcc CAM_CC_IFE_0_CPHY_RX_CLK>, 418 <&camcc CAM_CC_IFE_0_CSID_CLK>, 419 <&camcc CAM_CC_IFE_0_AREG_CLK>, 420 <&camcc CAM_CC_IFE_1_AHB_CLK>, 421 <&camcc CAM_CC_IFE_1_AXI_CLK>, 422 <&camcc CAM_CC_IFE_1_CLK>, 423 <&camcc CAM_CC_IFE_1_CPHY_RX_CLK>, 424 <&camcc CAM_CC_IFE_1_CSID_CLK>, 425 <&camcc CAM_CC_IFE_1_AREG_CLK>, 426 <&camcc CAM_CC_IFE_LITE_AHB_CLK>, 427 <&camcc CAM_CC_IFE_LITE_AXI_CLK>, 428 <&camcc CAM_CC_IFE_LITE_CLK>, 429 <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>, 430 <&camcc CAM_CC_IFE_LITE_CSID_CLK>; 431 clock-names = "cam_ahb_clk", 432 "cam_hf_axi", 433 "cam_sf_axi", 434 "camnoc_axi", 435 "camnoc_axi_src", 436 "core_ahb", 437 "cpas_ahb", 438 "csiphy0", 439 "csiphy0_timer", 440 "csiphy1", 441 "csiphy1_timer", 442 "csiphy2", 443 "csiphy2_timer", 444 "csiphy3", 445 "csiphy3_timer", 446 "csiphy4", 447 "csiphy4_timer", 448 "csiphy5", 449 "csiphy5_timer", 450 "slow_ahb_src", 451 "vfe0_ahb", 452 "vfe0_axi", 453 "vfe0", 454 "vfe0_cphy_rx", 455 "vfe0_csid", 456 "vfe0_areg", 457 "vfe1_ahb", 458 "vfe1_axi", 459 "vfe1", 460 "vfe1_cphy_rx", 461 "vfe1_csid", 462 "vfe1_areg", 463 "vfe_lite_ahb", 464 "vfe_lite_axi", 465 "vfe_lite", 466 "vfe_lite_cphy_rx", 467 "vfe_lite_csid"; 468 469 iommus = <&apps_smmu 0x800 0x400>, 470 <&apps_smmu 0x801 0x400>, 471 <&apps_smmu 0x840 0x400>, 472 <&apps_smmu 0x841 0x400>, 473 <&apps_smmu 0xC00 0x400>, 474 <&apps_smmu 0xC01 0x400>, 475 <&apps_smmu 0xC40 0x400>, 476 <&apps_smmu 0xC41 0x400>; 477 478 interconnects = <&gem_noc MASTER_AMPSS_M0 &config_noc SLAVE_CAMERA_CFG>, 479 <&mmss_noc MASTER_CAMNOC_HF &mc_virt SLAVE_EBI_CH0>, 480 <&mmss_noc MASTER_CAMNOC_SF &mc_virt SLAVE_EBI_CH0>, 481 <&mmss_noc MASTER_CAMNOC_ICP &mc_virt SLAVE_EBI_CH0>; 482 interconnect-names = "cam_ahb", 483 "cam_hf_0_mnoc", 484 "cam_sf_0_mnoc", 485 "cam_sf_icp_mnoc"; 486 487 ports { 488 #address-cells = <1>; 489 #size-cells = <0>; 490 }; 491 }; 492 }; 493