162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci%YAML 1.2 462306a36Sopenharmony_ci--- 562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/media/qcom,msm8996-camss.yaml# 662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 762306a36Sopenharmony_ci 862306a36Sopenharmony_cititle: Qualcomm CAMSS ISP 962306a36Sopenharmony_ci 1062306a36Sopenharmony_cimaintainers: 1162306a36Sopenharmony_ci - Robert Foss <robert.foss@linaro.org> 1262306a36Sopenharmony_ci - Todor Tomov <todor.too@gmail.com> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cidescription: | 1562306a36Sopenharmony_ci The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciproperties: 1862306a36Sopenharmony_ci compatible: 1962306a36Sopenharmony_ci const: qcom,msm8996-camss 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci clocks: 2262306a36Sopenharmony_ci minItems: 36 2362306a36Sopenharmony_ci maxItems: 36 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci clock-names: 2662306a36Sopenharmony_ci items: 2762306a36Sopenharmony_ci - const: top_ahb 2862306a36Sopenharmony_ci - const: ispif_ahb 2962306a36Sopenharmony_ci - const: csiphy0_timer 3062306a36Sopenharmony_ci - const: csiphy1_timer 3162306a36Sopenharmony_ci - const: csiphy2_timer 3262306a36Sopenharmony_ci - const: csi0_ahb 3362306a36Sopenharmony_ci - const: csi0 3462306a36Sopenharmony_ci - const: csi0_phy 3562306a36Sopenharmony_ci - const: csi0_pix 3662306a36Sopenharmony_ci - const: csi0_rdi 3762306a36Sopenharmony_ci - const: csi1_ahb 3862306a36Sopenharmony_ci - const: csi1 3962306a36Sopenharmony_ci - const: csi1_phy 4062306a36Sopenharmony_ci - const: csi1_pix 4162306a36Sopenharmony_ci - const: csi1_rdi 4262306a36Sopenharmony_ci - const: csi2_ahb 4362306a36Sopenharmony_ci - const: csi2 4462306a36Sopenharmony_ci - const: csi2_phy 4562306a36Sopenharmony_ci - const: csi2_pix 4662306a36Sopenharmony_ci - const: csi2_rdi 4762306a36Sopenharmony_ci - const: csi3_ahb 4862306a36Sopenharmony_ci - const: csi3 4962306a36Sopenharmony_ci - const: csi3_phy 5062306a36Sopenharmony_ci - const: csi3_pix 5162306a36Sopenharmony_ci - const: csi3_rdi 5262306a36Sopenharmony_ci - const: ahb 5362306a36Sopenharmony_ci - const: vfe0 5462306a36Sopenharmony_ci - const: csi_vfe0 5562306a36Sopenharmony_ci - const: vfe0_ahb 5662306a36Sopenharmony_ci - const: vfe0_stream 5762306a36Sopenharmony_ci - const: vfe1 5862306a36Sopenharmony_ci - const: csi_vfe1 5962306a36Sopenharmony_ci - const: vfe1_ahb 6062306a36Sopenharmony_ci - const: vfe1_stream 6162306a36Sopenharmony_ci - const: vfe_ahb 6262306a36Sopenharmony_ci - const: vfe_axi 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci interrupts: 6562306a36Sopenharmony_ci minItems: 10 6662306a36Sopenharmony_ci maxItems: 10 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci interrupt-names: 6962306a36Sopenharmony_ci items: 7062306a36Sopenharmony_ci - const: csiphy0 7162306a36Sopenharmony_ci - const: csiphy1 7262306a36Sopenharmony_ci - const: csiphy2 7362306a36Sopenharmony_ci - const: csid0 7462306a36Sopenharmony_ci - const: csid1 7562306a36Sopenharmony_ci - const: csid2 7662306a36Sopenharmony_ci - const: csid3 7762306a36Sopenharmony_ci - const: ispif 7862306a36Sopenharmony_ci - const: vfe0 7962306a36Sopenharmony_ci - const: vfe1 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci iommus: 8262306a36Sopenharmony_ci maxItems: 4 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci power-domains: 8562306a36Sopenharmony_ci items: 8662306a36Sopenharmony_ci - description: VFE0 GDSC - Video Front End, Global Distributed Switch Controller. 8762306a36Sopenharmony_ci - description: VFE1 GDSC - Video Front End, Global Distributed Switch Controller. 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci ports: 9062306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/properties/ports 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci description: 9362306a36Sopenharmony_ci CSI input ports. 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci properties: 9662306a36Sopenharmony_ci port@0: 9762306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 9862306a36Sopenharmony_ci unevaluatedProperties: false 9962306a36Sopenharmony_ci description: 10062306a36Sopenharmony_ci Input port for receiving CSI data. 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci properties: 10362306a36Sopenharmony_ci endpoint: 10462306a36Sopenharmony_ci $ref: video-interfaces.yaml# 10562306a36Sopenharmony_ci unevaluatedProperties: false 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci properties: 10862306a36Sopenharmony_ci data-lanes: 10962306a36Sopenharmony_ci description: 11062306a36Sopenharmony_ci An array of physical data lanes indexes. 11162306a36Sopenharmony_ci Position of an entry determines the logical 11262306a36Sopenharmony_ci lane number, while the value of an entry 11362306a36Sopenharmony_ci indicates physical lane index. Lane swapping 11462306a36Sopenharmony_ci is supported. Physical lane indexes are; 11562306a36Sopenharmony_ci 0, 1, 2, 3 11662306a36Sopenharmony_ci minItems: 1 11762306a36Sopenharmony_ci maxItems: 4 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci required: 12062306a36Sopenharmony_ci - data-lanes 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci port@1: 12362306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 12462306a36Sopenharmony_ci unevaluatedProperties: false 12562306a36Sopenharmony_ci description: 12662306a36Sopenharmony_ci Input port for receiving CSI data. 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci properties: 12962306a36Sopenharmony_ci endpoint: 13062306a36Sopenharmony_ci $ref: video-interfaces.yaml# 13162306a36Sopenharmony_ci unevaluatedProperties: false 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci properties: 13462306a36Sopenharmony_ci data-lanes: 13562306a36Sopenharmony_ci minItems: 1 13662306a36Sopenharmony_ci maxItems: 4 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci required: 13962306a36Sopenharmony_ci - data-lanes 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci port@2: 14262306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 14362306a36Sopenharmony_ci unevaluatedProperties: false 14462306a36Sopenharmony_ci description: 14562306a36Sopenharmony_ci Input port for receiving CSI data. 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ci properties: 14862306a36Sopenharmony_ci endpoint: 14962306a36Sopenharmony_ci $ref: video-interfaces.yaml# 15062306a36Sopenharmony_ci unevaluatedProperties: false 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ci properties: 15362306a36Sopenharmony_ci data-lanes: 15462306a36Sopenharmony_ci minItems: 1 15562306a36Sopenharmony_ci maxItems: 4 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ci required: 15862306a36Sopenharmony_ci - data-lanes 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci port@3: 16162306a36Sopenharmony_ci $ref: /schemas/graph.yaml#/$defs/port-base 16262306a36Sopenharmony_ci unevaluatedProperties: false 16362306a36Sopenharmony_ci description: 16462306a36Sopenharmony_ci Input port for receiving CSI data. 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci properties: 16762306a36Sopenharmony_ci endpoint: 16862306a36Sopenharmony_ci $ref: video-interfaces.yaml# 16962306a36Sopenharmony_ci unevaluatedProperties: false 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci properties: 17262306a36Sopenharmony_ci data-lanes: 17362306a36Sopenharmony_ci minItems: 1 17462306a36Sopenharmony_ci maxItems: 4 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci required: 17762306a36Sopenharmony_ci - data-lanes 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci reg: 18062306a36Sopenharmony_ci minItems: 14 18162306a36Sopenharmony_ci maxItems: 14 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ci reg-names: 18462306a36Sopenharmony_ci items: 18562306a36Sopenharmony_ci - const: csiphy0 18662306a36Sopenharmony_ci - const: csiphy0_clk_mux 18762306a36Sopenharmony_ci - const: csiphy1 18862306a36Sopenharmony_ci - const: csiphy1_clk_mux 18962306a36Sopenharmony_ci - const: csiphy2 19062306a36Sopenharmony_ci - const: csiphy2_clk_mux 19162306a36Sopenharmony_ci - const: csid0 19262306a36Sopenharmony_ci - const: csid1 19362306a36Sopenharmony_ci - const: csid2 19462306a36Sopenharmony_ci - const: csid3 19562306a36Sopenharmony_ci - const: ispif 19662306a36Sopenharmony_ci - const: csi_clk_mux 19762306a36Sopenharmony_ci - const: vfe0 19862306a36Sopenharmony_ci - const: vfe1 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci vdda-supply: 20162306a36Sopenharmony_ci description: 20262306a36Sopenharmony_ci Definition of the regulator used as analog power supply. 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_cirequired: 20562306a36Sopenharmony_ci - clock-names 20662306a36Sopenharmony_ci - clocks 20762306a36Sopenharmony_ci - compatible 20862306a36Sopenharmony_ci - interrupt-names 20962306a36Sopenharmony_ci - interrupts 21062306a36Sopenharmony_ci - iommus 21162306a36Sopenharmony_ci - power-domains 21262306a36Sopenharmony_ci - reg 21362306a36Sopenharmony_ci - reg-names 21462306a36Sopenharmony_ci - vdda-supply 21562306a36Sopenharmony_ci 21662306a36Sopenharmony_ciadditionalProperties: false 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ciexamples: 21962306a36Sopenharmony_ci - | 22062306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 22162306a36Sopenharmony_ci #include <dt-bindings/clock/qcom,gcc-msm8996.h> 22262306a36Sopenharmony_ci #include <dt-bindings/clock/qcom,mmcc-msm8996.h> 22362306a36Sopenharmony_ci 22462306a36Sopenharmony_ci camss: camss@a34000 { 22562306a36Sopenharmony_ci compatible = "qcom,msm8996-camss"; 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci clocks = <&mmcc CAMSS_TOP_AHB_CLK>, 22862306a36Sopenharmony_ci <&mmcc CAMSS_ISPIF_AHB_CLK>, 22962306a36Sopenharmony_ci <&mmcc CAMSS_CSI0PHYTIMER_CLK>, 23062306a36Sopenharmony_ci <&mmcc CAMSS_CSI1PHYTIMER_CLK>, 23162306a36Sopenharmony_ci <&mmcc CAMSS_CSI2PHYTIMER_CLK>, 23262306a36Sopenharmony_ci <&mmcc CAMSS_CSI0_AHB_CLK>, 23362306a36Sopenharmony_ci <&mmcc CAMSS_CSI0_CLK>, 23462306a36Sopenharmony_ci <&mmcc CAMSS_CSI0PHY_CLK>, 23562306a36Sopenharmony_ci <&mmcc CAMSS_CSI0PIX_CLK>, 23662306a36Sopenharmony_ci <&mmcc CAMSS_CSI0RDI_CLK>, 23762306a36Sopenharmony_ci <&mmcc CAMSS_CSI1_AHB_CLK>, 23862306a36Sopenharmony_ci <&mmcc CAMSS_CSI1_CLK>, 23962306a36Sopenharmony_ci <&mmcc CAMSS_CSI1PHY_CLK>, 24062306a36Sopenharmony_ci <&mmcc CAMSS_CSI1PIX_CLK>, 24162306a36Sopenharmony_ci <&mmcc CAMSS_CSI1RDI_CLK>, 24262306a36Sopenharmony_ci <&mmcc CAMSS_CSI2_AHB_CLK>, 24362306a36Sopenharmony_ci <&mmcc CAMSS_CSI2_CLK>, 24462306a36Sopenharmony_ci <&mmcc CAMSS_CSI2PHY_CLK>, 24562306a36Sopenharmony_ci <&mmcc CAMSS_CSI2PIX_CLK>, 24662306a36Sopenharmony_ci <&mmcc CAMSS_CSI2RDI_CLK>, 24762306a36Sopenharmony_ci <&mmcc CAMSS_CSI3_AHB_CLK>, 24862306a36Sopenharmony_ci <&mmcc CAMSS_CSI3_CLK>, 24962306a36Sopenharmony_ci <&mmcc CAMSS_CSI3PHY_CLK>, 25062306a36Sopenharmony_ci <&mmcc CAMSS_CSI3PIX_CLK>, 25162306a36Sopenharmony_ci <&mmcc CAMSS_CSI3RDI_CLK>, 25262306a36Sopenharmony_ci <&mmcc CAMSS_AHB_CLK>, 25362306a36Sopenharmony_ci <&mmcc CAMSS_VFE0_CLK>, 25462306a36Sopenharmony_ci <&mmcc CAMSS_CSI_VFE0_CLK>, 25562306a36Sopenharmony_ci <&mmcc CAMSS_VFE0_AHB_CLK>, 25662306a36Sopenharmony_ci <&mmcc CAMSS_VFE0_STREAM_CLK>, 25762306a36Sopenharmony_ci <&mmcc CAMSS_VFE1_CLK>, 25862306a36Sopenharmony_ci <&mmcc CAMSS_CSI_VFE1_CLK>, 25962306a36Sopenharmony_ci <&mmcc CAMSS_VFE1_AHB_CLK>, 26062306a36Sopenharmony_ci <&mmcc CAMSS_VFE1_STREAM_CLK>, 26162306a36Sopenharmony_ci <&mmcc CAMSS_VFE_AHB_CLK>, 26262306a36Sopenharmony_ci <&mmcc CAMSS_VFE_AXI_CLK>; 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ci clock-names = "top_ahb", 26562306a36Sopenharmony_ci "ispif_ahb", 26662306a36Sopenharmony_ci "csiphy0_timer", 26762306a36Sopenharmony_ci "csiphy1_timer", 26862306a36Sopenharmony_ci "csiphy2_timer", 26962306a36Sopenharmony_ci "csi0_ahb", 27062306a36Sopenharmony_ci "csi0", 27162306a36Sopenharmony_ci "csi0_phy", 27262306a36Sopenharmony_ci "csi0_pix", 27362306a36Sopenharmony_ci "csi0_rdi", 27462306a36Sopenharmony_ci "csi1_ahb", 27562306a36Sopenharmony_ci "csi1", 27662306a36Sopenharmony_ci "csi1_phy", 27762306a36Sopenharmony_ci "csi1_pix", 27862306a36Sopenharmony_ci "csi1_rdi", 27962306a36Sopenharmony_ci "csi2_ahb", 28062306a36Sopenharmony_ci "csi2", 28162306a36Sopenharmony_ci "csi2_phy", 28262306a36Sopenharmony_ci "csi2_pix", 28362306a36Sopenharmony_ci "csi2_rdi", 28462306a36Sopenharmony_ci "csi3_ahb", 28562306a36Sopenharmony_ci "csi3", 28662306a36Sopenharmony_ci "csi3_phy", 28762306a36Sopenharmony_ci "csi3_pix", 28862306a36Sopenharmony_ci "csi3_rdi", 28962306a36Sopenharmony_ci "ahb", 29062306a36Sopenharmony_ci "vfe0", 29162306a36Sopenharmony_ci "csi_vfe0", 29262306a36Sopenharmony_ci "vfe0_ahb", 29362306a36Sopenharmony_ci "vfe0_stream", 29462306a36Sopenharmony_ci "vfe1", 29562306a36Sopenharmony_ci "csi_vfe1", 29662306a36Sopenharmony_ci "vfe1_ahb", 29762306a36Sopenharmony_ci "vfe1_stream", 29862306a36Sopenharmony_ci "vfe_ahb", 29962306a36Sopenharmony_ci "vfe_axi"; 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ci interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>, 30262306a36Sopenharmony_ci <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>, 30362306a36Sopenharmony_ci <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>, 30462306a36Sopenharmony_ci <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>, 30562306a36Sopenharmony_ci <GIC_SPI 297 IRQ_TYPE_EDGE_RISING>, 30662306a36Sopenharmony_ci <GIC_SPI 298 IRQ_TYPE_EDGE_RISING>, 30762306a36Sopenharmony_ci <GIC_SPI 299 IRQ_TYPE_EDGE_RISING>, 30862306a36Sopenharmony_ci <GIC_SPI 309 IRQ_TYPE_EDGE_RISING>, 30962306a36Sopenharmony_ci <GIC_SPI 314 IRQ_TYPE_EDGE_RISING>, 31062306a36Sopenharmony_ci <GIC_SPI 315 IRQ_TYPE_EDGE_RISING>; 31162306a36Sopenharmony_ci 31262306a36Sopenharmony_ci interrupt-names = "csiphy0", 31362306a36Sopenharmony_ci "csiphy1", 31462306a36Sopenharmony_ci "csiphy2", 31562306a36Sopenharmony_ci "csid0", 31662306a36Sopenharmony_ci "csid1", 31762306a36Sopenharmony_ci "csid2", 31862306a36Sopenharmony_ci "csid3", 31962306a36Sopenharmony_ci "ispif", 32062306a36Sopenharmony_ci "vfe0", 32162306a36Sopenharmony_ci "vfe1"; 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ci iommus = <&vfe_smmu 0>, 32462306a36Sopenharmony_ci <&vfe_smmu 1>, 32562306a36Sopenharmony_ci <&vfe_smmu 2>, 32662306a36Sopenharmony_ci <&vfe_smmu 3>; 32762306a36Sopenharmony_ci 32862306a36Sopenharmony_ci power-domains = <&mmcc VFE0_GDSC>, 32962306a36Sopenharmony_ci <&mmcc VFE1_GDSC>; 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_ci reg = <0x00a34000 0x1000>, 33262306a36Sopenharmony_ci <0x00a00030 0x4>, 33362306a36Sopenharmony_ci <0x00a35000 0x1000>, 33462306a36Sopenharmony_ci <0x00a00038 0x4>, 33562306a36Sopenharmony_ci <0x00a36000 0x1000>, 33662306a36Sopenharmony_ci <0x00a00040 0x4>, 33762306a36Sopenharmony_ci <0x00a30000 0x100>, 33862306a36Sopenharmony_ci <0x00a30400 0x100>, 33962306a36Sopenharmony_ci <0x00a30800 0x100>, 34062306a36Sopenharmony_ci <0x00a30c00 0x100>, 34162306a36Sopenharmony_ci <0x00a31000 0x500>, 34262306a36Sopenharmony_ci <0x00a00020 0x10>, 34362306a36Sopenharmony_ci <0x00a10000 0x1000>, 34462306a36Sopenharmony_ci <0x00a14000 0x1000>; 34562306a36Sopenharmony_ci 34662306a36Sopenharmony_ci reg-names = "csiphy0", 34762306a36Sopenharmony_ci "csiphy0_clk_mux", 34862306a36Sopenharmony_ci "csiphy1", 34962306a36Sopenharmony_ci "csiphy1_clk_mux", 35062306a36Sopenharmony_ci "csiphy2", 35162306a36Sopenharmony_ci "csiphy2_clk_mux", 35262306a36Sopenharmony_ci "csid0", 35362306a36Sopenharmony_ci "csid1", 35462306a36Sopenharmony_ci "csid2", 35562306a36Sopenharmony_ci "csid3", 35662306a36Sopenharmony_ci "ispif", 35762306a36Sopenharmony_ci "csi_clk_mux", 35862306a36Sopenharmony_ci "vfe0", 35962306a36Sopenharmony_ci "vfe1"; 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci vdda-supply = <®_2v8>; 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ci ports { 36462306a36Sopenharmony_ci #address-cells = <1>; 36562306a36Sopenharmony_ci #size-cells = <0>; 36662306a36Sopenharmony_ci }; 36762306a36Sopenharmony_ci }; 368