# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/media/qcom,sdm660-camss.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Qualcomm CAMSS ISP maintainers: - Robert Foss <robert.foss@linaro.org> - AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org> description: | The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms properties: compatible: const: qcom,sdm660-camss clocks: minItems: 42 maxItems: 42 clock-names: items: - const: ahb - const: cphy_csid0 - const: cphy_csid1 - const: cphy_csid2 - const: cphy_csid3 - const: csi0_ahb - const: csi0 - const: csi0_phy - const: csi0_pix - const: csi0_rdi - const: csi1_ahb - const: csi1 - const: csi1_phy - const: csi1_pix - const: csi1_rdi - const: csi2_ahb - const: csi2 - const: csi2_phy - const: csi2_pix - const: csi2_rdi - const: csi3_ahb - const: csi3 - const: csi3_phy - const: csi3_pix - const: csi3_rdi - const: csiphy0_timer - const: csiphy1_timer - const: csiphy2_timer - const: csiphy_ahb2crif - const: csi_vfe0 - const: csi_vfe1 - const: ispif_ahb - const: throttle_axi - const: top_ahb - const: vfe0_ahb - const: vfe0 - const: vfe0_stream - const: vfe1_ahb - const: vfe1 - const: vfe1_stream - const: vfe_ahb - const: vfe_axi interrupts: minItems: 10 maxItems: 10 interrupt-names: items: - const: csid0 - const: csid1 - const: csid2 - const: csid3 - const: csiphy0 - const: csiphy1 - const: csiphy2 - const: ispif - const: vfe0 - const: vfe1 interconnects: maxItems: 1 interconnect-names: items: - const: vfe-mem iommus: maxItems: 4 power-domains: items: - description: VFE0 GDSC - Video Front End, Global Distributed Switch Controller. - description: VFE1 GDSC - Video Front End, Global Distributed Switch Controller. ports: $ref: /schemas/graph.yaml#/properties/ports description: CSI input ports. properties: port@0: $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false description: Input port for receiving CSI data. properties: endpoint: $ref: video-interfaces.yaml# unevaluatedProperties: false properties: data-lanes: minItems: 1 maxItems: 4 required: - data-lanes port@1: $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false description: Input port for receiving CSI data. properties: endpoint: $ref: video-interfaces.yaml# unevaluatedProperties: false properties: data-lanes: minItems: 1 maxItems: 4 required: - data-lanes port@2: $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false description: Input port for receiving CSI data. properties: endpoint: $ref: video-interfaces.yaml# unevaluatedProperties: false properties: data-lanes: minItems: 1 maxItems: 4 required: - data-lanes port@3: $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false description: Input port for receiving CSI data. properties: endpoint: $ref: video-interfaces.yaml# unevaluatedProperties: false properties: data-lanes: minItems: 1 maxItems: 4 required: - data-lanes reg: minItems: 14 maxItems: 14 reg-names: items: - const: csi_clk_mux - const: csid0 - const: csid1 - const: csid2 - const: csid3 - const: csiphy0 - const: csiphy0_clk_mux - const: csiphy1 - const: csiphy1_clk_mux - const: csiphy2 - const: csiphy2_clk_mux - const: ispif - const: vfe0 - const: vfe1 vdda-supply: description: Definition of the regulator used as analog power supply. required: - clock-names - clocks - compatible - interrupt-names - interrupts - iommus - power-domains - reg - reg-names - vdda-supply additionalProperties: false examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clock/qcom,gcc-sdm660.h> #include <dt-bindings/clock/qcom,mmcc-sdm660.h> camss: camss@ca00020 { compatible = "qcom,sdm660-camss"; clocks = <&mmcc CAMSS_AHB_CLK>, <&mmcc CAMSS_CPHY_CSID0_CLK>, <&mmcc CAMSS_CPHY_CSID1_CLK>, <&mmcc CAMSS_CPHY_CSID2_CLK>, <&mmcc CAMSS_CPHY_CSID3_CLK>, <&mmcc CAMSS_CSI0_AHB_CLK>, <&mmcc CAMSS_CSI0_CLK>, <&mmcc CAMSS_CPHY_CSID0_CLK>, <&mmcc CAMSS_CSI0PIX_CLK>, <&mmcc CAMSS_CSI0RDI_CLK>, <&mmcc CAMSS_CSI1_AHB_CLK>, <&mmcc CAMSS_CSI1_CLK>, <&mmcc CAMSS_CPHY_CSID1_CLK>, <&mmcc CAMSS_CSI1PIX_CLK>, <&mmcc CAMSS_CSI1RDI_CLK>, <&mmcc CAMSS_CSI2_AHB_CLK>, <&mmcc CAMSS_CSI2_CLK>, <&mmcc CAMSS_CPHY_CSID2_CLK>, <&mmcc CAMSS_CSI2PIX_CLK>, <&mmcc CAMSS_CSI2RDI_CLK>, <&mmcc CAMSS_CSI3_AHB_CLK>, <&mmcc CAMSS_CSI3_CLK>, <&mmcc CAMSS_CPHY_CSID3_CLK>, <&mmcc CAMSS_CSI3PIX_CLK>, <&mmcc CAMSS_CSI3RDI_CLK>, <&mmcc CAMSS_CSI0PHYTIMER_CLK>, <&mmcc CAMSS_CSI1PHYTIMER_CLK>, <&mmcc CAMSS_CSI2PHYTIMER_CLK>, <&mmcc CSIPHY_AHB2CRIF_CLK>, <&mmcc CAMSS_CSI_VFE0_CLK>, <&mmcc CAMSS_CSI_VFE1_CLK>, <&mmcc CAMSS_ISPIF_AHB_CLK>, <&mmcc THROTTLE_CAMSS_AXI_CLK>, <&mmcc CAMSS_TOP_AHB_CLK>, <&mmcc CAMSS_VFE0_AHB_CLK>, <&mmcc CAMSS_VFE0_CLK>, <&mmcc CAMSS_VFE0_STREAM_CLK>, <&mmcc CAMSS_VFE1_AHB_CLK>, <&mmcc CAMSS_VFE1_CLK>, <&mmcc CAMSS_VFE1_STREAM_CLK>, <&mmcc CAMSS_VFE_VBIF_AHB_CLK>, <&mmcc CAMSS_VFE_VBIF_AXI_CLK>; clock-names = "ahb", "cphy_csid0", "cphy_csid1", "cphy_csid2", "cphy_csid3", "csi0_ahb", "csi0", "csi0_phy", "csi0_pix", "csi0_rdi", "csi1_ahb", "csi1", "csi1_phy", "csi1_pix", "csi1_rdi", "csi2_ahb", "csi2", "csi2_phy", "csi2_pix", "csi2_rdi", "csi3_ahb", "csi3", "csi3_phy", "csi3_pix", "csi3_rdi", "csiphy0_timer", "csiphy1_timer", "csiphy2_timer", "csiphy_ahb2crif", "csi_vfe0", "csi_vfe1", "ispif_ahb", "throttle_axi", "top_ahb", "vfe0_ahb", "vfe0", "vfe0_stream", "vfe1_ahb", "vfe1", "vfe1_stream", "vfe_ahb", "vfe_axi"; interrupts = <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 297 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 298 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 299 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 309 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 314 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 315 IRQ_TYPE_EDGE_RISING>; interrupt-names = "csid0", "csid1", "csid2", "csid3", "csiphy0", "csiphy1", "csiphy2", "ispif", "vfe0", "vfe1"; iommus = <&mmss_smmu 0xc00>, <&mmss_smmu 0xc01>, <&mmss_smmu 0xc02>, <&mmss_smmu 0xc03>; power-domains = <&mmcc CAMSS_VFE0_GDSC>, <&mmcc CAMSS_VFE1_GDSC>; reg = <0x0ca00020 0x10>, <0x0ca30000 0x100>, <0x0ca30400 0x100>, <0x0ca30800 0x100>, <0x0ca30c00 0x100>, <0x0c824000 0x1000>, <0x0ca00120 0x4>, <0x0c825000 0x1000>, <0x0ca00124 0x4>, <0x0c826000 0x1000>, <0x0ca00128 0x4>, <0x0ca31000 0x500>, <0x0ca10000 0x1000>, <0x0ca14000 0x1000>; reg-names = "csi_clk_mux", "csid0", "csid1", "csid2", "csid3", "csiphy0", "csiphy0_clk_mux", "csiphy1", "csiphy1_clk_mux", "csiphy2", "csiphy2_clk_mux", "ispif", "vfe0", "vfe1"; vdda-supply = <®_2v8>; ports { #address-cells = <1>; #size-cells = <0>; }; };