Back to home page

OSCL-LXR

 
 

    


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 = <&reg_2v8>;
0380 
0381       ports {
0382         #address-cells = <1>;
0383         #size-cells = <0>;
0384       };
0385     };