1f78ed3c5SMaxime Ripard# SPDX-License-Identifier: GPL-2.0
2f78ed3c5SMaxime Ripard%YAML 1.2
3f78ed3c5SMaxime Ripard---
4f78ed3c5SMaxime Ripard$id: http://devicetree.org/schemas/media/allwinner,sun6i-a31-csi.yaml#
5f78ed3c5SMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml#
6f78ed3c5SMaxime Ripard
7f78ed3c5SMaxime Ripardtitle: Allwinner A31 CMOS Sensor Interface (CSI) Device Tree Bindings
8f78ed3c5SMaxime Ripard
9f78ed3c5SMaxime Ripardmaintainers:
10f78ed3c5SMaxime Ripard  - Chen-Yu Tsai <wens@csie.org>
11f78ed3c5SMaxime Ripard  - Maxime Ripard <mripard@kernel.org>
12f78ed3c5SMaxime Ripard
13f78ed3c5SMaxime Ripardproperties:
14f78ed3c5SMaxime Ripard  compatible:
15f78ed3c5SMaxime Ripard    enum:
16f78ed3c5SMaxime Ripard      - allwinner,sun6i-a31-csi
17f78ed3c5SMaxime Ripard      - allwinner,sun8i-a83t-csi
18f78ed3c5SMaxime Ripard      - allwinner,sun8i-h3-csi
19f78ed3c5SMaxime Ripard      - allwinner,sun8i-v3s-csi
20f78ed3c5SMaxime Ripard      - allwinner,sun50i-a64-csi
21f78ed3c5SMaxime Ripard
22f78ed3c5SMaxime Ripard  reg:
23f78ed3c5SMaxime Ripard    maxItems: 1
24f78ed3c5SMaxime Ripard
25f78ed3c5SMaxime Ripard  interrupts:
26f78ed3c5SMaxime Ripard    maxItems: 1
27f78ed3c5SMaxime Ripard
28f78ed3c5SMaxime Ripard  clocks:
29f78ed3c5SMaxime Ripard    items:
30f78ed3c5SMaxime Ripard      - description: Bus Clock
31f78ed3c5SMaxime Ripard      - description: Module Clock
32f78ed3c5SMaxime Ripard      - description: DRAM Clock
33f78ed3c5SMaxime Ripard
34f78ed3c5SMaxime Ripard  clock-names:
35f78ed3c5SMaxime Ripard    items:
36f78ed3c5SMaxime Ripard      - const: bus
37f78ed3c5SMaxime Ripard      - const: mod
38f78ed3c5SMaxime Ripard      - const: ram
39f78ed3c5SMaxime Ripard
40f78ed3c5SMaxime Ripard  resets:
41f78ed3c5SMaxime Ripard    maxItems: 1
42f78ed3c5SMaxime Ripard
43f78ed3c5SMaxime Ripard  port:
44*066a94e2SRob Herring    $ref: /schemas/graph.yaml#/$defs/port-base
45f78ed3c5SMaxime Ripard
46f78ed3c5SMaxime Ripard    properties:
47f78ed3c5SMaxime Ripard      endpoint:
48*066a94e2SRob Herring        $ref: video-interfaces.yaml#
49*066a94e2SRob Herring        unevaluatedProperties: false
50f78ed3c5SMaxime Ripard
51f78ed3c5SMaxime Ripard        properties:
52f78ed3c5SMaxime Ripard          bus-width:
53f78ed3c5SMaxime Ripard            enum: [ 8, 10, 12, 16 ]
54f78ed3c5SMaxime Ripard
55f78ed3c5SMaxime Ripard          pclk-sample: true
56f78ed3c5SMaxime Ripard          hsync-active: true
57f78ed3c5SMaxime Ripard          vsync-active: true
58f78ed3c5SMaxime Ripard
59f78ed3c5SMaxime Ripard        required:
60f78ed3c5SMaxime Ripard          - bus-width
61f78ed3c5SMaxime Ripard
62f78ed3c5SMaxime Ripard    additionalProperties: false
63f78ed3c5SMaxime Ripard
64f78ed3c5SMaxime Ripardrequired:
65f78ed3c5SMaxime Ripard  - compatible
66f78ed3c5SMaxime Ripard  - reg
67f78ed3c5SMaxime Ripard  - interrupts
68f78ed3c5SMaxime Ripard  - clocks
69f78ed3c5SMaxime Ripard  - clock-names
70f78ed3c5SMaxime Ripard  - resets
71f78ed3c5SMaxime Ripard
72f78ed3c5SMaxime RipardadditionalProperties: false
73f78ed3c5SMaxime Ripard
74f78ed3c5SMaxime Ripardexamples:
75f78ed3c5SMaxime Ripard  - |
76f78ed3c5SMaxime Ripard    #include <dt-bindings/interrupt-controller/arm-gic.h>
77f78ed3c5SMaxime Ripard    #include <dt-bindings/clock/sun8i-v3s-ccu.h>
78f78ed3c5SMaxime Ripard    #include <dt-bindings/reset/sun8i-v3s-ccu.h>
79f78ed3c5SMaxime Ripard
80f78ed3c5SMaxime Ripard    csi1: csi@1cb4000 {
81f78ed3c5SMaxime Ripard        compatible = "allwinner,sun8i-v3s-csi";
82f78ed3c5SMaxime Ripard        reg = <0x01cb4000 0x1000>;
83f78ed3c5SMaxime Ripard        interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
84f78ed3c5SMaxime Ripard        clocks = <&ccu CLK_BUS_CSI>,
85f78ed3c5SMaxime Ripard                 <&ccu CLK_CSI1_SCLK>,
86f78ed3c5SMaxime Ripard                 <&ccu CLK_DRAM_CSI>;
87f78ed3c5SMaxime Ripard        clock-names = "bus",
88f78ed3c5SMaxime Ripard                      "mod",
89f78ed3c5SMaxime Ripard                      "ram";
90f78ed3c5SMaxime Ripard        resets = <&ccu RST_BUS_CSI>;
91f78ed3c5SMaxime Ripard
92f78ed3c5SMaxime Ripard        port {
93f78ed3c5SMaxime Ripard            /* Parallel bus endpoint */
94f78ed3c5SMaxime Ripard            csi1_ep: endpoint {
95f78ed3c5SMaxime Ripard                remote-endpoint = <&adv7611_ep>;
96f78ed3c5SMaxime Ripard                bus-width = <16>;
97f78ed3c5SMaxime Ripard
98f78ed3c5SMaxime Ripard                /*
99f78ed3c5SMaxime Ripard                 * If hsync-active/vsync-active are missing,
100f78ed3c5SMaxime Ripard                 * embedded BT.656 sync is used.
101f78ed3c5SMaxime Ripard                 */
102f78ed3c5SMaxime Ripard                 hsync-active = <0>; /* Active low */
103f78ed3c5SMaxime Ripard                 vsync-active = <0>; /* Active low */
104f78ed3c5SMaxime Ripard                 pclk-sample = <1>;  /* Rising */
105f78ed3c5SMaxime Ripard            };
106f78ed3c5SMaxime Ripard        };
107f78ed3c5SMaxime Ripard    };
108f78ed3c5SMaxime Ripard
109f78ed3c5SMaxime Ripard...
110