xref: /linux/Documentation/devicetree/bindings/media/qcom,msm8996-camss.yaml (revision ab190665276b8fac178663753f0a745156fcc0f5)
16be3837fSRobert Foss# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
26be3837fSRobert Foss
36be3837fSRobert Foss%YAML 1.2
46be3837fSRobert Foss---
5*ab190665SRob Herring$id: http://devicetree.org/schemas/media/qcom,msm8996-camss.yaml#
6*ab190665SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
76be3837fSRobert Foss
86be3837fSRobert Fosstitle: Qualcomm CAMSS ISP
96be3837fSRobert Foss
106be3837fSRobert Fossmaintainers:
116be3837fSRobert Foss  - Robert Foss <robert.foss@linaro.org>
126be3837fSRobert Foss  - Todor Tomov <todor.too@gmail.com>
136be3837fSRobert Foss
146be3837fSRobert Fossdescription: |
156be3837fSRobert Foss  The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms
166be3837fSRobert Foss
176be3837fSRobert Fossproperties:
186be3837fSRobert Foss  compatible:
196be3837fSRobert Foss    const: qcom,msm8996-camss
206be3837fSRobert Foss
216be3837fSRobert Foss  clocks:
226be3837fSRobert Foss    minItems: 36
236be3837fSRobert Foss    maxItems: 36
246be3837fSRobert Foss
256be3837fSRobert Foss  clock-names:
266be3837fSRobert Foss    items:
276be3837fSRobert Foss      - const: top_ahb
286be3837fSRobert Foss      - const: ispif_ahb
296be3837fSRobert Foss      - const: csiphy0_timer
306be3837fSRobert Foss      - const: csiphy1_timer
316be3837fSRobert Foss      - const: csiphy2_timer
326be3837fSRobert Foss      - const: csi0_ahb
336be3837fSRobert Foss      - const: csi0
346be3837fSRobert Foss      - const: csi0_phy
356be3837fSRobert Foss      - const: csi0_pix
366be3837fSRobert Foss      - const: csi0_rdi
376be3837fSRobert Foss      - const: csi1_ahb
386be3837fSRobert Foss      - const: csi1
396be3837fSRobert Foss      - const: csi1_phy
406be3837fSRobert Foss      - const: csi1_pix
416be3837fSRobert Foss      - const: csi1_rdi
426be3837fSRobert Foss      - const: csi2_ahb
436be3837fSRobert Foss      - const: csi2
446be3837fSRobert Foss      - const: csi2_phy
456be3837fSRobert Foss      - const: csi2_pix
466be3837fSRobert Foss      - const: csi2_rdi
476be3837fSRobert Foss      - const: csi3_ahb
486be3837fSRobert Foss      - const: csi3
496be3837fSRobert Foss      - const: csi3_phy
506be3837fSRobert Foss      - const: csi3_pix
516be3837fSRobert Foss      - const: csi3_rdi
526be3837fSRobert Foss      - const: ahb
536be3837fSRobert Foss      - const: vfe0
546be3837fSRobert Foss      - const: csi_vfe0
556be3837fSRobert Foss      - const: vfe0_ahb
566be3837fSRobert Foss      - const: vfe0_stream
576be3837fSRobert Foss      - const: vfe1
586be3837fSRobert Foss      - const: csi_vfe1
596be3837fSRobert Foss      - const: vfe1_ahb
606be3837fSRobert Foss      - const: vfe1_stream
616be3837fSRobert Foss      - const: vfe_ahb
626be3837fSRobert Foss      - const: vfe_axi
636be3837fSRobert Foss
646be3837fSRobert Foss  interrupts:
656be3837fSRobert Foss    minItems: 10
666be3837fSRobert Foss    maxItems: 10
676be3837fSRobert Foss
686be3837fSRobert Foss  interrupt-names:
696be3837fSRobert Foss    items:
706be3837fSRobert Foss      - const: csiphy0
716be3837fSRobert Foss      - const: csiphy1
726be3837fSRobert Foss      - const: csiphy2
736be3837fSRobert Foss      - const: csid0
746be3837fSRobert Foss      - const: csid1
756be3837fSRobert Foss      - const: csid2
766be3837fSRobert Foss      - const: csid3
776be3837fSRobert Foss      - const: ispif
786be3837fSRobert Foss      - const: vfe0
796be3837fSRobert Foss      - const: vfe1
806be3837fSRobert Foss
816be3837fSRobert Foss  iommus:
826be3837fSRobert Foss    maxItems: 4
836be3837fSRobert Foss
846be3837fSRobert Foss  power-domains:
856be3837fSRobert Foss    items:
866be3837fSRobert Foss      - description: VFE0 GDSC - Video Front End, Global Distributed Switch Controller.
876be3837fSRobert Foss      - description: VFE1 GDSC - Video Front End, Global Distributed Switch Controller.
886be3837fSRobert Foss
896be3837fSRobert Foss  ports:
906be3837fSRobert Foss    $ref: /schemas/graph.yaml#/properties/ports
916be3837fSRobert Foss
926be3837fSRobert Foss    description:
936be3837fSRobert Foss      CSI input ports.
946be3837fSRobert Foss
956be3837fSRobert Foss    properties:
966be3837fSRobert Foss      port@0:
976be3837fSRobert Foss        $ref: /schemas/graph.yaml#/$defs/port-base
986be3837fSRobert Foss        unevaluatedProperties: false
996be3837fSRobert Foss        description:
1006be3837fSRobert Foss          Input port for receiving CSI data.
1016be3837fSRobert Foss
1026be3837fSRobert Foss        properties:
1036be3837fSRobert Foss          endpoint:
1046be3837fSRobert Foss            $ref: video-interfaces.yaml#
1056be3837fSRobert Foss            unevaluatedProperties: false
1066be3837fSRobert Foss
1076be3837fSRobert Foss            properties:
1086be3837fSRobert Foss              data-lanes:
1096be3837fSRobert Foss                description:
1106be3837fSRobert Foss                  An array of physical data lanes indexes.
1116be3837fSRobert Foss                  Position of an entry determines the logical
1126be3837fSRobert Foss                  lane number, while the value of an entry
1136be3837fSRobert Foss                  indicates physical lane index. Lane swapping
1146be3837fSRobert Foss                  is supported. Physical lane indexes are;
1156be3837fSRobert Foss                  0, 1, 2, 3
1166be3837fSRobert Foss                minItems: 1
1176be3837fSRobert Foss                maxItems: 4
1186be3837fSRobert Foss
1196be3837fSRobert Foss            required:
1206be3837fSRobert Foss              - data-lanes
1216be3837fSRobert Foss
1226be3837fSRobert Foss      port@1:
1236be3837fSRobert Foss        $ref: /schemas/graph.yaml#/$defs/port-base
1246be3837fSRobert Foss        unevaluatedProperties: false
1256be3837fSRobert Foss        description:
1266be3837fSRobert Foss          Input port for receiving CSI data.
1276be3837fSRobert Foss
1286be3837fSRobert Foss        properties:
1296be3837fSRobert Foss          endpoint:
1306be3837fSRobert Foss            $ref: video-interfaces.yaml#
1316be3837fSRobert Foss            unevaluatedProperties: false
1326be3837fSRobert Foss
1336be3837fSRobert Foss            properties:
1346be3837fSRobert Foss              data-lanes:
1356be3837fSRobert Foss                minItems: 1
1366be3837fSRobert Foss                maxItems: 4
1376be3837fSRobert Foss
1386be3837fSRobert Foss            required:
1396be3837fSRobert Foss              - data-lanes
1406be3837fSRobert Foss
1416be3837fSRobert Foss      port@2:
1426be3837fSRobert Foss        $ref: /schemas/graph.yaml#/$defs/port-base
1436be3837fSRobert Foss        unevaluatedProperties: false
1446be3837fSRobert Foss        description:
1456be3837fSRobert Foss          Input port for receiving CSI data.
1466be3837fSRobert Foss
1476be3837fSRobert Foss        properties:
1486be3837fSRobert Foss          endpoint:
1496be3837fSRobert Foss            $ref: video-interfaces.yaml#
1506be3837fSRobert Foss            unevaluatedProperties: false
1516be3837fSRobert Foss
1526be3837fSRobert Foss            properties:
1536be3837fSRobert Foss              data-lanes:
1546be3837fSRobert Foss                minItems: 1
1556be3837fSRobert Foss                maxItems: 4
1566be3837fSRobert Foss
1576be3837fSRobert Foss            required:
1586be3837fSRobert Foss              - data-lanes
1596be3837fSRobert Foss
1606be3837fSRobert Foss      port@3:
1616be3837fSRobert Foss        $ref: /schemas/graph.yaml#/$defs/port-base
1626be3837fSRobert Foss        unevaluatedProperties: false
1636be3837fSRobert Foss        description:
1646be3837fSRobert Foss          Input port for receiving CSI data.
1656be3837fSRobert Foss
1666be3837fSRobert Foss        properties:
1676be3837fSRobert Foss          endpoint:
1686be3837fSRobert Foss            $ref: video-interfaces.yaml#
1696be3837fSRobert Foss            unevaluatedProperties: false
1706be3837fSRobert Foss
1716be3837fSRobert Foss            properties:
1726be3837fSRobert Foss              data-lanes:
1736be3837fSRobert Foss                minItems: 1
1746be3837fSRobert Foss                maxItems: 4
1756be3837fSRobert Foss
1766be3837fSRobert Foss            required:
1776be3837fSRobert Foss              - data-lanes
1786be3837fSRobert Foss
1796be3837fSRobert Foss  reg:
1806be3837fSRobert Foss    minItems: 14
1816be3837fSRobert Foss    maxItems: 14
1826be3837fSRobert Foss
1836be3837fSRobert Foss  reg-names:
1846be3837fSRobert Foss    items:
1856be3837fSRobert Foss      - const: csiphy0
1866be3837fSRobert Foss      - const: csiphy0_clk_mux
1876be3837fSRobert Foss      - const: csiphy1
1886be3837fSRobert Foss      - const: csiphy1_clk_mux
1896be3837fSRobert Foss      - const: csiphy2
1906be3837fSRobert Foss      - const: csiphy2_clk_mux
1916be3837fSRobert Foss      - const: csid0
1926be3837fSRobert Foss      - const: csid1
1936be3837fSRobert Foss      - const: csid2
1946be3837fSRobert Foss      - const: csid3
1956be3837fSRobert Foss      - const: ispif
1966be3837fSRobert Foss      - const: csi_clk_mux
1976be3837fSRobert Foss      - const: vfe0
1986be3837fSRobert Foss      - const: vfe1
1996be3837fSRobert Foss
2006be3837fSRobert Foss  vdda-supply:
2016be3837fSRobert Foss    description:
2026be3837fSRobert Foss      Definition of the regulator used as analog power supply.
2036be3837fSRobert Foss
2046be3837fSRobert Fossrequired:
2056be3837fSRobert Foss  - clock-names
2066be3837fSRobert Foss  - clocks
2076be3837fSRobert Foss  - compatible
2086be3837fSRobert Foss  - interrupt-names
2096be3837fSRobert Foss  - interrupts
2106be3837fSRobert Foss  - iommus
2116be3837fSRobert Foss  - power-domains
2126be3837fSRobert Foss  - reg
2136be3837fSRobert Foss  - reg-names
2146be3837fSRobert Foss  - vdda-supply
2156be3837fSRobert Foss
2166be3837fSRobert FossadditionalProperties: false
2176be3837fSRobert Foss
2186be3837fSRobert Fossexamples:
2196be3837fSRobert Foss  - |
2206be3837fSRobert Foss    #include <dt-bindings/interrupt-controller/arm-gic.h>
2216be3837fSRobert Foss    #include <dt-bindings/clock/qcom,gcc-msm8996.h>
2226be3837fSRobert Foss    #include <dt-bindings/clock/qcom,mmcc-msm8996.h>
2236be3837fSRobert Foss
2246be3837fSRobert Foss    camss: camss@a00000 {
2256be3837fSRobert Foss      compatible = "qcom,msm8996-camss";
2266be3837fSRobert Foss
2276be3837fSRobert Foss      clocks = <&mmcc CAMSS_TOP_AHB_CLK>,
2286be3837fSRobert Foss        <&mmcc CAMSS_ISPIF_AHB_CLK>,
2296be3837fSRobert Foss        <&mmcc CAMSS_CSI0PHYTIMER_CLK>,
2306be3837fSRobert Foss        <&mmcc CAMSS_CSI1PHYTIMER_CLK>,
2316be3837fSRobert Foss        <&mmcc CAMSS_CSI2PHYTIMER_CLK>,
2326be3837fSRobert Foss        <&mmcc CAMSS_CSI0_AHB_CLK>,
2336be3837fSRobert Foss        <&mmcc CAMSS_CSI0_CLK>,
2346be3837fSRobert Foss        <&mmcc CAMSS_CSI0PHY_CLK>,
2356be3837fSRobert Foss        <&mmcc CAMSS_CSI0PIX_CLK>,
2366be3837fSRobert Foss        <&mmcc CAMSS_CSI0RDI_CLK>,
2376be3837fSRobert Foss        <&mmcc CAMSS_CSI1_AHB_CLK>,
2386be3837fSRobert Foss        <&mmcc CAMSS_CSI1_CLK>,
2396be3837fSRobert Foss        <&mmcc CAMSS_CSI1PHY_CLK>,
2406be3837fSRobert Foss        <&mmcc CAMSS_CSI1PIX_CLK>,
2416be3837fSRobert Foss        <&mmcc CAMSS_CSI1RDI_CLK>,
2426be3837fSRobert Foss        <&mmcc CAMSS_CSI2_AHB_CLK>,
2436be3837fSRobert Foss        <&mmcc CAMSS_CSI2_CLK>,
2446be3837fSRobert Foss        <&mmcc CAMSS_CSI2PHY_CLK>,
2456be3837fSRobert Foss        <&mmcc CAMSS_CSI2PIX_CLK>,
2466be3837fSRobert Foss        <&mmcc CAMSS_CSI2RDI_CLK>,
2476be3837fSRobert Foss        <&mmcc CAMSS_CSI3_AHB_CLK>,
2486be3837fSRobert Foss        <&mmcc CAMSS_CSI3_CLK>,
2496be3837fSRobert Foss        <&mmcc CAMSS_CSI3PHY_CLK>,
2506be3837fSRobert Foss        <&mmcc CAMSS_CSI3PIX_CLK>,
2516be3837fSRobert Foss        <&mmcc CAMSS_CSI3RDI_CLK>,
2526be3837fSRobert Foss        <&mmcc CAMSS_AHB_CLK>,
2536be3837fSRobert Foss        <&mmcc CAMSS_VFE0_CLK>,
2546be3837fSRobert Foss        <&mmcc CAMSS_CSI_VFE0_CLK>,
2556be3837fSRobert Foss        <&mmcc CAMSS_VFE0_AHB_CLK>,
2566be3837fSRobert Foss        <&mmcc CAMSS_VFE0_STREAM_CLK>,
2576be3837fSRobert Foss        <&mmcc CAMSS_VFE1_CLK>,
2586be3837fSRobert Foss        <&mmcc CAMSS_CSI_VFE1_CLK>,
2596be3837fSRobert Foss        <&mmcc CAMSS_VFE1_AHB_CLK>,
2606be3837fSRobert Foss        <&mmcc CAMSS_VFE1_STREAM_CLK>,
2616be3837fSRobert Foss        <&mmcc CAMSS_VFE_AHB_CLK>,
2626be3837fSRobert Foss        <&mmcc CAMSS_VFE_AXI_CLK>;
2636be3837fSRobert Foss
2646be3837fSRobert Foss      clock-names = "top_ahb",
2656be3837fSRobert Foss        "ispif_ahb",
2666be3837fSRobert Foss        "csiphy0_timer",
2676be3837fSRobert Foss        "csiphy1_timer",
2686be3837fSRobert Foss        "csiphy2_timer",
2696be3837fSRobert Foss        "csi0_ahb",
2706be3837fSRobert Foss        "csi0",
2716be3837fSRobert Foss        "csi0_phy",
2726be3837fSRobert Foss        "csi0_pix",
2736be3837fSRobert Foss        "csi0_rdi",
2746be3837fSRobert Foss        "csi1_ahb",
2756be3837fSRobert Foss        "csi1",
2766be3837fSRobert Foss        "csi1_phy",
2776be3837fSRobert Foss        "csi1_pix",
2786be3837fSRobert Foss        "csi1_rdi",
2796be3837fSRobert Foss        "csi2_ahb",
2806be3837fSRobert Foss        "csi2",
2816be3837fSRobert Foss        "csi2_phy",
2826be3837fSRobert Foss        "csi2_pix",
2836be3837fSRobert Foss        "csi2_rdi",
2846be3837fSRobert Foss        "csi3_ahb",
2856be3837fSRobert Foss        "csi3",
2866be3837fSRobert Foss        "csi3_phy",
2876be3837fSRobert Foss        "csi3_pix",
2886be3837fSRobert Foss        "csi3_rdi",
2896be3837fSRobert Foss        "ahb",
2906be3837fSRobert Foss        "vfe0",
2916be3837fSRobert Foss        "csi_vfe0",
2926be3837fSRobert Foss        "vfe0_ahb",
2936be3837fSRobert Foss        "vfe0_stream",
2946be3837fSRobert Foss        "vfe1",
2956be3837fSRobert Foss        "csi_vfe1",
2966be3837fSRobert Foss        "vfe1_ahb",
2976be3837fSRobert Foss        "vfe1_stream",
2986be3837fSRobert Foss        "vfe_ahb",
2996be3837fSRobert Foss        "vfe_axi";
3006be3837fSRobert Foss
3016be3837fSRobert Foss      interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
3026be3837fSRobert Foss        <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
3036be3837fSRobert Foss        <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>,
3046be3837fSRobert Foss        <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>,
3056be3837fSRobert Foss        <GIC_SPI 297 IRQ_TYPE_EDGE_RISING>,
3066be3837fSRobert Foss        <GIC_SPI 298 IRQ_TYPE_EDGE_RISING>,
3076be3837fSRobert Foss        <GIC_SPI 299 IRQ_TYPE_EDGE_RISING>,
3086be3837fSRobert Foss        <GIC_SPI 309 IRQ_TYPE_EDGE_RISING>,
3096be3837fSRobert Foss        <GIC_SPI 314 IRQ_TYPE_EDGE_RISING>,
3106be3837fSRobert Foss        <GIC_SPI 315 IRQ_TYPE_EDGE_RISING>;
3116be3837fSRobert Foss
3126be3837fSRobert Foss      interrupt-names = "csiphy0",
3136be3837fSRobert Foss        "csiphy1",
3146be3837fSRobert Foss        "csiphy2",
3156be3837fSRobert Foss        "csid0",
3166be3837fSRobert Foss        "csid1",
3176be3837fSRobert Foss        "csid2",
3186be3837fSRobert Foss        "csid3",
3196be3837fSRobert Foss        "ispif",
3206be3837fSRobert Foss        "vfe0",
3216be3837fSRobert Foss        "vfe1";
3226be3837fSRobert Foss
3236be3837fSRobert Foss      iommus = <&vfe_smmu 0>,
3246be3837fSRobert Foss         <&vfe_smmu 1>,
3256be3837fSRobert Foss         <&vfe_smmu 2>,
3266be3837fSRobert Foss         <&vfe_smmu 3>;
3276be3837fSRobert Foss
3286be3837fSRobert Foss      power-domains = <&mmcc VFE0_GDSC>,
3296be3837fSRobert Foss        <&mmcc VFE1_GDSC>;
3306be3837fSRobert Foss
3316be3837fSRobert Foss      reg = <0x00a34000 0x1000>,
3326be3837fSRobert Foss        <0x00a00030 0x4>,
3336be3837fSRobert Foss        <0x00a35000 0x1000>,
3346be3837fSRobert Foss        <0x00a00038 0x4>,
3356be3837fSRobert Foss        <0x00a36000 0x1000>,
3366be3837fSRobert Foss        <0x00a00040 0x4>,
3376be3837fSRobert Foss        <0x00a30000 0x100>,
3386be3837fSRobert Foss        <0x00a30400 0x100>,
3396be3837fSRobert Foss        <0x00a30800 0x100>,
3406be3837fSRobert Foss        <0x00a30c00 0x100>,
3416be3837fSRobert Foss        <0x00a31000 0x500>,
3426be3837fSRobert Foss        <0x00a00020 0x10>,
3436be3837fSRobert Foss        <0x00a10000 0x1000>,
3446be3837fSRobert Foss        <0x00a14000 0x1000>;
3456be3837fSRobert Foss
3466be3837fSRobert Foss      reg-names = "csiphy0",
3476be3837fSRobert Foss        "csiphy0_clk_mux",
3486be3837fSRobert Foss        "csiphy1",
3496be3837fSRobert Foss        "csiphy1_clk_mux",
3506be3837fSRobert Foss        "csiphy2",
3516be3837fSRobert Foss        "csiphy2_clk_mux",
3526be3837fSRobert Foss        "csid0",
3536be3837fSRobert Foss        "csid1",
3546be3837fSRobert Foss        "csid2",
3556be3837fSRobert Foss        "csid3",
3566be3837fSRobert Foss        "ispif",
3576be3837fSRobert Foss        "csi_clk_mux",
3586be3837fSRobert Foss        "vfe0",
3596be3837fSRobert Foss        "vfe1";
3606be3837fSRobert Foss
3616be3837fSRobert Foss      vdda-supply = <&reg_2v8>;
3626be3837fSRobert Foss
3636be3837fSRobert Foss      ports {
3646be3837fSRobert Foss        #address-cells = <1>;
3656be3837fSRobert Foss        #size-cells = <0>;
3666be3837fSRobert Foss      };
3676be3837fSRobert Foss    };
368