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,msm8916-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   - Todor Tomov <todor.too@gmail.com>
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,msm8916-camss
0020 
0021   clocks:
0022     minItems: 19
0023     maxItems: 19
0024 
0025   clock-names:
0026     items:
0027       - const: top_ahb
0028       - const: ispif_ahb
0029       - const: csiphy0_timer
0030       - const: csiphy1_timer
0031       - const: csi0_ahb
0032       - const: csi0
0033       - const: csi0_phy
0034       - const: csi0_pix
0035       - const: csi0_rdi
0036       - const: csi1_ahb
0037       - const: csi1
0038       - const: csi1_phy
0039       - const: csi1_pix
0040       - const: csi1_rdi
0041       - const: ahb
0042       - const: vfe0
0043       - const: csi_vfe0
0044       - const: vfe_ahb
0045       - const: vfe_axi
0046 
0047   interrupts:
0048     minItems: 6
0049     maxItems: 6
0050 
0051   interrupt-names:
0052     items:
0053       - const: csiphy0
0054       - const: csiphy1
0055       - const: csid0
0056       - const: csid1
0057       - const: ispif
0058       - const: vfe0
0059 
0060   iommus:
0061     maxItems: 1
0062 
0063   power-domains:
0064     items:
0065       - description: VFE GDSC - Video Front End, Global Distributed Switch Controller.
0066 
0067   ports:
0068     $ref: /schemas/graph.yaml#/properties/ports
0069 
0070     description:
0071       CSI input ports.
0072 
0073     properties:
0074       port@0:
0075         $ref: /schemas/graph.yaml#/$defs/port-base
0076         unevaluatedProperties: false
0077         description:
0078           Input port for receiving CSI data.
0079 
0080         properties:
0081           endpoint:
0082             $ref: video-interfaces.yaml#
0083             unevaluatedProperties: false
0084 
0085             properties:
0086               data-lanes:
0087                 description:
0088                   An array of physical data lanes indexes.
0089                   Position of an entry determines the logical
0090                   lane number, while the value of an entry
0091                   indicates physical lane index. Lane swapping
0092                   is supported. Physical lane indexes;
0093                   0, 2, 3, 4.
0094                 minItems: 1
0095                 maxItems: 4
0096 
0097             required:
0098               - data-lanes
0099 
0100       port@1:
0101         $ref: /schemas/graph.yaml#/$defs/port-base
0102         unevaluatedProperties: false
0103         description:
0104           Input port for receiving CSI data.
0105 
0106         properties:
0107           endpoint:
0108             $ref: video-interfaces.yaml#
0109             unevaluatedProperties: false
0110 
0111             properties:
0112               data-lanes:
0113                 minItems: 1
0114                 maxItems: 4
0115 
0116             required:
0117               - data-lanes
0118 
0119   reg:
0120     minItems: 9
0121     maxItems: 9
0122 
0123   reg-names:
0124     items:
0125       - const: csiphy0
0126       - const: csiphy0_clk_mux
0127       - const: csiphy1
0128       - const: csiphy1_clk_mux
0129       - const: csid0
0130       - const: csid1
0131       - const: ispif
0132       - const: csi_clk_mux
0133       - const: vfe0
0134 
0135   vdda-supply:
0136     description:
0137       Definition of the regulator used as analog power supply.
0138 
0139 required:
0140   - clock-names
0141   - clocks
0142   - compatible
0143   - interrupt-names
0144   - interrupts
0145   - iommus
0146   - power-domains
0147   - reg
0148   - reg-names
0149   - vdda-supply
0150 
0151 additionalProperties: false
0152 
0153 examples:
0154   - |
0155     #include <dt-bindings/interrupt-controller/arm-gic.h>
0156     #include <dt-bindings/clock/qcom,gcc-msm8916.h>
0157 
0158     camss: camss@1b00000 {
0159       compatible = "qcom,msm8916-camss";
0160 
0161       clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
0162         <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
0163         <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
0164         <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
0165         <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
0166         <&gcc GCC_CAMSS_CSI0_CLK>,
0167         <&gcc GCC_CAMSS_CSI0PHY_CLK>,
0168         <&gcc GCC_CAMSS_CSI0PIX_CLK>,
0169         <&gcc GCC_CAMSS_CSI0RDI_CLK>,
0170         <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
0171         <&gcc GCC_CAMSS_CSI1_CLK>,
0172         <&gcc GCC_CAMSS_CSI1PHY_CLK>,
0173         <&gcc GCC_CAMSS_CSI1PIX_CLK>,
0174         <&gcc GCC_CAMSS_CSI1RDI_CLK>,
0175         <&gcc GCC_CAMSS_AHB_CLK>,
0176         <&gcc GCC_CAMSS_VFE0_CLK>,
0177         <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
0178         <&gcc GCC_CAMSS_VFE_AHB_CLK>,
0179         <&gcc GCC_CAMSS_VFE_AXI_CLK>;
0180 
0181       clock-names = "top_ahb",
0182         "ispif_ahb",
0183         "csiphy0_timer",
0184         "csiphy1_timer",
0185         "csi0_ahb",
0186         "csi0",
0187         "csi0_phy",
0188         "csi0_pix",
0189         "csi0_rdi",
0190         "csi1_ahb",
0191         "csi1",
0192         "csi1_phy",
0193         "csi1_pix",
0194         "csi1_rdi",
0195         "ahb",
0196         "vfe0",
0197         "csi_vfe0",
0198         "vfe_ahb",
0199         "vfe_axi";
0200 
0201       interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
0202         <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
0203         <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
0204         <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
0205         <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
0206         <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
0207 
0208       interrupt-names = "csiphy0",
0209         "csiphy1",
0210         "csid0",
0211         "csid1",
0212         "ispif",
0213         "vfe0";
0214 
0215       iommus = <&apps_iommu 3>;
0216 
0217       power-domains = <&gcc VFE_GDSC>;
0218 
0219       reg = <0x01b0ac00 0x200>,
0220         <0x01b00030 0x4>,
0221         <0x01b0b000 0x200>,
0222         <0x01b00038 0x4>,
0223         <0x01b08000 0x100>,
0224         <0x01b08400 0x100>,
0225         <0x01b0a000 0x500>,
0226         <0x01b00020 0x10>,
0227         <0x01b10000 0x1000>;
0228 
0229       reg-names = "csiphy0",
0230         "csiphy0_clk_mux",
0231         "csiphy1",
0232         "csiphy1_clk_mux",
0233         "csid0",
0234         "csid1",
0235         "ispif",
0236         "csi_clk_mux",
0237         "vfe0";
0238 
0239       vdda-supply = <&reg_2v8>;
0240 
0241       ports {
0242         #address-cells = <1>;
0243         #size-cells = <0>;
0244       };
0245 
0246     };