1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/media/qcom,sdm670-camss.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm SDM670 Camera Subsystem (CAMSS) 8 9maintainers: 10 - Richard Acayan <mailingradian@gmail.com> 11 12description: 13 The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms. 14 15properties: 16 compatible: 17 const: qcom,sdm670-camss 18 19 reg: 20 maxItems: 9 21 22 reg-names: 23 items: 24 - const: csid0 25 - const: csid1 26 - const: csid2 27 - const: csiphy0 28 - const: csiphy1 29 - const: csiphy2 30 - const: vfe0 31 - const: vfe1 32 - const: vfe_lite 33 34 interrupts: 35 maxItems: 9 36 37 interrupt-names: 38 items: 39 - const: csid0 40 - const: csid1 41 - const: csid2 42 - const: csiphy0 43 - const: csiphy1 44 - const: csiphy2 45 - const: vfe0 46 - const: vfe1 47 - const: vfe_lite 48 49 clocks: 50 maxItems: 22 51 52 clock-names: 53 items: 54 - const: camnoc_axi 55 - const: cpas_ahb 56 - const: csi0 57 - const: csi1 58 - const: csi2 59 - const: csiphy0 60 - const: csiphy0_timer 61 - const: csiphy1 62 - const: csiphy1_timer 63 - const: csiphy2 64 - const: csiphy2_timer 65 - const: gcc_camera_ahb 66 - const: gcc_camera_axi 67 - const: soc_ahb 68 - const: vfe0 69 - const: vfe0_axi 70 - const: vfe0_cphy_rx 71 - const: vfe1 72 - const: vfe1_axi 73 - const: vfe1_cphy_rx 74 - const: vfe_lite 75 - const: vfe_lite_cphy_rx 76 77 iommus: 78 maxItems: 4 79 80 power-domains: 81 items: 82 - description: IFE0 GDSC - Image Front End, Global Distributed Switch Controller. 83 - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller. 84 - description: Titan Top GDSC - Titan ISP Block, Global Distributed Switch Controller. 85 86 power-domain-names: 87 items: 88 - const: ife0 89 - const: ife1 90 - const: top 91 92 vdda-phy-supply: 93 description: 94 Phandle to a regulator supply to PHY core block. 95 96 vdda-pll-supply: 97 description: 98 Phandle to 1.8V regulator supply to PHY refclk pll block. 99 100 ports: 101 $ref: /schemas/graph.yaml#/properties/ports 102 103 description: 104 CSI input ports. 105 106 properties: 107 port@0: 108 $ref: /schemas/graph.yaml#/$defs/port-base 109 unevaluatedProperties: false 110 description: 111 Input port for receiving CSI data from CSIPHY0. 112 113 properties: 114 endpoint: 115 $ref: video-interfaces.yaml# 116 unevaluatedProperties: false 117 118 properties: 119 clock-lanes: 120 maxItems: 1 121 122 data-lanes: 123 minItems: 1 124 maxItems: 4 125 126 required: 127 - clock-lanes 128 - data-lanes 129 130 port@1: 131 $ref: /schemas/graph.yaml#/$defs/port-base 132 unevaluatedProperties: false 133 description: 134 Input port for receiving CSI data from CSIPHY1. 135 136 properties: 137 endpoint: 138 $ref: video-interfaces.yaml# 139 unevaluatedProperties: false 140 141 properties: 142 clock-lanes: 143 maxItems: 1 144 145 data-lanes: 146 minItems: 1 147 maxItems: 4 148 149 required: 150 - clock-lanes 151 - data-lanes 152 153 port@2: 154 $ref: /schemas/graph.yaml#/$defs/port-base 155 unevaluatedProperties: false 156 description: 157 Input port for receiving CSI data from CSIPHY2. 158 159 properties: 160 endpoint: 161 $ref: video-interfaces.yaml# 162 unevaluatedProperties: false 163 164 properties: 165 clock-lanes: 166 maxItems: 1 167 168 data-lanes: 169 minItems: 1 170 maxItems: 4 171 172 required: 173 - clock-lanes 174 - data-lanes 175 176required: 177 - compatible 178 - reg 179 - reg-names 180 - interrupts 181 - interrupt-names 182 - clocks 183 - clock-names 184 - iommus 185 - power-domains 186 - power-domain-names 187 - vdda-phy-supply 188 - vdda-pll-supply 189 190additionalProperties: false 191 192examples: 193 - | 194 #include <dt-bindings/clock/qcom,camcc-sdm845.h> 195 #include <dt-bindings/clock/qcom,gcc-sdm845.h> 196 #include <dt-bindings/interrupt-controller/arm-gic.h> 197 198 soc { 199 #address-cells = <2>; 200 #size-cells = <2>; 201 202 isp@acb3000 { 203 compatible = "qcom,sdm670-camss"; 204 205 reg = <0 0x0acb3000 0 0x1000>, 206 <0 0x0acba000 0 0x1000>, 207 <0 0x0acc8000 0 0x1000>, 208 <0 0x0ac65000 0 0x1000>, 209 <0 0x0ac66000 0 0x1000>, 210 <0 0x0ac67000 0 0x1000>, 211 <0 0x0acaf000 0 0x4000>, 212 <0 0x0acb6000 0 0x4000>, 213 <0 0x0acc4000 0 0x4000>; 214 reg-names = "csid0", 215 "csid1", 216 "csid2", 217 "csiphy0", 218 "csiphy1", 219 "csiphy2", 220 "vfe0", 221 "vfe1", 222 "vfe_lite"; 223 224 interrupts = <GIC_SPI 464 IRQ_TYPE_EDGE_RISING>, 225 <GIC_SPI 466 IRQ_TYPE_EDGE_RISING>, 226 <GIC_SPI 468 IRQ_TYPE_EDGE_RISING>, 227 <GIC_SPI 477 IRQ_TYPE_EDGE_RISING>, 228 <GIC_SPI 478 IRQ_TYPE_EDGE_RISING>, 229 <GIC_SPI 479 IRQ_TYPE_EDGE_RISING>, 230 <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>, 231 <GIC_SPI 467 IRQ_TYPE_EDGE_RISING>, 232 <GIC_SPI 469 IRQ_TYPE_EDGE_RISING>; 233 interrupt-names = "csid0", 234 "csid1", 235 "csid2", 236 "csiphy0", 237 "csiphy1", 238 "csiphy2", 239 "vfe0", 240 "vfe1", 241 "vfe_lite"; 242 243 clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>, 244 <&camcc CAM_CC_CPAS_AHB_CLK>, 245 <&camcc CAM_CC_IFE_0_CSID_CLK>, 246 <&camcc CAM_CC_IFE_1_CSID_CLK>, 247 <&camcc CAM_CC_IFE_LITE_CSID_CLK>, 248 <&camcc CAM_CC_CSIPHY0_CLK>, 249 <&camcc CAM_CC_CSI0PHYTIMER_CLK>, 250 <&camcc CAM_CC_CSIPHY1_CLK>, 251 <&camcc CAM_CC_CSI1PHYTIMER_CLK>, 252 <&camcc CAM_CC_CSIPHY2_CLK>, 253 <&camcc CAM_CC_CSI2PHYTIMER_CLK>, 254 <&gcc GCC_CAMERA_AHB_CLK>, 255 <&gcc GCC_CAMERA_AXI_CLK>, 256 <&camcc CAM_CC_SOC_AHB_CLK>, 257 <&camcc CAM_CC_IFE_0_CLK>, 258 <&camcc CAM_CC_IFE_0_AXI_CLK>, 259 <&camcc CAM_CC_IFE_0_CPHY_RX_CLK>, 260 <&camcc CAM_CC_IFE_1_CLK>, 261 <&camcc CAM_CC_IFE_1_AXI_CLK>, 262 <&camcc CAM_CC_IFE_1_CPHY_RX_CLK>, 263 <&camcc CAM_CC_IFE_LITE_CLK>, 264 <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>; 265 clock-names = "camnoc_axi", 266 "cpas_ahb", 267 "csi0", 268 "csi1", 269 "csi2", 270 "csiphy0", 271 "csiphy0_timer", 272 "csiphy1", 273 "csiphy1_timer", 274 "csiphy2", 275 "csiphy2_timer", 276 "gcc_camera_ahb", 277 "gcc_camera_axi", 278 "soc_ahb", 279 "vfe0", 280 "vfe0_axi", 281 "vfe0_cphy_rx", 282 "vfe1", 283 "vfe1_axi", 284 "vfe1_cphy_rx", 285 "vfe_lite", 286 "vfe_lite_cphy_rx"; 287 288 iommus = <&apps_smmu 0x808 0x0>, 289 <&apps_smmu 0x810 0x8>, 290 <&apps_smmu 0xc08 0x0>, 291 <&apps_smmu 0xc10 0x8>; 292 293 power-domains = <&camcc IFE_0_GDSC>, 294 <&camcc IFE_1_GDSC>, 295 <&camcc TITAN_TOP_GDSC>; 296 power-domain-names = "ife0", 297 "ife1", 298 "top"; 299 300 vdda-phy-supply = <&vreg_l1a_1p225>; 301 vdda-pll-supply = <&vreg_l8a_1p8>; 302 303 ports { 304 #address-cells = <1>; 305 #size-cells = <0>; 306 307 port@0 { 308 reg = <0>; 309 310 csiphy_ep0: endpoint { 311 clock-lanes = <7>; 312 data-lanes = <0 1 2 3>; 313 remote-endpoint = <&front_sensor_ep>; 314 }; 315 }; 316 }; 317 }; 318 }; 319