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,sm8250-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
0013 description: |
0014 The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms.
0015
0016 properties:
0017 compatible:
0018 const: qcom,sm8250-camss
0019
0020 clocks:
0021 minItems: 37
0022 maxItems: 37
0023
0024 clock-names:
0025 items:
0026 - const: cam_ahb_clk
0027 - const: cam_hf_axi
0028 - const: cam_sf_axi
0029 - const: camnoc_axi
0030 - const: camnoc_axi_src
0031 - const: core_ahb
0032 - const: cpas_ahb
0033 - const: csiphy0
0034 - const: csiphy0_timer
0035 - const: csiphy1
0036 - const: csiphy1_timer
0037 - const: csiphy2
0038 - const: csiphy2_timer
0039 - const: csiphy3
0040 - const: csiphy3_timer
0041 - const: csiphy4
0042 - const: csiphy4_timer
0043 - const: csiphy5
0044 - const: csiphy5_timer
0045 - const: slow_ahb_src
0046 - const: vfe0_ahb
0047 - const: vfe0_axi
0048 - const: vfe0
0049 - const: vfe0_cphy_rx
0050 - const: vfe0_csid
0051 - const: vfe0_areg
0052 - const: vfe1_ahb
0053 - const: vfe1_axi
0054 - const: vfe1
0055 - const: vfe1_cphy_rx
0056 - const: vfe1_csid
0057 - const: vfe1_areg
0058 - const: vfe_lite_ahb
0059 - const: vfe_lite_axi
0060 - const: vfe_lite
0061 - const: vfe_lite_cphy_rx
0062 - const: vfe_lite_csid
0063
0064 interrupts:
0065 minItems: 14
0066 maxItems: 14
0067
0068 interrupt-names:
0069 items:
0070 - const: csiphy0
0071 - const: csiphy1
0072 - const: csiphy2
0073 - const: csiphy3
0074 - const: csiphy4
0075 - const: csiphy5
0076 - const: csid0
0077 - const: csid1
0078 - const: csid2
0079 - const: csid3
0080 - const: vfe0
0081 - const: vfe1
0082 - const: vfe_lite0
0083 - const: vfe_lite1
0084
0085 iommus:
0086 minItems: 8
0087 maxItems: 8
0088
0089 interconnects:
0090 minItems: 4
0091 maxItems: 4
0092
0093 interconnect-names:
0094 items:
0095 - const: cam_ahb
0096 - const: cam_hf_0_mnoc
0097 - const: cam_sf_0_mnoc
0098 - const: cam_sf_icp_mnoc
0099
0100 power-domains:
0101 items:
0102 - description: IFE0 GDSC - Image Front End, Global Distributed Switch Controller.
0103 - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller.
0104 - description: Titan GDSC - Titan ISP Block, Global Distributed Switch Controller.
0105
0106 ports:
0107 $ref: /schemas/graph.yaml#/properties/ports
0108
0109 description:
0110 CSI input ports.
0111
0112 properties:
0113 port@0:
0114 $ref: /schemas/graph.yaml#/$defs/port-base
0115 unevaluatedProperties: false
0116 description:
0117 Input port for receiving CSI data.
0118
0119 properties:
0120 endpoint:
0121 $ref: video-interfaces.yaml#
0122 unevaluatedProperties: false
0123
0124 properties:
0125 clock-lanes:
0126 maxItems: 1
0127
0128 data-lanes:
0129 minItems: 1
0130 maxItems: 4
0131
0132 required:
0133 - clock-lanes
0134 - data-lanes
0135
0136 port@1:
0137 $ref: /schemas/graph.yaml#/$defs/port-base
0138 unevaluatedProperties: false
0139 description:
0140 Input port for receiving CSI data.
0141
0142 properties:
0143 endpoint:
0144 $ref: video-interfaces.yaml#
0145 unevaluatedProperties: false
0146
0147 properties:
0148 clock-lanes:
0149 maxItems: 1
0150
0151 data-lanes:
0152 minItems: 1
0153 maxItems: 4
0154
0155 required:
0156 - clock-lanes
0157 - data-lanes
0158
0159 port@2:
0160 $ref: /schemas/graph.yaml#/$defs/port-base
0161 unevaluatedProperties: false
0162 description:
0163 Input port for receiving CSI data.
0164
0165 properties:
0166 endpoint:
0167 $ref: video-interfaces.yaml#
0168 unevaluatedProperties: false
0169
0170 properties:
0171 clock-lanes:
0172 maxItems: 1
0173
0174 data-lanes:
0175 minItems: 1
0176 maxItems: 4
0177
0178 required:
0179 - clock-lanes
0180 - data-lanes
0181
0182 port@3:
0183 $ref: /schemas/graph.yaml#/$defs/port-base
0184 unevaluatedProperties: false
0185 description:
0186 Input port for receiving CSI data.
0187
0188 properties:
0189 endpoint:
0190 $ref: video-interfaces.yaml#
0191 unevaluatedProperties: false
0192
0193 properties:
0194 clock-lanes:
0195 maxItems: 1
0196
0197 data-lanes:
0198 minItems: 1
0199 maxItems: 4
0200
0201 required:
0202 - clock-lanes
0203 - data-lanes
0204
0205 port@4:
0206 $ref: /schemas/graph.yaml#/$defs/port-base
0207 unevaluatedProperties: false
0208 description:
0209 Input port for receiving CSI data.
0210
0211 properties:
0212 endpoint:
0213 $ref: video-interfaces.yaml#
0214 unevaluatedProperties: false
0215
0216 properties:
0217 clock-lanes:
0218 maxItems: 1
0219
0220 data-lanes:
0221 minItems: 1
0222 maxItems: 4
0223
0224 required:
0225 - clock-lanes
0226 - data-lanes
0227
0228 port@5:
0229 $ref: /schemas/graph.yaml#/$defs/port-base
0230 unevaluatedProperties: false
0231 description:
0232 Input port for receiving CSI data.
0233
0234 properties:
0235 endpoint:
0236 $ref: video-interfaces.yaml#
0237 unevaluatedProperties: false
0238
0239 properties:
0240 clock-lanes:
0241 maxItems: 1
0242
0243 data-lanes:
0244 minItems: 1
0245 maxItems: 4
0246
0247 required:
0248 - clock-lanes
0249 - data-lanes
0250
0251 reg:
0252 minItems: 10
0253 maxItems: 10
0254
0255 reg-names:
0256 items:
0257 - const: csiphy0
0258 - const: csiphy1
0259 - const: csiphy2
0260 - const: csiphy3
0261 - const: csiphy4
0262 - const: csiphy5
0263 - const: vfe0
0264 - const: vfe1
0265 - const: vfe_lite0
0266 - const: vfe_lite1
0267
0268 vdda-phy-supply:
0269 description:
0270 Phandle to a regulator supply to PHY core block.
0271
0272 vdda-pll-supply:
0273 description:
0274 Phandle to 1.8V regulator supply to PHY refclk pll block.
0275
0276 required:
0277 - clock-names
0278 - clocks
0279 - compatible
0280 - interconnects
0281 - interconnect-names
0282 - interrupts
0283 - interrupt-names
0284 - iommus
0285 - power-domains
0286 - reg
0287 - reg-names
0288 - vdda-phy-supply
0289 - vdda-pll-supply
0290
0291 additionalProperties: false
0292
0293 examples:
0294 - |
0295 #include <dt-bindings/interrupt-controller/arm-gic.h>
0296 #include <dt-bindings/clock/qcom,camcc-sm8250.h>
0297 #include <dt-bindings/interconnect/qcom,sm8250.h>
0298 #include <dt-bindings/clock/qcom,gcc-sm8250.h>
0299 #include <dt-bindings/power/qcom-rpmpd.h>
0300
0301 soc {
0302 #address-cells = <2>;
0303 #size-cells = <2>;
0304
0305 camss: camss@ac6a000 {
0306 compatible = "qcom,sm8250-camss";
0307
0308 reg = <0 0xac6a000 0 0x2000>,
0309 <0 0xac6c000 0 0x2000>,
0310 <0 0xac6e000 0 0x1000>,
0311 <0 0xac70000 0 0x1000>,
0312 <0 0xac72000 0 0x1000>,
0313 <0 0xac74000 0 0x1000>,
0314 <0 0xacb4000 0 0xd000>,
0315 <0 0xacc3000 0 0xd000>,
0316 <0 0xacd9000 0 0x2200>,
0317 <0 0xacdb200 0 0x2200>;
0318 reg-names = "csiphy0",
0319 "csiphy1",
0320 "csiphy2",
0321 "csiphy3",
0322 "csiphy4",
0323 "csiphy5",
0324 "vfe0",
0325 "vfe1",
0326 "vfe_lite0",
0327 "vfe_lite1";
0328
0329 vdda-phy-supply = <&vreg_l5a_0p88>;
0330 vdda-pll-supply = <&vreg_l9a_1p2>;
0331
0332 interrupts = <GIC_SPI 477 IRQ_TYPE_LEVEL_HIGH>,
0333 <GIC_SPI 478 IRQ_TYPE_LEVEL_HIGH>,
0334 <GIC_SPI 479 IRQ_TYPE_LEVEL_HIGH>,
0335 <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>,
0336 <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
0337 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
0338 <GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>,
0339 <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>,
0340 <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>,
0341 <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
0342 <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>,
0343 <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>,
0344 <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>,
0345 <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>;
0346 interrupt-names = "csiphy0",
0347 "csiphy1",
0348 "csiphy2",
0349 "csiphy3",
0350 "csiphy4",
0351 "csiphy5",
0352 "csid0",
0353 "csid1",
0354 "csid2",
0355 "csid3",
0356 "vfe0",
0357 "vfe1",
0358 "vfe_lite0",
0359 "vfe_lite1";
0360
0361 power-domains = <&camcc IFE_0_GDSC>,
0362 <&camcc IFE_1_GDSC>,
0363 <&camcc TITAN_TOP_GDSC>;
0364
0365 clocks = <&gcc GCC_CAMERA_AHB_CLK>,
0366 <&gcc GCC_CAMERA_HF_AXI_CLK>,
0367 <&gcc GCC_CAMERA_SF_AXI_CLK>,
0368 <&camcc CAM_CC_CAMNOC_AXI_CLK>,
0369 <&camcc CAM_CC_CAMNOC_AXI_CLK_SRC>,
0370 <&camcc CAM_CC_CORE_AHB_CLK>,
0371 <&camcc CAM_CC_CPAS_AHB_CLK>,
0372 <&camcc CAM_CC_CSIPHY0_CLK>,
0373 <&camcc CAM_CC_CSI0PHYTIMER_CLK>,
0374 <&camcc CAM_CC_CSIPHY1_CLK>,
0375 <&camcc CAM_CC_CSI1PHYTIMER_CLK>,
0376 <&camcc CAM_CC_CSIPHY2_CLK>,
0377 <&camcc CAM_CC_CSI2PHYTIMER_CLK>,
0378 <&camcc CAM_CC_CSIPHY3_CLK>,
0379 <&camcc CAM_CC_CSI3PHYTIMER_CLK>,
0380 <&camcc CAM_CC_CSIPHY4_CLK>,
0381 <&camcc CAM_CC_CSI4PHYTIMER_CLK>,
0382 <&camcc CAM_CC_CSIPHY5_CLK>,
0383 <&camcc CAM_CC_CSI5PHYTIMER_CLK>,
0384 <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
0385 <&camcc CAM_CC_IFE_0_AHB_CLK>,
0386 <&camcc CAM_CC_IFE_0_AXI_CLK>,
0387 <&camcc CAM_CC_IFE_0_CLK>,
0388 <&camcc CAM_CC_IFE_0_CPHY_RX_CLK>,
0389 <&camcc CAM_CC_IFE_0_CSID_CLK>,
0390 <&camcc CAM_CC_IFE_0_AREG_CLK>,
0391 <&camcc CAM_CC_IFE_1_AHB_CLK>,
0392 <&camcc CAM_CC_IFE_1_AXI_CLK>,
0393 <&camcc CAM_CC_IFE_1_CLK>,
0394 <&camcc CAM_CC_IFE_1_CPHY_RX_CLK>,
0395 <&camcc CAM_CC_IFE_1_CSID_CLK>,
0396 <&camcc CAM_CC_IFE_1_AREG_CLK>,
0397 <&camcc CAM_CC_IFE_LITE_AHB_CLK>,
0398 <&camcc CAM_CC_IFE_LITE_AXI_CLK>,
0399 <&camcc CAM_CC_IFE_LITE_CLK>,
0400 <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>,
0401 <&camcc CAM_CC_IFE_LITE_CSID_CLK>;
0402 clock-names = "cam_ahb_clk",
0403 "cam_hf_axi",
0404 "cam_sf_axi",
0405 "camnoc_axi",
0406 "camnoc_axi_src",
0407 "core_ahb",
0408 "cpas_ahb",
0409 "csiphy0",
0410 "csiphy0_timer",
0411 "csiphy1",
0412 "csiphy1_timer",
0413 "csiphy2",
0414 "csiphy2_timer",
0415 "csiphy3",
0416 "csiphy3_timer",
0417 "csiphy4",
0418 "csiphy4_timer",
0419 "csiphy5",
0420 "csiphy5_timer",
0421 "slow_ahb_src",
0422 "vfe0_ahb",
0423 "vfe0_axi",
0424 "vfe0",
0425 "vfe0_cphy_rx",
0426 "vfe0_csid",
0427 "vfe0_areg",
0428 "vfe1_ahb",
0429 "vfe1_axi",
0430 "vfe1",
0431 "vfe1_cphy_rx",
0432 "vfe1_csid",
0433 "vfe1_areg",
0434 "vfe_lite_ahb",
0435 "vfe_lite_axi",
0436 "vfe_lite",
0437 "vfe_lite_cphy_rx",
0438 "vfe_lite_csid";
0439
0440 iommus = <&apps_smmu 0x800 0x400>,
0441 <&apps_smmu 0x801 0x400>,
0442 <&apps_smmu 0x840 0x400>,
0443 <&apps_smmu 0x841 0x400>,
0444 <&apps_smmu 0xC00 0x400>,
0445 <&apps_smmu 0xC01 0x400>,
0446 <&apps_smmu 0xC40 0x400>,
0447 <&apps_smmu 0xC41 0x400>;
0448
0449 interconnects = <&gem_noc MASTER_AMPSS_M0 &config_noc SLAVE_CAMERA_CFG>,
0450 <&mmss_noc MASTER_CAMNOC_HF &mc_virt SLAVE_EBI_CH0>,
0451 <&mmss_noc MASTER_CAMNOC_SF &mc_virt SLAVE_EBI_CH0>,
0452 <&mmss_noc MASTER_CAMNOC_ICP &mc_virt SLAVE_EBI_CH0>;
0453 interconnect-names = "cam_ahb",
0454 "cam_hf_0_mnoc",
0455 "cam_sf_0_mnoc",
0456 "cam_sf_icp_mnoc";
0457
0458 ports {
0459 #address-cells = <1>;
0460 #size-cells = <0>;
0461 };
0462 };
0463 };