xref: /freebsd-src/sys/contrib/device-tree/Bindings/media/qcom,msm8916-camss.yaml (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
22eb4d8dcSEmmanuel Vadot
32eb4d8dcSEmmanuel Vadot%YAML 1.2
42eb4d8dcSEmmanuel Vadot---
5fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/media/qcom,msm8916-camss.yaml#
6fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
72eb4d8dcSEmmanuel Vadot
82eb4d8dcSEmmanuel Vadottitle: Qualcomm CAMSS ISP
92eb4d8dcSEmmanuel Vadot
102eb4d8dcSEmmanuel Vadotmaintainers:
112eb4d8dcSEmmanuel Vadot  - Robert Foss <robert.foss@linaro.org>
122eb4d8dcSEmmanuel Vadot  - Todor Tomov <todor.too@gmail.com>
132eb4d8dcSEmmanuel Vadot
142eb4d8dcSEmmanuel Vadotdescription: |
152eb4d8dcSEmmanuel Vadot  The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms
162eb4d8dcSEmmanuel Vadot
172eb4d8dcSEmmanuel Vadotproperties:
182eb4d8dcSEmmanuel Vadot  compatible:
192eb4d8dcSEmmanuel Vadot    const: qcom,msm8916-camss
202eb4d8dcSEmmanuel Vadot
212eb4d8dcSEmmanuel Vadot  clocks:
222eb4d8dcSEmmanuel Vadot    minItems: 19
232eb4d8dcSEmmanuel Vadot    maxItems: 19
242eb4d8dcSEmmanuel Vadot
252eb4d8dcSEmmanuel Vadot  clock-names:
262eb4d8dcSEmmanuel Vadot    items:
272eb4d8dcSEmmanuel Vadot      - const: top_ahb
282eb4d8dcSEmmanuel Vadot      - const: ispif_ahb
292eb4d8dcSEmmanuel Vadot      - const: csiphy0_timer
302eb4d8dcSEmmanuel Vadot      - const: csiphy1_timer
312eb4d8dcSEmmanuel Vadot      - const: csi0_ahb
322eb4d8dcSEmmanuel Vadot      - const: csi0
332eb4d8dcSEmmanuel Vadot      - const: csi0_phy
342eb4d8dcSEmmanuel Vadot      - const: csi0_pix
352eb4d8dcSEmmanuel Vadot      - const: csi0_rdi
362eb4d8dcSEmmanuel Vadot      - const: csi1_ahb
372eb4d8dcSEmmanuel Vadot      - const: csi1
382eb4d8dcSEmmanuel Vadot      - const: csi1_phy
392eb4d8dcSEmmanuel Vadot      - const: csi1_pix
402eb4d8dcSEmmanuel Vadot      - const: csi1_rdi
412eb4d8dcSEmmanuel Vadot      - const: ahb
422eb4d8dcSEmmanuel Vadot      - const: vfe0
432eb4d8dcSEmmanuel Vadot      - const: csi_vfe0
442eb4d8dcSEmmanuel Vadot      - const: vfe_ahb
452eb4d8dcSEmmanuel Vadot      - const: vfe_axi
462eb4d8dcSEmmanuel Vadot
472eb4d8dcSEmmanuel Vadot  interrupts:
482eb4d8dcSEmmanuel Vadot    minItems: 6
492eb4d8dcSEmmanuel Vadot    maxItems: 6
502eb4d8dcSEmmanuel Vadot
512eb4d8dcSEmmanuel Vadot  interrupt-names:
522eb4d8dcSEmmanuel Vadot    items:
532eb4d8dcSEmmanuel Vadot      - const: csiphy0
542eb4d8dcSEmmanuel Vadot      - const: csiphy1
552eb4d8dcSEmmanuel Vadot      - const: csid0
562eb4d8dcSEmmanuel Vadot      - const: csid1
572eb4d8dcSEmmanuel Vadot      - const: ispif
582eb4d8dcSEmmanuel Vadot      - const: vfe0
592eb4d8dcSEmmanuel Vadot
602eb4d8dcSEmmanuel Vadot  iommus:
612eb4d8dcSEmmanuel Vadot    maxItems: 1
622eb4d8dcSEmmanuel Vadot
632eb4d8dcSEmmanuel Vadot  power-domains:
642eb4d8dcSEmmanuel Vadot    items:
652eb4d8dcSEmmanuel Vadot      - description: VFE GDSC - Video Front End, Global Distributed Switch Controller.
662eb4d8dcSEmmanuel Vadot
672eb4d8dcSEmmanuel Vadot  ports:
682eb4d8dcSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
692eb4d8dcSEmmanuel Vadot
702eb4d8dcSEmmanuel Vadot    description:
712eb4d8dcSEmmanuel Vadot      CSI input ports.
722eb4d8dcSEmmanuel Vadot
732eb4d8dcSEmmanuel Vadot    properties:
742eb4d8dcSEmmanuel Vadot      port@0:
752eb4d8dcSEmmanuel Vadot        $ref: /schemas/graph.yaml#/$defs/port-base
762eb4d8dcSEmmanuel Vadot        unevaluatedProperties: false
772eb4d8dcSEmmanuel Vadot        description:
782eb4d8dcSEmmanuel Vadot          Input port for receiving CSI data.
792eb4d8dcSEmmanuel Vadot
802eb4d8dcSEmmanuel Vadot        properties:
812eb4d8dcSEmmanuel Vadot          endpoint:
822eb4d8dcSEmmanuel Vadot            $ref: video-interfaces.yaml#
832eb4d8dcSEmmanuel Vadot            unevaluatedProperties: false
842eb4d8dcSEmmanuel Vadot
852eb4d8dcSEmmanuel Vadot            properties:
862eb4d8dcSEmmanuel Vadot              data-lanes:
872eb4d8dcSEmmanuel Vadot                description:
882eb4d8dcSEmmanuel Vadot                  An array of physical data lanes indexes.
892eb4d8dcSEmmanuel Vadot                  Position of an entry determines the logical
902eb4d8dcSEmmanuel Vadot                  lane number, while the value of an entry
912eb4d8dcSEmmanuel Vadot                  indicates physical lane index. Lane swapping
922eb4d8dcSEmmanuel Vadot                  is supported. Physical lane indexes;
932eb4d8dcSEmmanuel Vadot                  0, 2, 3, 4.
942eb4d8dcSEmmanuel Vadot                minItems: 1
952eb4d8dcSEmmanuel Vadot                maxItems: 4
962eb4d8dcSEmmanuel Vadot
972eb4d8dcSEmmanuel Vadot            required:
982eb4d8dcSEmmanuel Vadot              - data-lanes
992eb4d8dcSEmmanuel Vadot
1002eb4d8dcSEmmanuel Vadot      port@1:
1012eb4d8dcSEmmanuel Vadot        $ref: /schemas/graph.yaml#/$defs/port-base
1022eb4d8dcSEmmanuel Vadot        unevaluatedProperties: false
1032eb4d8dcSEmmanuel Vadot        description:
1042eb4d8dcSEmmanuel Vadot          Input port for receiving CSI data.
1052eb4d8dcSEmmanuel Vadot
1062eb4d8dcSEmmanuel Vadot        properties:
1072eb4d8dcSEmmanuel Vadot          endpoint:
1082eb4d8dcSEmmanuel Vadot            $ref: video-interfaces.yaml#
1092eb4d8dcSEmmanuel Vadot            unevaluatedProperties: false
1102eb4d8dcSEmmanuel Vadot
1112eb4d8dcSEmmanuel Vadot            properties:
1122eb4d8dcSEmmanuel Vadot              data-lanes:
1132eb4d8dcSEmmanuel Vadot                minItems: 1
1142eb4d8dcSEmmanuel Vadot                maxItems: 4
1152eb4d8dcSEmmanuel Vadot
1162eb4d8dcSEmmanuel Vadot            required:
1172eb4d8dcSEmmanuel Vadot              - data-lanes
1182eb4d8dcSEmmanuel Vadot
1192eb4d8dcSEmmanuel Vadot  reg:
1202eb4d8dcSEmmanuel Vadot    minItems: 9
1212eb4d8dcSEmmanuel Vadot    maxItems: 9
1222eb4d8dcSEmmanuel Vadot
1232eb4d8dcSEmmanuel Vadot  reg-names:
1242eb4d8dcSEmmanuel Vadot    items:
1252eb4d8dcSEmmanuel Vadot      - const: csiphy0
1262eb4d8dcSEmmanuel Vadot      - const: csiphy0_clk_mux
1272eb4d8dcSEmmanuel Vadot      - const: csiphy1
1282eb4d8dcSEmmanuel Vadot      - const: csiphy1_clk_mux
1292eb4d8dcSEmmanuel Vadot      - const: csid0
1302eb4d8dcSEmmanuel Vadot      - const: csid1
1312eb4d8dcSEmmanuel Vadot      - const: ispif
1322eb4d8dcSEmmanuel Vadot      - const: csi_clk_mux
1332eb4d8dcSEmmanuel Vadot      - const: vfe0
1342eb4d8dcSEmmanuel Vadot
1352eb4d8dcSEmmanuel Vadot  vdda-supply:
1362eb4d8dcSEmmanuel Vadot    description:
1372eb4d8dcSEmmanuel Vadot      Definition of the regulator used as analog power supply.
1382eb4d8dcSEmmanuel Vadot
1392eb4d8dcSEmmanuel Vadotrequired:
1402eb4d8dcSEmmanuel Vadot  - clock-names
1412eb4d8dcSEmmanuel Vadot  - clocks
1422eb4d8dcSEmmanuel Vadot  - compatible
1432eb4d8dcSEmmanuel Vadot  - interrupt-names
1442eb4d8dcSEmmanuel Vadot  - interrupts
1452eb4d8dcSEmmanuel Vadot  - iommus
1462eb4d8dcSEmmanuel Vadot  - power-domains
1472eb4d8dcSEmmanuel Vadot  - reg
1482eb4d8dcSEmmanuel Vadot  - reg-names
1492eb4d8dcSEmmanuel Vadot  - vdda-supply
1502eb4d8dcSEmmanuel Vadot
1512eb4d8dcSEmmanuel VadotadditionalProperties: false
1522eb4d8dcSEmmanuel Vadot
1532eb4d8dcSEmmanuel Vadotexamples:
1542eb4d8dcSEmmanuel Vadot  - |
1552eb4d8dcSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
1562eb4d8dcSEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
1572eb4d8dcSEmmanuel Vadot
158*f126890aSEmmanuel Vadot    camss: camss@1b0ac00 {
1592eb4d8dcSEmmanuel Vadot      compatible = "qcom,msm8916-camss";
1602eb4d8dcSEmmanuel Vadot
1612eb4d8dcSEmmanuel Vadot      clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
1622eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
1632eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
1642eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
1652eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
1662eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI0_CLK>,
1672eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI0PHY_CLK>,
1682eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI0PIX_CLK>,
1692eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI0RDI_CLK>,
1702eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
1712eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI1_CLK>,
1722eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI1PHY_CLK>,
1732eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI1PIX_CLK>,
1742eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI1RDI_CLK>,
1752eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_AHB_CLK>,
1762eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_VFE0_CLK>,
1772eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
1782eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_VFE_AHB_CLK>,
1792eb4d8dcSEmmanuel Vadot        <&gcc GCC_CAMSS_VFE_AXI_CLK>;
1802eb4d8dcSEmmanuel Vadot
1812eb4d8dcSEmmanuel Vadot      clock-names = "top_ahb",
1822eb4d8dcSEmmanuel Vadot        "ispif_ahb",
1832eb4d8dcSEmmanuel Vadot        "csiphy0_timer",
1842eb4d8dcSEmmanuel Vadot        "csiphy1_timer",
1852eb4d8dcSEmmanuel Vadot        "csi0_ahb",
1862eb4d8dcSEmmanuel Vadot        "csi0",
1872eb4d8dcSEmmanuel Vadot        "csi0_phy",
1882eb4d8dcSEmmanuel Vadot        "csi0_pix",
1892eb4d8dcSEmmanuel Vadot        "csi0_rdi",
1902eb4d8dcSEmmanuel Vadot        "csi1_ahb",
1912eb4d8dcSEmmanuel Vadot        "csi1",
1922eb4d8dcSEmmanuel Vadot        "csi1_phy",
1932eb4d8dcSEmmanuel Vadot        "csi1_pix",
1942eb4d8dcSEmmanuel Vadot        "csi1_rdi",
1952eb4d8dcSEmmanuel Vadot        "ahb",
1962eb4d8dcSEmmanuel Vadot        "vfe0",
1972eb4d8dcSEmmanuel Vadot        "csi_vfe0",
1982eb4d8dcSEmmanuel Vadot        "vfe_ahb",
1992eb4d8dcSEmmanuel Vadot        "vfe_axi";
2002eb4d8dcSEmmanuel Vadot
2012eb4d8dcSEmmanuel Vadot      interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
2022eb4d8dcSEmmanuel Vadot        <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
2032eb4d8dcSEmmanuel Vadot        <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
2042eb4d8dcSEmmanuel Vadot        <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
2052eb4d8dcSEmmanuel Vadot        <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
2062eb4d8dcSEmmanuel Vadot        <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
2072eb4d8dcSEmmanuel Vadot
2082eb4d8dcSEmmanuel Vadot      interrupt-names = "csiphy0",
2092eb4d8dcSEmmanuel Vadot        "csiphy1",
2102eb4d8dcSEmmanuel Vadot        "csid0",
2112eb4d8dcSEmmanuel Vadot        "csid1",
2122eb4d8dcSEmmanuel Vadot        "ispif",
2132eb4d8dcSEmmanuel Vadot        "vfe0";
2142eb4d8dcSEmmanuel Vadot
2152eb4d8dcSEmmanuel Vadot      iommus = <&apps_iommu 3>;
2162eb4d8dcSEmmanuel Vadot
2172eb4d8dcSEmmanuel Vadot      power-domains = <&gcc VFE_GDSC>;
2182eb4d8dcSEmmanuel Vadot
2192eb4d8dcSEmmanuel Vadot      reg = <0x01b0ac00 0x200>,
2202eb4d8dcSEmmanuel Vadot        <0x01b00030 0x4>,
2212eb4d8dcSEmmanuel Vadot        <0x01b0b000 0x200>,
2222eb4d8dcSEmmanuel Vadot        <0x01b00038 0x4>,
2232eb4d8dcSEmmanuel Vadot        <0x01b08000 0x100>,
2242eb4d8dcSEmmanuel Vadot        <0x01b08400 0x100>,
2252eb4d8dcSEmmanuel Vadot        <0x01b0a000 0x500>,
2262eb4d8dcSEmmanuel Vadot        <0x01b00020 0x10>,
2272eb4d8dcSEmmanuel Vadot        <0x01b10000 0x1000>;
2282eb4d8dcSEmmanuel Vadot
2292eb4d8dcSEmmanuel Vadot      reg-names = "csiphy0",
2302eb4d8dcSEmmanuel Vadot        "csiphy0_clk_mux",
2312eb4d8dcSEmmanuel Vadot        "csiphy1",
2322eb4d8dcSEmmanuel Vadot        "csiphy1_clk_mux",
2332eb4d8dcSEmmanuel Vadot        "csid0",
2342eb4d8dcSEmmanuel Vadot        "csid1",
2352eb4d8dcSEmmanuel Vadot        "ispif",
2362eb4d8dcSEmmanuel Vadot        "csi_clk_mux",
2372eb4d8dcSEmmanuel Vadot        "vfe0";
2382eb4d8dcSEmmanuel Vadot
2392eb4d8dcSEmmanuel Vadot      vdda-supply = <&reg_2v8>;
2402eb4d8dcSEmmanuel Vadot
2412eb4d8dcSEmmanuel Vadot      ports {
2422eb4d8dcSEmmanuel Vadot        #address-cells = <1>;
2432eb4d8dcSEmmanuel Vadot        #size-cells = <0>;
2442eb4d8dcSEmmanuel Vadot      };
2452eb4d8dcSEmmanuel Vadot
2462eb4d8dcSEmmanuel Vadot    };
247