18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/media/allwinner,sun6i-a31-csi.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Allwinner A31 CMOS Sensor Interface (CSI) Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Chen-Yu Tsai <wens@csie.org>
118c2ecf20Sopenharmony_ci  - Maxime Ripard <mripard@kernel.org>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ciproperties:
148c2ecf20Sopenharmony_ci  compatible:
158c2ecf20Sopenharmony_ci    enum:
168c2ecf20Sopenharmony_ci      - allwinner,sun6i-a31-csi
178c2ecf20Sopenharmony_ci      - allwinner,sun8i-a83t-csi
188c2ecf20Sopenharmony_ci      - allwinner,sun8i-h3-csi
198c2ecf20Sopenharmony_ci      - allwinner,sun8i-v3s-csi
208c2ecf20Sopenharmony_ci      - allwinner,sun50i-a64-csi
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci  reg:
238c2ecf20Sopenharmony_ci    maxItems: 1
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci  interrupts:
268c2ecf20Sopenharmony_ci    maxItems: 1
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci  clocks:
298c2ecf20Sopenharmony_ci    items:
308c2ecf20Sopenharmony_ci      - description: Bus Clock
318c2ecf20Sopenharmony_ci      - description: Module Clock
328c2ecf20Sopenharmony_ci      - description: DRAM Clock
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci  clock-names:
358c2ecf20Sopenharmony_ci    items:
368c2ecf20Sopenharmony_ci      - const: bus
378c2ecf20Sopenharmony_ci      - const: mod
388c2ecf20Sopenharmony_ci      - const: ram
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci  resets:
418c2ecf20Sopenharmony_ci    maxItems: 1
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci  # See ./video-interfaces.txt for details
448c2ecf20Sopenharmony_ci  port:
458c2ecf20Sopenharmony_ci    type: object
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci    properties:
488c2ecf20Sopenharmony_ci      endpoint:
498c2ecf20Sopenharmony_ci        type: object
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci        properties:
528c2ecf20Sopenharmony_ci          remote-endpoint: true
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci          bus-width:
558c2ecf20Sopenharmony_ci            enum: [ 8, 10, 12, 16 ]
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci          pclk-sample: true
588c2ecf20Sopenharmony_ci          hsync-active: true
598c2ecf20Sopenharmony_ci          vsync-active: true
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci        required:
628c2ecf20Sopenharmony_ci          - bus-width
638c2ecf20Sopenharmony_ci          - remote-endpoint
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci    required:
668c2ecf20Sopenharmony_ci      - endpoint
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci    additionalProperties: false
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_cirequired:
718c2ecf20Sopenharmony_ci  - compatible
728c2ecf20Sopenharmony_ci  - reg
738c2ecf20Sopenharmony_ci  - interrupts
748c2ecf20Sopenharmony_ci  - clocks
758c2ecf20Sopenharmony_ci  - clock-names
768c2ecf20Sopenharmony_ci  - resets
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ciadditionalProperties: false
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ciexamples:
818c2ecf20Sopenharmony_ci  - |
828c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
838c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/sun8i-v3s-ccu.h>
848c2ecf20Sopenharmony_ci    #include <dt-bindings/reset/sun8i-v3s-ccu.h>
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci    csi1: csi@1cb4000 {
878c2ecf20Sopenharmony_ci        compatible = "allwinner,sun8i-v3s-csi";
888c2ecf20Sopenharmony_ci        reg = <0x01cb4000 0x1000>;
898c2ecf20Sopenharmony_ci        interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
908c2ecf20Sopenharmony_ci        clocks = <&ccu CLK_BUS_CSI>,
918c2ecf20Sopenharmony_ci                 <&ccu CLK_CSI1_SCLK>,
928c2ecf20Sopenharmony_ci                 <&ccu CLK_DRAM_CSI>;
938c2ecf20Sopenharmony_ci        clock-names = "bus",
948c2ecf20Sopenharmony_ci                      "mod",
958c2ecf20Sopenharmony_ci                      "ram";
968c2ecf20Sopenharmony_ci        resets = <&ccu RST_BUS_CSI>;
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci        port {
998c2ecf20Sopenharmony_ci            /* Parallel bus endpoint */
1008c2ecf20Sopenharmony_ci            csi1_ep: endpoint {
1018c2ecf20Sopenharmony_ci                remote-endpoint = <&adv7611_ep>;
1028c2ecf20Sopenharmony_ci                bus-width = <16>;
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci                /*
1058c2ecf20Sopenharmony_ci                 * If hsync-active/vsync-active are missing,
1068c2ecf20Sopenharmony_ci                 * embedded BT.656 sync is used.
1078c2ecf20Sopenharmony_ci                 */
1088c2ecf20Sopenharmony_ci                 hsync-active = <0>; /* Active low */
1098c2ecf20Sopenharmony_ci                 vsync-active = <0>; /* Active low */
1108c2ecf20Sopenharmony_ci                 pclk-sample = <1>;  /* Rising */
1118c2ecf20Sopenharmony_ci            };
1128c2ecf20Sopenharmony_ci        };
1138c2ecf20Sopenharmony_ci    };
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci...
116