162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/media/allwinner,sun4i-a10-csi.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Allwinner A10 CMOS Sensor Interface (CSI)
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Chen-Yu Tsai <wens@csie.org>
1162306a36Sopenharmony_ci  - Maxime Ripard <mripard@kernel.org>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |-
1462306a36Sopenharmony_ci  The Allwinner A10 and later has a CMOS Sensor Interface to retrieve
1562306a36Sopenharmony_ci  frames from a parallel or BT656 sensor.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciproperties:
1862306a36Sopenharmony_ci  compatible:
1962306a36Sopenharmony_ci    oneOf:
2062306a36Sopenharmony_ci      - const: allwinner,sun4i-a10-csi1
2162306a36Sopenharmony_ci      - const: allwinner,sun7i-a20-csi0
2262306a36Sopenharmony_ci      - items:
2362306a36Sopenharmony_ci          - const: allwinner,sun7i-a20-csi1
2462306a36Sopenharmony_ci          - const: allwinner,sun4i-a10-csi1
2562306a36Sopenharmony_ci      - items:
2662306a36Sopenharmony_ci          - const: allwinner,sun8i-r40-csi0
2762306a36Sopenharmony_ci          - const: allwinner,sun7i-a20-csi0
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  reg:
3062306a36Sopenharmony_ci    maxItems: 1
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  interrupts:
3362306a36Sopenharmony_ci    maxItems: 1
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  clocks:
3662306a36Sopenharmony_ci    oneOf:
3762306a36Sopenharmony_ci      - items:
3862306a36Sopenharmony_ci          - description: The CSI interface clock
3962306a36Sopenharmony_ci          - description: The CSI DRAM clock
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci      - items:
4262306a36Sopenharmony_ci          - description: The CSI interface clock
4362306a36Sopenharmony_ci          - description: The CSI ISP clock
4462306a36Sopenharmony_ci          - description: The CSI DRAM clock
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  clock-names:
4762306a36Sopenharmony_ci    oneOf:
4862306a36Sopenharmony_ci      - items:
4962306a36Sopenharmony_ci          - const: bus
5062306a36Sopenharmony_ci          - const: ram
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci      - items:
5362306a36Sopenharmony_ci          - const: bus
5462306a36Sopenharmony_ci          - const: isp
5562306a36Sopenharmony_ci          - const: ram
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci  resets:
5862306a36Sopenharmony_ci    maxItems: 1
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci  # FIXME: This should be made required eventually once every SoC will
6162306a36Sopenharmony_ci  # have the MBUS declared.
6262306a36Sopenharmony_ci  interconnects:
6362306a36Sopenharmony_ci    maxItems: 1
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci  # FIXME: This should be made required eventually once every SoC will
6662306a36Sopenharmony_ci  # have the MBUS declared.
6762306a36Sopenharmony_ci  interconnect-names:
6862306a36Sopenharmony_ci    const: dma-mem
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci  port:
7162306a36Sopenharmony_ci    $ref: /schemas/graph.yaml#/$defs/port-base
7262306a36Sopenharmony_ci    additionalProperties: false
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci    properties:
7562306a36Sopenharmony_ci      endpoint:
7662306a36Sopenharmony_ci        $ref: video-interfaces.yaml#
7762306a36Sopenharmony_ci        unevaluatedProperties: false
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci        properties:
8062306a36Sopenharmony_ci          bus-width:
8162306a36Sopenharmony_ci            enum: [8, 16]
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci          data-active: true
8462306a36Sopenharmony_ci          hsync-active: true
8562306a36Sopenharmony_ci          pclk-sample: true
8662306a36Sopenharmony_ci          vsync-active: true
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci        required:
8962306a36Sopenharmony_ci          - bus-width
9062306a36Sopenharmony_ci          - data-active
9162306a36Sopenharmony_ci          - hsync-active
9262306a36Sopenharmony_ci          - pclk-sample
9362306a36Sopenharmony_ci          - vsync-active
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_cirequired:
9662306a36Sopenharmony_ci  - compatible
9762306a36Sopenharmony_ci  - reg
9862306a36Sopenharmony_ci  - interrupts
9962306a36Sopenharmony_ci  - clocks
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ciadditionalProperties: false
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ciexamples:
10462306a36Sopenharmony_ci  - |
10562306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
10662306a36Sopenharmony_ci    #include <dt-bindings/clock/sun7i-a20-ccu.h>
10762306a36Sopenharmony_ci    #include <dt-bindings/reset/sun4i-a10-ccu.h>
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci    csi0: csi@1c09000 {
11062306a36Sopenharmony_ci        compatible = "allwinner,sun7i-a20-csi0";
11162306a36Sopenharmony_ci        reg = <0x01c09000 0x1000>;
11262306a36Sopenharmony_ci        interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
11362306a36Sopenharmony_ci        clocks = <&ccu CLK_AHB_CSI0>, <&ccu CLK_CSI_SCLK>, <&ccu CLK_DRAM_CSI0>;
11462306a36Sopenharmony_ci        clock-names = "bus", "isp", "ram";
11562306a36Sopenharmony_ci        resets = <&ccu RST_CSI0>;
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci        port {
11862306a36Sopenharmony_ci            csi_from_ov5640: endpoint {
11962306a36Sopenharmony_ci                remote-endpoint = <&ov5640_to_csi>;
12062306a36Sopenharmony_ci                bus-width = <8>;
12162306a36Sopenharmony_ci                hsync-active = <1>; /* Active high */
12262306a36Sopenharmony_ci                vsync-active = <0>; /* Active low */
12362306a36Sopenharmony_ci                data-active = <1>;  /* Active high */
12462306a36Sopenharmony_ci                pclk-sample = <1>;  /* Rising */
12562306a36Sopenharmony_ci            };
12662306a36Sopenharmony_ci        };
12762306a36Sopenharmony_ci    };
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci...
130