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,sdm845-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
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciproperties:
1762306a36Sopenharmony_ci  compatible:
1862306a36Sopenharmony_ci    const: qcom,sdm845-camss
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci  clocks:
2162306a36Sopenharmony_ci    minItems: 36
2262306a36Sopenharmony_ci    maxItems: 36
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  clock-names:
2562306a36Sopenharmony_ci    items:
2662306a36Sopenharmony_ci      - const: camnoc_axi
2762306a36Sopenharmony_ci      - const: cpas_ahb
2862306a36Sopenharmony_ci      - const: cphy_rx_src
2962306a36Sopenharmony_ci      - const: csi0
3062306a36Sopenharmony_ci      - const: csi0_src
3162306a36Sopenharmony_ci      - const: csi1
3262306a36Sopenharmony_ci      - const: csi1_src
3362306a36Sopenharmony_ci      - const: csi2
3462306a36Sopenharmony_ci      - const: csi2_src
3562306a36Sopenharmony_ci      - const: csiphy0
3662306a36Sopenharmony_ci      - const: csiphy0_timer
3762306a36Sopenharmony_ci      - const: csiphy0_timer_src
3862306a36Sopenharmony_ci      - const: csiphy1
3962306a36Sopenharmony_ci      - const: csiphy1_timer
4062306a36Sopenharmony_ci      - const: csiphy1_timer_src
4162306a36Sopenharmony_ci      - const: csiphy2
4262306a36Sopenharmony_ci      - const: csiphy2_timer
4362306a36Sopenharmony_ci      - const: csiphy2_timer_src
4462306a36Sopenharmony_ci      - const: csiphy3
4562306a36Sopenharmony_ci      - const: csiphy3_timer
4662306a36Sopenharmony_ci      - const: csiphy3_timer_src
4762306a36Sopenharmony_ci      - const: gcc_camera_ahb
4862306a36Sopenharmony_ci      - const: gcc_camera_axi
4962306a36Sopenharmony_ci      - const: slow_ahb_src
5062306a36Sopenharmony_ci      - const: soc_ahb
5162306a36Sopenharmony_ci      - const: vfe0_axi
5262306a36Sopenharmony_ci      - const: vfe0
5362306a36Sopenharmony_ci      - const: vfe0_cphy_rx
5462306a36Sopenharmony_ci      - const: vfe0_src
5562306a36Sopenharmony_ci      - const: vfe1_axi
5662306a36Sopenharmony_ci      - const: vfe1
5762306a36Sopenharmony_ci      - const: vfe1_cphy_rx
5862306a36Sopenharmony_ci      - const: vfe1_src
5962306a36Sopenharmony_ci      - const: vfe_lite
6062306a36Sopenharmony_ci      - const: vfe_lite_cphy_rx
6162306a36Sopenharmony_ci      - const: vfe_lite_src
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci  interrupts:
6462306a36Sopenharmony_ci    minItems: 10
6562306a36Sopenharmony_ci    maxItems: 10
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci  interrupt-names:
6862306a36Sopenharmony_ci    items:
6962306a36Sopenharmony_ci      - const: csid0
7062306a36Sopenharmony_ci      - const: csid1
7162306a36Sopenharmony_ci      - const: csid2
7262306a36Sopenharmony_ci      - const: csiphy0
7362306a36Sopenharmony_ci      - const: csiphy1
7462306a36Sopenharmony_ci      - const: csiphy2
7562306a36Sopenharmony_ci      - const: csiphy3
7662306a36Sopenharmony_ci      - const: vfe0
7762306a36Sopenharmony_ci      - const: vfe1
7862306a36Sopenharmony_ci      - const: vfe_lite
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci  iommus:
8162306a36Sopenharmony_ci    maxItems: 4
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci  power-domains:
8462306a36Sopenharmony_ci    items:
8562306a36Sopenharmony_ci      - description: IFE0 GDSC - Image Front End, Global Distributed Switch Controller.
8662306a36Sopenharmony_ci      - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller.
8762306a36Sopenharmony_ci      - description: Titan GDSC - Titan ISP Block, 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                minItems: 1
11062306a36Sopenharmony_ci                maxItems: 4
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci            required:
11362306a36Sopenharmony_ci              - data-lanes
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci      port@1:
11662306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/$defs/port-base
11762306a36Sopenharmony_ci        unevaluatedProperties: false
11862306a36Sopenharmony_ci        description:
11962306a36Sopenharmony_ci          Input port for receiving CSI data.
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci        properties:
12262306a36Sopenharmony_ci          endpoint:
12362306a36Sopenharmony_ci            $ref: video-interfaces.yaml#
12462306a36Sopenharmony_ci            unevaluatedProperties: false
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci            properties:
12762306a36Sopenharmony_ci              data-lanes:
12862306a36Sopenharmony_ci                minItems: 1
12962306a36Sopenharmony_ci                maxItems: 4
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci            required:
13262306a36Sopenharmony_ci              - data-lanes
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci      port@2:
13562306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/$defs/port-base
13662306a36Sopenharmony_ci        unevaluatedProperties: false
13762306a36Sopenharmony_ci        description:
13862306a36Sopenharmony_ci          Input port for receiving CSI data.
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci        properties:
14162306a36Sopenharmony_ci          endpoint:
14262306a36Sopenharmony_ci            $ref: video-interfaces.yaml#
14362306a36Sopenharmony_ci            unevaluatedProperties: false
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci            properties:
14662306a36Sopenharmony_ci              data-lanes:
14762306a36Sopenharmony_ci                minItems: 1
14862306a36Sopenharmony_ci                maxItems: 4
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci            required:
15162306a36Sopenharmony_ci              - data-lanes
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci      port@3:
15462306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/$defs/port-base
15562306a36Sopenharmony_ci        unevaluatedProperties: false
15662306a36Sopenharmony_ci        description:
15762306a36Sopenharmony_ci          Input port for receiving CSI data.
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci        properties:
16062306a36Sopenharmony_ci          endpoint:
16162306a36Sopenharmony_ci            $ref: video-interfaces.yaml#
16262306a36Sopenharmony_ci            unevaluatedProperties: false
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci            properties:
16562306a36Sopenharmony_ci              data-lanes:
16662306a36Sopenharmony_ci                minItems: 1
16762306a36Sopenharmony_ci                maxItems: 4
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci            required:
17062306a36Sopenharmony_ci              - data-lanes
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci  reg:
17362306a36Sopenharmony_ci    minItems: 10
17462306a36Sopenharmony_ci    maxItems: 10
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci  reg-names:
17762306a36Sopenharmony_ci    items:
17862306a36Sopenharmony_ci      - const: csid0
17962306a36Sopenharmony_ci      - const: csid1
18062306a36Sopenharmony_ci      - const: csid2
18162306a36Sopenharmony_ci      - const: csiphy0
18262306a36Sopenharmony_ci      - const: csiphy1
18362306a36Sopenharmony_ci      - const: csiphy2
18462306a36Sopenharmony_ci      - const: csiphy3
18562306a36Sopenharmony_ci      - const: vfe0
18662306a36Sopenharmony_ci      - const: vfe1
18762306a36Sopenharmony_ci      - const: vfe_lite
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci  vdda-phy-supply:
19062306a36Sopenharmony_ci    description:
19162306a36Sopenharmony_ci      Phandle to a regulator supply to PHY core block.
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ci  vdda-pll-supply:
19462306a36Sopenharmony_ci    description:
19562306a36Sopenharmony_ci      Phandle to 1.8V regulator supply to PHY refclk pll block.
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_cirequired:
19862306a36Sopenharmony_ci  - clock-names
19962306a36Sopenharmony_ci  - clocks
20062306a36Sopenharmony_ci  - compatible
20162306a36Sopenharmony_ci  - interrupt-names
20262306a36Sopenharmony_ci  - interrupts
20362306a36Sopenharmony_ci  - iommus
20462306a36Sopenharmony_ci  - power-domains
20562306a36Sopenharmony_ci  - reg
20662306a36Sopenharmony_ci  - reg-names
20762306a36Sopenharmony_ci  - vdda-phy-supply
20862306a36Sopenharmony_ci  - vdda-pll-supply
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ciadditionalProperties: false
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ciexamples:
21362306a36Sopenharmony_ci  - |
21462306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
21562306a36Sopenharmony_ci    #include <dt-bindings/clock/qcom,camcc-sdm845.h>
21662306a36Sopenharmony_ci    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci    soc {
21962306a36Sopenharmony_ci      #address-cells = <2>;
22062306a36Sopenharmony_ci      #size-cells = <2>;
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci      camss: camss@acb3000 {
22362306a36Sopenharmony_ci        compatible = "qcom,sdm845-camss";
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci        clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
22662306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
22762306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
22862306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_0_CSID_CLK>,
22962306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_0_CSID_CLK_SRC>,
23062306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_1_CSID_CLK>,
23162306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_1_CSID_CLK_SRC>,
23262306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_LITE_CSID_CLK>,
23362306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_LITE_CSID_CLK_SRC>,
23462306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSIPHY0_CLK>,
23562306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSI0PHYTIMER_CLK>,
23662306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSI0PHYTIMER_CLK_SRC>,
23762306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSIPHY1_CLK>,
23862306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSI1PHYTIMER_CLK>,
23962306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSI1PHYTIMER_CLK_SRC>,
24062306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSIPHY2_CLK>,
24162306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSI2PHYTIMER_CLK>,
24262306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSI2PHYTIMER_CLK_SRC>,
24362306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSIPHY3_CLK>,
24462306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSI3PHYTIMER_CLK>,
24562306a36Sopenharmony_ci          <&clock_camcc CAM_CC_CSI3PHYTIMER_CLK_SRC>,
24662306a36Sopenharmony_ci          <&gcc GCC_CAMERA_AHB_CLK>,
24762306a36Sopenharmony_ci          <&gcc GCC_CAMERA_AXI_CLK>,
24862306a36Sopenharmony_ci          <&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
24962306a36Sopenharmony_ci          <&clock_camcc CAM_CC_SOC_AHB_CLK>,
25062306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_0_AXI_CLK>,
25162306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_0_CLK>,
25262306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_0_CPHY_RX_CLK>,
25362306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_0_CLK_SRC>,
25462306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_1_AXI_CLK>,
25562306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_1_CLK>,
25662306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_1_CPHY_RX_CLK>,
25762306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_1_CLK_SRC>,
25862306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_LITE_CLK>,
25962306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>,
26062306a36Sopenharmony_ci          <&clock_camcc CAM_CC_IFE_LITE_CLK_SRC>;
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_ci        clock-names = "camnoc_axi",
26362306a36Sopenharmony_ci          "cpas_ahb",
26462306a36Sopenharmony_ci          "cphy_rx_src",
26562306a36Sopenharmony_ci          "csi0",
26662306a36Sopenharmony_ci          "csi0_src",
26762306a36Sopenharmony_ci          "csi1",
26862306a36Sopenharmony_ci          "csi1_src",
26962306a36Sopenharmony_ci          "csi2",
27062306a36Sopenharmony_ci          "csi2_src",
27162306a36Sopenharmony_ci          "csiphy0",
27262306a36Sopenharmony_ci          "csiphy0_timer",
27362306a36Sopenharmony_ci          "csiphy0_timer_src",
27462306a36Sopenharmony_ci          "csiphy1",
27562306a36Sopenharmony_ci          "csiphy1_timer",
27662306a36Sopenharmony_ci          "csiphy1_timer_src",
27762306a36Sopenharmony_ci          "csiphy2",
27862306a36Sopenharmony_ci          "csiphy2_timer",
27962306a36Sopenharmony_ci          "csiphy2_timer_src",
28062306a36Sopenharmony_ci          "csiphy3",
28162306a36Sopenharmony_ci          "csiphy3_timer",
28262306a36Sopenharmony_ci          "csiphy3_timer_src",
28362306a36Sopenharmony_ci          "gcc_camera_ahb",
28462306a36Sopenharmony_ci          "gcc_camera_axi",
28562306a36Sopenharmony_ci          "slow_ahb_src",
28662306a36Sopenharmony_ci          "soc_ahb",
28762306a36Sopenharmony_ci          "vfe0_axi",
28862306a36Sopenharmony_ci          "vfe0",
28962306a36Sopenharmony_ci          "vfe0_cphy_rx",
29062306a36Sopenharmony_ci          "vfe0_src",
29162306a36Sopenharmony_ci          "vfe1_axi",
29262306a36Sopenharmony_ci          "vfe1",
29362306a36Sopenharmony_ci          "vfe1_cphy_rx",
29462306a36Sopenharmony_ci          "vfe1_src",
29562306a36Sopenharmony_ci          "vfe_lite",
29662306a36Sopenharmony_ci          "vfe_lite_cphy_rx",
29762306a36Sopenharmony_ci          "vfe_lite_src";
29862306a36Sopenharmony_ci
29962306a36Sopenharmony_ci        interrupts = <GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>,
30062306a36Sopenharmony_ci          <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>,
30162306a36Sopenharmony_ci          <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>,
30262306a36Sopenharmony_ci          <GIC_SPI 477 IRQ_TYPE_LEVEL_HIGH>,
30362306a36Sopenharmony_ci          <GIC_SPI 478 IRQ_TYPE_LEVEL_HIGH>,
30462306a36Sopenharmony_ci          <GIC_SPI 479 IRQ_TYPE_LEVEL_HIGH>,
30562306a36Sopenharmony_ci          <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>,
30662306a36Sopenharmony_ci          <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>,
30762306a36Sopenharmony_ci          <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>,
30862306a36Sopenharmony_ci          <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>;
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_ci        interrupt-names = "csid0",
31162306a36Sopenharmony_ci          "csid1",
31262306a36Sopenharmony_ci          "csid2",
31362306a36Sopenharmony_ci          "csiphy0",
31462306a36Sopenharmony_ci          "csiphy1",
31562306a36Sopenharmony_ci          "csiphy2",
31662306a36Sopenharmony_ci          "csiphy3",
31762306a36Sopenharmony_ci          "vfe0",
31862306a36Sopenharmony_ci          "vfe1",
31962306a36Sopenharmony_ci          "vfe_lite";
32062306a36Sopenharmony_ci
32162306a36Sopenharmony_ci        iommus = <&apps_smmu 0x0808 0x0>,
32262306a36Sopenharmony_ci          <&apps_smmu 0x0810 0x8>,
32362306a36Sopenharmony_ci          <&apps_smmu 0x0c08 0x0>,
32462306a36Sopenharmony_ci          <&apps_smmu 0x0c10 0x8>;
32562306a36Sopenharmony_ci
32662306a36Sopenharmony_ci        power-domains = <&clock_camcc IFE_0_GDSC>,
32762306a36Sopenharmony_ci          <&clock_camcc IFE_1_GDSC>,
32862306a36Sopenharmony_ci          <&clock_camcc TITAN_TOP_GDSC>;
32962306a36Sopenharmony_ci
33062306a36Sopenharmony_ci        reg = <0 0xacb3000 0 0x1000>,
33162306a36Sopenharmony_ci          <0 0xacba000 0 0x1000>,
33262306a36Sopenharmony_ci          <0 0xacc8000 0 0x1000>,
33362306a36Sopenharmony_ci          <0 0xac65000 0 0x1000>,
33462306a36Sopenharmony_ci          <0 0xac66000 0 0x1000>,
33562306a36Sopenharmony_ci          <0 0xac67000 0 0x1000>,
33662306a36Sopenharmony_ci          <0 0xac68000 0 0x1000>,
33762306a36Sopenharmony_ci          <0 0xacaf000 0 0x4000>,
33862306a36Sopenharmony_ci          <0 0xacb6000 0 0x4000>,
33962306a36Sopenharmony_ci          <0 0xacc4000 0 0x4000>;
34062306a36Sopenharmony_ci
34162306a36Sopenharmony_ci        reg-names = "csid0",
34262306a36Sopenharmony_ci          "csid1",
34362306a36Sopenharmony_ci          "csid2",
34462306a36Sopenharmony_ci          "csiphy0",
34562306a36Sopenharmony_ci          "csiphy1",
34662306a36Sopenharmony_ci          "csiphy2",
34762306a36Sopenharmony_ci          "csiphy3",
34862306a36Sopenharmony_ci          "vfe0",
34962306a36Sopenharmony_ci          "vfe1",
35062306a36Sopenharmony_ci          "vfe_lite";
35162306a36Sopenharmony_ci
35262306a36Sopenharmony_ci        vdda-phy-supply = <&vreg_l1a_0p875>;
35362306a36Sopenharmony_ci        vdda-pll-supply = <&vreg_l26a_1p2>;
35462306a36Sopenharmony_ci
35562306a36Sopenharmony_ci        ports {
35662306a36Sopenharmony_ci          #address-cells = <1>;
35762306a36Sopenharmony_ci          #size-cells = <0>;
35862306a36Sopenharmony_ci        };
35962306a36Sopenharmony_ci      };
36062306a36Sopenharmony_ci    };
361