1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/media/allwinner,sun4i-a10-csi.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7*7ef62cebSEmmanuel Vadottitle: Allwinner A10 CMOS Sensor Interface (CSI) 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Chen-Yu Tsai <wens@csie.org> 11c66ec88fSEmmanuel Vadot - Maxime Ripard <mripard@kernel.org> 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadotdescription: |- 14c66ec88fSEmmanuel Vadot The Allwinner A10 and later has a CMOS Sensor Interface to retrieve 15c66ec88fSEmmanuel Vadot frames from a parallel or BT656 sensor. 16c66ec88fSEmmanuel Vadot 17c66ec88fSEmmanuel Vadotproperties: 18c66ec88fSEmmanuel Vadot compatible: 19c66ec88fSEmmanuel Vadot oneOf: 20c66ec88fSEmmanuel Vadot - const: allwinner,sun4i-a10-csi1 21c66ec88fSEmmanuel Vadot - const: allwinner,sun7i-a20-csi0 22c66ec88fSEmmanuel Vadot - items: 23c66ec88fSEmmanuel Vadot - const: allwinner,sun7i-a20-csi1 24c66ec88fSEmmanuel Vadot - const: allwinner,sun4i-a10-csi1 25c66ec88fSEmmanuel Vadot - items: 26c66ec88fSEmmanuel Vadot - const: allwinner,sun8i-r40-csi0 27c66ec88fSEmmanuel Vadot - const: allwinner,sun7i-a20-csi0 28c66ec88fSEmmanuel Vadot 29c66ec88fSEmmanuel Vadot reg: 30c66ec88fSEmmanuel Vadot maxItems: 1 31c66ec88fSEmmanuel Vadot 32c66ec88fSEmmanuel Vadot interrupts: 33c66ec88fSEmmanuel Vadot maxItems: 1 34c66ec88fSEmmanuel Vadot 35c66ec88fSEmmanuel Vadot clocks: 36c66ec88fSEmmanuel Vadot oneOf: 37c66ec88fSEmmanuel Vadot - items: 38c66ec88fSEmmanuel Vadot - description: The CSI interface clock 39c66ec88fSEmmanuel Vadot - description: The CSI DRAM clock 40c66ec88fSEmmanuel Vadot 41c66ec88fSEmmanuel Vadot - items: 42c66ec88fSEmmanuel Vadot - description: The CSI interface clock 43c66ec88fSEmmanuel Vadot - description: The CSI ISP clock 44c66ec88fSEmmanuel Vadot - description: The CSI DRAM clock 45c66ec88fSEmmanuel Vadot 46c66ec88fSEmmanuel Vadot clock-names: 47c66ec88fSEmmanuel Vadot oneOf: 48c66ec88fSEmmanuel Vadot - items: 49c66ec88fSEmmanuel Vadot - const: bus 50c66ec88fSEmmanuel Vadot - const: ram 51c66ec88fSEmmanuel Vadot 52c66ec88fSEmmanuel Vadot - items: 53c66ec88fSEmmanuel Vadot - const: bus 54c66ec88fSEmmanuel Vadot - const: isp 55c66ec88fSEmmanuel Vadot - const: ram 56c66ec88fSEmmanuel Vadot 57c66ec88fSEmmanuel Vadot resets: 58c66ec88fSEmmanuel Vadot maxItems: 1 59c66ec88fSEmmanuel Vadot 60c66ec88fSEmmanuel Vadot # FIXME: This should be made required eventually once every SoC will 61c66ec88fSEmmanuel Vadot # have the MBUS declared. 62c66ec88fSEmmanuel Vadot interconnects: 63c66ec88fSEmmanuel Vadot maxItems: 1 64c66ec88fSEmmanuel Vadot 65c66ec88fSEmmanuel Vadot # FIXME: This should be made required eventually once every SoC will 66c66ec88fSEmmanuel Vadot # have the MBUS declared. 67c66ec88fSEmmanuel Vadot interconnect-names: 68c66ec88fSEmmanuel Vadot const: dma-mem 69c66ec88fSEmmanuel Vadot 70c66ec88fSEmmanuel Vadot port: 715def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/$defs/port-base 72c66ec88fSEmmanuel Vadot additionalProperties: false 73c66ec88fSEmmanuel Vadot 74c66ec88fSEmmanuel Vadot properties: 75c66ec88fSEmmanuel Vadot endpoint: 765def4c47SEmmanuel Vadot $ref: video-interfaces.yaml# 775def4c47SEmmanuel Vadot unevaluatedProperties: false 78c66ec88fSEmmanuel Vadot 79c66ec88fSEmmanuel Vadot properties: 80c66ec88fSEmmanuel Vadot bus-width: 81c66ec88fSEmmanuel Vadot enum: [8, 16] 82c66ec88fSEmmanuel Vadot 83c66ec88fSEmmanuel Vadot data-active: true 84c66ec88fSEmmanuel Vadot hsync-active: true 85c66ec88fSEmmanuel Vadot pclk-sample: true 86c66ec88fSEmmanuel Vadot vsync-active: true 87c66ec88fSEmmanuel Vadot 88c66ec88fSEmmanuel Vadot required: 89c66ec88fSEmmanuel Vadot - bus-width 90c66ec88fSEmmanuel Vadot - data-active 91c66ec88fSEmmanuel Vadot - hsync-active 92c66ec88fSEmmanuel Vadot - pclk-sample 93c66ec88fSEmmanuel Vadot - vsync-active 94c66ec88fSEmmanuel Vadot 95c66ec88fSEmmanuel Vadotrequired: 96c66ec88fSEmmanuel Vadot - compatible 97c66ec88fSEmmanuel Vadot - reg 98c66ec88fSEmmanuel Vadot - interrupts 99c66ec88fSEmmanuel Vadot - clocks 100c66ec88fSEmmanuel Vadot 101c66ec88fSEmmanuel VadotadditionalProperties: false 102c66ec88fSEmmanuel Vadot 103c66ec88fSEmmanuel Vadotexamples: 104c66ec88fSEmmanuel Vadot - | 105c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 106c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/sun7i-a20-ccu.h> 107c66ec88fSEmmanuel Vadot #include <dt-bindings/reset/sun4i-a10-ccu.h> 108c66ec88fSEmmanuel Vadot 109c66ec88fSEmmanuel Vadot csi0: csi@1c09000 { 110c66ec88fSEmmanuel Vadot compatible = "allwinner,sun7i-a20-csi0"; 111c66ec88fSEmmanuel Vadot reg = <0x01c09000 0x1000>; 112c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 113c66ec88fSEmmanuel Vadot clocks = <&ccu CLK_AHB_CSI0>, <&ccu CLK_CSI_SCLK>, <&ccu CLK_DRAM_CSI0>; 114c66ec88fSEmmanuel Vadot clock-names = "bus", "isp", "ram"; 115c66ec88fSEmmanuel Vadot resets = <&ccu RST_CSI0>; 116c66ec88fSEmmanuel Vadot 117c66ec88fSEmmanuel Vadot port { 118c66ec88fSEmmanuel Vadot csi_from_ov5640: endpoint { 119c66ec88fSEmmanuel Vadot remote-endpoint = <&ov5640_to_csi>; 120c66ec88fSEmmanuel Vadot bus-width = <8>; 121c66ec88fSEmmanuel Vadot hsync-active = <1>; /* Active high */ 122c66ec88fSEmmanuel Vadot vsync-active = <0>; /* Active low */ 123c66ec88fSEmmanuel Vadot data-active = <1>; /* Active high */ 124c66ec88fSEmmanuel Vadot pclk-sample = <1>; /* Rising */ 125c66ec88fSEmmanuel Vadot }; 126c66ec88fSEmmanuel Vadot }; 127c66ec88fSEmmanuel Vadot }; 128c66ec88fSEmmanuel Vadot 129c66ec88fSEmmanuel Vadot... 130