0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002
0003 %YAML 1.2
0004 ---
0005 $id: "http://devicetree.org/schemas/media/qcom,sdm660-camss.yaml#"
0006 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0007
0008 title: Qualcomm CAMSS ISP
0009
0010 maintainers:
0011 - Robert Foss <robert.foss@linaro.org>
0012 - AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
0013
0014 description: |
0015 The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms
0016
0017 properties:
0018 compatible:
0019 const: qcom,sdm660-camss
0020
0021 clocks:
0022 minItems: 42
0023 maxItems: 42
0024
0025 clock-names:
0026 items:
0027 - const: ahb
0028 - const: cphy_csid0
0029 - const: cphy_csid1
0030 - const: cphy_csid2
0031 - const: cphy_csid3
0032 - const: csi0_ahb
0033 - const: csi0
0034 - const: csi0_phy
0035 - const: csi0_pix
0036 - const: csi0_rdi
0037 - const: csi1_ahb
0038 - const: csi1
0039 - const: csi1_phy
0040 - const: csi1_pix
0041 - const: csi1_rdi
0042 - const: csi2_ahb
0043 - const: csi2
0044 - const: csi2_phy
0045 - const: csi2_pix
0046 - const: csi2_rdi
0047 - const: csi3_ahb
0048 - const: csi3
0049 - const: csi3_phy
0050 - const: csi3_pix
0051 - const: csi3_rdi
0052 - const: csiphy0_timer
0053 - const: csiphy1_timer
0054 - const: csiphy2_timer
0055 - const: csiphy_ahb2crif
0056 - const: csi_vfe0
0057 - const: csi_vfe1
0058 - const: ispif_ahb
0059 - const: throttle_axi
0060 - const: top_ahb
0061 - const: vfe0_ahb
0062 - const: vfe0
0063 - const: vfe0_stream
0064 - const: vfe1_ahb
0065 - const: vfe1
0066 - const: vfe1_stream
0067 - const: vfe_ahb
0068 - const: vfe_axi
0069
0070 interrupts:
0071 minItems: 10
0072 maxItems: 10
0073
0074 interrupt-names:
0075 items:
0076 - const: csid0
0077 - const: csid1
0078 - const: csid2
0079 - const: csid3
0080 - const: csiphy0
0081 - const: csiphy1
0082 - const: csiphy2
0083 - const: ispif
0084 - const: vfe0
0085 - const: vfe1
0086
0087 interconnects:
0088 maxItems: 1
0089
0090 interconnect-names:
0091 items:
0092 - const: vfe-mem
0093
0094 iommus:
0095 maxItems: 4
0096
0097 power-domains:
0098 items:
0099 - description: VFE0 GDSC - Video Front End, Global Distributed Switch Controller.
0100 - description: VFE1 GDSC - Video Front End, Global Distributed Switch Controller.
0101
0102 ports:
0103 $ref: /schemas/graph.yaml#/properties/ports
0104
0105 description:
0106 CSI input ports.
0107
0108 properties:
0109 port@0:
0110 $ref: /schemas/graph.yaml#/$defs/port-base
0111 unevaluatedProperties: false
0112 description:
0113 Input port for receiving CSI data.
0114
0115 properties:
0116 endpoint:
0117 $ref: video-interfaces.yaml#
0118 unevaluatedProperties: false
0119
0120 properties:
0121 data-lanes:
0122 minItems: 1
0123 maxItems: 4
0124
0125 required:
0126 - data-lanes
0127
0128 port@1:
0129 $ref: /schemas/graph.yaml#/$defs/port-base
0130 unevaluatedProperties: false
0131 description:
0132 Input port for receiving CSI data.
0133
0134 properties:
0135 endpoint:
0136 $ref: video-interfaces.yaml#
0137 unevaluatedProperties: false
0138
0139 properties:
0140 data-lanes:
0141 minItems: 1
0142 maxItems: 4
0143
0144 required:
0145 - data-lanes
0146
0147 port@2:
0148 $ref: /schemas/graph.yaml#/$defs/port-base
0149 unevaluatedProperties: false
0150 description:
0151 Input port for receiving CSI data.
0152
0153 properties:
0154 endpoint:
0155 $ref: video-interfaces.yaml#
0156 unevaluatedProperties: false
0157
0158 properties:
0159 data-lanes:
0160 minItems: 1
0161 maxItems: 4
0162
0163 required:
0164 - data-lanes
0165
0166 port@3:
0167 $ref: /schemas/graph.yaml#/$defs/port-base
0168 unevaluatedProperties: false
0169 description:
0170 Input port for receiving CSI data.
0171
0172 properties:
0173 endpoint:
0174 $ref: video-interfaces.yaml#
0175 unevaluatedProperties: false
0176
0177 properties:
0178 data-lanes:
0179 minItems: 1
0180 maxItems: 4
0181
0182 required:
0183 - data-lanes
0184
0185 reg:
0186 minItems: 14
0187 maxItems: 14
0188
0189 reg-names:
0190 items:
0191 - const: csi_clk_mux
0192 - const: csid0
0193 - const: csid1
0194 - const: csid2
0195 - const: csid3
0196 - const: csiphy0
0197 - const: csiphy0_clk_mux
0198 - const: csiphy1
0199 - const: csiphy1_clk_mux
0200 - const: csiphy2
0201 - const: csiphy2_clk_mux
0202 - const: ispif
0203 - const: vfe0
0204 - const: vfe1
0205
0206 vdda-supply:
0207 description:
0208 Definition of the regulator used as analog power supply.
0209
0210 required:
0211 - clock-names
0212 - clocks
0213 - compatible
0214 - interrupt-names
0215 - interrupts
0216 - iommus
0217 - power-domains
0218 - reg
0219 - reg-names
0220 - vdda-supply
0221
0222 additionalProperties: false
0223
0224 examples:
0225 - |
0226 #include <dt-bindings/interrupt-controller/arm-gic.h>
0227 #include <dt-bindings/clock/qcom,gcc-sdm660.h>
0228 #include <dt-bindings/clock/qcom,mmcc-sdm660.h>
0229
0230 camss: camss@ca00000 {
0231 compatible = "qcom,sdm660-camss";
0232
0233 clocks = <&mmcc CAMSS_AHB_CLK>,
0234 <&mmcc CAMSS_CPHY_CSID0_CLK>,
0235 <&mmcc CAMSS_CPHY_CSID1_CLK>,
0236 <&mmcc CAMSS_CPHY_CSID2_CLK>,
0237 <&mmcc CAMSS_CPHY_CSID3_CLK>,
0238 <&mmcc CAMSS_CSI0_AHB_CLK>,
0239 <&mmcc CAMSS_CSI0_CLK>,
0240 <&mmcc CAMSS_CPHY_CSID0_CLK>,
0241 <&mmcc CAMSS_CSI0PIX_CLK>,
0242 <&mmcc CAMSS_CSI0RDI_CLK>,
0243 <&mmcc CAMSS_CSI1_AHB_CLK>,
0244 <&mmcc CAMSS_CSI1_CLK>,
0245 <&mmcc CAMSS_CPHY_CSID1_CLK>,
0246 <&mmcc CAMSS_CSI1PIX_CLK>,
0247 <&mmcc CAMSS_CSI1RDI_CLK>,
0248 <&mmcc CAMSS_CSI2_AHB_CLK>,
0249 <&mmcc CAMSS_CSI2_CLK>,
0250 <&mmcc CAMSS_CPHY_CSID2_CLK>,
0251 <&mmcc CAMSS_CSI2PIX_CLK>,
0252 <&mmcc CAMSS_CSI2RDI_CLK>,
0253 <&mmcc CAMSS_CSI3_AHB_CLK>,
0254 <&mmcc CAMSS_CSI3_CLK>,
0255 <&mmcc CAMSS_CPHY_CSID3_CLK>,
0256 <&mmcc CAMSS_CSI3PIX_CLK>,
0257 <&mmcc CAMSS_CSI3RDI_CLK>,
0258 <&mmcc CAMSS_CSI0PHYTIMER_CLK>,
0259 <&mmcc CAMSS_CSI1PHYTIMER_CLK>,
0260 <&mmcc CAMSS_CSI2PHYTIMER_CLK>,
0261 <&mmcc CSIPHY_AHB2CRIF_CLK>,
0262 <&mmcc CAMSS_CSI_VFE0_CLK>,
0263 <&mmcc CAMSS_CSI_VFE1_CLK>,
0264 <&mmcc CAMSS_ISPIF_AHB_CLK>,
0265 <&mmcc THROTTLE_CAMSS_AXI_CLK>,
0266 <&mmcc CAMSS_TOP_AHB_CLK>,
0267 <&mmcc CAMSS_VFE0_AHB_CLK>,
0268 <&mmcc CAMSS_VFE0_CLK>,
0269 <&mmcc CAMSS_VFE0_STREAM_CLK>,
0270 <&mmcc CAMSS_VFE1_AHB_CLK>,
0271 <&mmcc CAMSS_VFE1_CLK>,
0272 <&mmcc CAMSS_VFE1_STREAM_CLK>,
0273 <&mmcc CAMSS_VFE_VBIF_AHB_CLK>,
0274 <&mmcc CAMSS_VFE_VBIF_AXI_CLK>;
0275
0276 clock-names = "ahb",
0277 "cphy_csid0",
0278 "cphy_csid1",
0279 "cphy_csid2",
0280 "cphy_csid3",
0281 "csi0_ahb",
0282 "csi0",
0283 "csi0_phy",
0284 "csi0_pix",
0285 "csi0_rdi",
0286 "csi1_ahb",
0287 "csi1",
0288 "csi1_phy",
0289 "csi1_pix",
0290 "csi1_rdi",
0291 "csi2_ahb",
0292 "csi2",
0293 "csi2_phy",
0294 "csi2_pix",
0295 "csi2_rdi",
0296 "csi3_ahb",
0297 "csi3",
0298 "csi3_phy",
0299 "csi3_pix",
0300 "csi3_rdi",
0301 "csiphy0_timer",
0302 "csiphy1_timer",
0303 "csiphy2_timer",
0304 "csiphy_ahb2crif",
0305 "csi_vfe0",
0306 "csi_vfe1",
0307 "ispif_ahb",
0308 "throttle_axi",
0309 "top_ahb",
0310 "vfe0_ahb",
0311 "vfe0",
0312 "vfe0_stream",
0313 "vfe1_ahb",
0314 "vfe1",
0315 "vfe1_stream",
0316 "vfe_ahb",
0317 "vfe_axi";
0318
0319 interrupts = <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>,
0320 <GIC_SPI 297 IRQ_TYPE_EDGE_RISING>,
0321 <GIC_SPI 298 IRQ_TYPE_EDGE_RISING>,
0322 <GIC_SPI 299 IRQ_TYPE_EDGE_RISING>,
0323 <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
0324 <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
0325 <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>,
0326 <GIC_SPI 309 IRQ_TYPE_EDGE_RISING>,
0327 <GIC_SPI 314 IRQ_TYPE_EDGE_RISING>,
0328 <GIC_SPI 315 IRQ_TYPE_EDGE_RISING>;
0329
0330 interrupt-names = "csid0",
0331 "csid1",
0332 "csid2",
0333 "csid3",
0334 "csiphy0",
0335 "csiphy1",
0336 "csiphy2",
0337 "ispif",
0338 "vfe0",
0339 "vfe1";
0340
0341 iommus = <&mmss_smmu 0xc00>,
0342 <&mmss_smmu 0xc01>,
0343 <&mmss_smmu 0xc02>,
0344 <&mmss_smmu 0xc03>;
0345
0346 power-domains = <&mmcc CAMSS_VFE0_GDSC>,
0347 <&mmcc CAMSS_VFE1_GDSC>;
0348
0349 reg = <0x0ca00020 0x10>,
0350 <0x0ca30000 0x100>,
0351 <0x0ca30400 0x100>,
0352 <0x0ca30800 0x100>,
0353 <0x0ca30c00 0x100>,
0354 <0x0c824000 0x1000>,
0355 <0x0ca00120 0x4>,
0356 <0x0c825000 0x1000>,
0357 <0x0ca00124 0x4>,
0358 <0x0c826000 0x1000>,
0359 <0x0ca00128 0x4>,
0360 <0x0ca31000 0x500>,
0361 <0x0ca10000 0x1000>,
0362 <0x0ca14000 0x1000>;
0363
0364 reg-names = "csi_clk_mux",
0365 "csid0",
0366 "csid1",
0367 "csid2",
0368 "csid3",
0369 "csiphy0",
0370 "csiphy0_clk_mux",
0371 "csiphy1",
0372 "csiphy1_clk_mux",
0373 "csiphy2",
0374 "csiphy2_clk_mux",
0375 "ispif",
0376 "vfe0",
0377 "vfe1";
0378
0379 vdda-supply = <®_2v8>;
0380
0381 ports {
0382 #address-cells = <1>;
0383 #size-cells = <0>;
0384 };
0385 };