18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/media/allwinner,sun4i-a10-csi.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Allwinner A10 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_cidescription: |- 148c2ecf20Sopenharmony_ci The Allwinner A10 and later has a CMOS Sensor Interface to retrieve 158c2ecf20Sopenharmony_ci frames from a parallel or BT656 sensor. 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciproperties: 188c2ecf20Sopenharmony_ci compatible: 198c2ecf20Sopenharmony_ci oneOf: 208c2ecf20Sopenharmony_ci - const: allwinner,sun4i-a10-csi1 218c2ecf20Sopenharmony_ci - const: allwinner,sun7i-a20-csi0 228c2ecf20Sopenharmony_ci - items: 238c2ecf20Sopenharmony_ci - const: allwinner,sun7i-a20-csi1 248c2ecf20Sopenharmony_ci - const: allwinner,sun4i-a10-csi1 258c2ecf20Sopenharmony_ci - items: 268c2ecf20Sopenharmony_ci - const: allwinner,sun8i-r40-csi0 278c2ecf20Sopenharmony_ci - const: allwinner,sun7i-a20-csi0 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci reg: 308c2ecf20Sopenharmony_ci maxItems: 1 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci interrupts: 338c2ecf20Sopenharmony_ci maxItems: 1 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci clocks: 368c2ecf20Sopenharmony_ci oneOf: 378c2ecf20Sopenharmony_ci - items: 388c2ecf20Sopenharmony_ci - description: The CSI interface clock 398c2ecf20Sopenharmony_ci - description: The CSI DRAM clock 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci - items: 428c2ecf20Sopenharmony_ci - description: The CSI interface clock 438c2ecf20Sopenharmony_ci - description: The CSI ISP clock 448c2ecf20Sopenharmony_ci - description: The CSI DRAM clock 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci clock-names: 478c2ecf20Sopenharmony_ci oneOf: 488c2ecf20Sopenharmony_ci - items: 498c2ecf20Sopenharmony_ci - const: bus 508c2ecf20Sopenharmony_ci - const: ram 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci - items: 538c2ecf20Sopenharmony_ci - const: bus 548c2ecf20Sopenharmony_ci - const: isp 558c2ecf20Sopenharmony_ci - const: ram 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci resets: 588c2ecf20Sopenharmony_ci maxItems: 1 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci # FIXME: This should be made required eventually once every SoC will 618c2ecf20Sopenharmony_ci # have the MBUS declared. 628c2ecf20Sopenharmony_ci interconnects: 638c2ecf20Sopenharmony_ci maxItems: 1 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci # FIXME: This should be made required eventually once every SoC will 668c2ecf20Sopenharmony_ci # have the MBUS declared. 678c2ecf20Sopenharmony_ci interconnect-names: 688c2ecf20Sopenharmony_ci const: dma-mem 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci # See ./video-interfaces.txt for details 718c2ecf20Sopenharmony_ci port: 728c2ecf20Sopenharmony_ci type: object 738c2ecf20Sopenharmony_ci additionalProperties: false 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci properties: 768c2ecf20Sopenharmony_ci endpoint: 778c2ecf20Sopenharmony_ci type: object 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci properties: 808c2ecf20Sopenharmony_ci bus-width: 818c2ecf20Sopenharmony_ci enum: [8, 16] 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci data-active: true 848c2ecf20Sopenharmony_ci hsync-active: true 858c2ecf20Sopenharmony_ci pclk-sample: true 868c2ecf20Sopenharmony_ci remote-endpoint: true 878c2ecf20Sopenharmony_ci vsync-active: true 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci required: 908c2ecf20Sopenharmony_ci - bus-width 918c2ecf20Sopenharmony_ci - data-active 928c2ecf20Sopenharmony_ci - hsync-active 938c2ecf20Sopenharmony_ci - pclk-sample 948c2ecf20Sopenharmony_ci - remote-endpoint 958c2ecf20Sopenharmony_ci - vsync-active 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci required: 988c2ecf20Sopenharmony_ci - endpoint 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_cirequired: 1018c2ecf20Sopenharmony_ci - compatible 1028c2ecf20Sopenharmony_ci - reg 1038c2ecf20Sopenharmony_ci - interrupts 1048c2ecf20Sopenharmony_ci - clocks 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ciadditionalProperties: false 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ciexamples: 1098c2ecf20Sopenharmony_ci - | 1108c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 1118c2ecf20Sopenharmony_ci #include <dt-bindings/clock/sun7i-a20-ccu.h> 1128c2ecf20Sopenharmony_ci #include <dt-bindings/reset/sun4i-a10-ccu.h> 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci csi0: csi@1c09000 { 1158c2ecf20Sopenharmony_ci compatible = "allwinner,sun7i-a20-csi0"; 1168c2ecf20Sopenharmony_ci reg = <0x01c09000 0x1000>; 1178c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 1188c2ecf20Sopenharmony_ci clocks = <&ccu CLK_AHB_CSI0>, <&ccu CLK_CSI_SCLK>, <&ccu CLK_DRAM_CSI0>; 1198c2ecf20Sopenharmony_ci clock-names = "bus", "isp", "ram"; 1208c2ecf20Sopenharmony_ci resets = <&ccu RST_CSI0>; 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci port { 1238c2ecf20Sopenharmony_ci csi_from_ov5640: endpoint { 1248c2ecf20Sopenharmony_ci remote-endpoint = <&ov5640_to_csi>; 1258c2ecf20Sopenharmony_ci bus-width = <8>; 1268c2ecf20Sopenharmony_ci hsync-active = <1>; /* Active high */ 1278c2ecf20Sopenharmony_ci vsync-active = <0>; /* Active low */ 1288c2ecf20Sopenharmony_ci data-active = <1>; /* Active high */ 1298c2ecf20Sopenharmony_ci pclk-sample = <1>; /* Rising */ 1308c2ecf20Sopenharmony_ci }; 1318c2ecf20Sopenharmony_ci }; 1328c2ecf20Sopenharmony_ci }; 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ci... 135