1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/media/i2c/ovti,ov5640.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: OmniVision OV5640 Image Sensor 8 9maintainers: 10 - Steve Longerbeam <slongerbeam@gmail.com> 11 12allOf: 13 - $ref: /schemas/media/video-interface-devices.yaml# 14 15properties: 16 compatible: 17 const: ovti,ov5640 18 19 reg: 20 maxItems: 1 21 22 clocks: 23 description: XCLK Input Clock 24 25 clock-names: 26 const: xclk 27 28 AVDD-supply: 29 description: Analog voltage supply, 2.8 volts 30 31 DVDD-supply: 32 description: Digital core voltage supply, 1.5 volts 33 34 DOVDD-supply: 35 description: Digital I/O voltage supply, 1.8 volts 36 37 powerdown-gpios: 38 maxItems: 1 39 description: > 40 Reference to the GPIO connected to the powerdown pin, if any. 41 42 reset-gpios: 43 maxItems: 1 44 description: > 45 Reference to the GPIO connected to the reset pin, if any. 46 47 port: 48 description: Digital Output Port 49 $ref: /schemas/graph.yaml#/$defs/port-base 50 additionalProperties: false 51 52 properties: 53 endpoint: 54 $ref: /schemas/media/video-interfaces.yaml# 55 unevaluatedProperties: false 56 57 properties: 58 clock-lanes: 59 const: 0 60 61 data-lanes: 62 minItems: 1 63 maxItems: 2 64 items: 65 enum: [1, 2] 66 67 bus-width: 68 enum: [8, 10] 69 70 data-shift: 71 enum: [0, 2] 72 73required: 74 - compatible 75 - reg 76 - clocks 77 - clock-names 78 - AVDD-supply 79 - DVDD-supply 80 - DOVDD-supply 81 - port 82 83unevaluatedProperties: false 84 85examples: 86 - | 87 #include <dt-bindings/clock/imx6qdl-clock.h> 88 #include <dt-bindings/gpio/gpio.h> 89 90 i2c { 91 #address-cells = <1>; 92 #size-cells = <0>; 93 94 camera@3c { 95 compatible = "ovti,ov5640"; 96 pinctrl-names = "default"; 97 pinctrl-0 = <&pinctrl_ov5640>; 98 reg = <0x3c>; 99 clocks = <&clks IMX6QDL_CLK_CKO>; 100 clock-names = "xclk"; 101 DOVDD-supply = <&vgen4_reg>; /* 1.8v */ 102 AVDD-supply = <&vgen3_reg>; /* 2.8v */ 103 DVDD-supply = <&vgen2_reg>; /* 1.5v */ 104 powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>; 105 reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>; 106 rotation = <180>; 107 108 port { 109 /* MIPI CSI-2 bus endpoint */ 110 ov5640_to_mipi_csi2: endpoint { 111 remote-endpoint = <&mipi_csi2_from_ov5640>; 112 clock-lanes = <0>; 113 data-lanes = <1 2>; 114 }; 115 }; 116 }; 117 }; 118 119 - | 120 i2c { 121 #address-cells = <1>; 122 #size-cells = <0>; 123 124 camera@3c { 125 compatible = "ovti,ov5640"; 126 pinctrl-names = "default"; 127 pinctrl-0 = <&pinctrl_ov5640>; 128 reg = <0x3c>; 129 clocks = <&clk_ext_camera>; 130 clock-names = "xclk"; 131 DOVDD-supply = <&vgen4_reg>; /* 1.8v */ 132 AVDD-supply = <&vgen3_reg>; /* 2.8v */ 133 DVDD-supply = <&vgen2_reg>; /* 1.5v */ 134 135 port { 136 /* Parallel bus endpoint */ 137 ov5640_to_parallel: endpoint { 138 remote-endpoint = <¶llel_from_ov5640>; 139 bus-width = <8>; 140 data-shift = <2>; /* lines 9:2 are used */ 141 hsync-active = <0>; 142 vsync-active = <0>; 143 pclk-sample = <1>; 144 }; 145 }; 146 }; 147 }; 148 149... 150