Skip to content

Commit c1716d8

Browse files
committedApr 26, 2025
dts: bindings: gpio: add arducam 20-pin camera connector
Add the 20-pin camera connector used by at least Arducam, Waveshare, Olimex, Arduino, NXP, ST, Adafruit that connects image sensor module boards and devkits. Signed-off-by: Josuah Demangeon <me@josuah.net>
1 parent 9603a8c commit c1716d8

File tree

2 files changed

+80
-0
lines changed

2 files changed

+80
-0
lines changed
 
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Copyright 2025 tinyVision.ai Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
description: |
5+
GPIO pins exposed on ArduCam 20-pin header camera connector,
6+
originally designed to connect Arducam modules to Arduino Giga R1,
7+
but further used by other vendors of camera and devkits.
8+
9+
The connector layout is depicted below:
10+
11+
1 3V3 2 GND
12+
3 SCL 4 SDA
13+
5 VS 6 HS
14+
7 PCLK 8 XCLK
15+
9 D7 10 D6
16+
11 D5 12 D4
17+
13 D3 14 D2
18+
15 D1 16 D0
19+
17 PEN 18 PDN
20+
19 PEN 20 PDN
21+
22+
In many variants, the last row containing the pins 19 and 20 is
23+
not present, and the pins 17 and 18 are used for the same purpose
24+
instead.
25+
26+
The following node labels can be used for use in shields:
27+
28+
- dvp_20pin_interface: the video interface that receives the video
29+
feed and use with the zephyr,camera chosen node.
30+
31+
- dvp_20pin_ep_in: video endpoint of the devkit receiving the video
32+
feed (see video-interfaces.yaml).
33+
34+
- dvp_20pin_ep_out: video endpoint of the camera module to interconnect
35+
with this endpoint (see video-interfaces.yaml).
36+
37+
- dvp_20pin_i2c: the I2C device of the devkit on which the camera
38+
module is instanciated.
39+
40+
- dvp_20pin_gpio: the gpio nexus using the arducam,dvp-20pin-connector
41+
that defines the camera 'reset' pin, 'power-down' pin, etc.
42+
43+
See <zephyr/dt-bindings/gpio/dvp-20pin-gpio.h> for pin description.
44+
45+
compatible: "arducam,dvp-20pin-connector"
46+
47+
include: [gpio-nexus.yaml, base.yaml]
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright (c) 2025 tinyVision.ai Inc.
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
#ifndef INCLUDE_ZEPHYR_DT_BINDINGS_GPIO_DVP_20PIN_CONNECTOR_H_
6+
#define INCLUDE_ZEPHYR_DT_BINDINGS_GPIO_DVP_20PIN_CONNECTOR_H_
7+
8+
/** Pin number mask (0..20). */
9+
#define DVP_20PIN_MASK 0xff
10+
11+
/**
12+
* @name Arducam DVP 20-pin or 18-pin connector pinout
13+
* @{
14+
*/
15+
#define DVP_20PIN_SCL 3 /**< I2C pin */
16+
#define DVP_20PIN_SDA 4 /**< I2C pin */
17+
#define DVP_20PIN_VS 5 /**< Vertical sync */
18+
#define DVP_20PIN_HS 6 /**< Horizontal sync */
19+
#define DVP_20PIN_PCLK 7 /**< Pixel clock used to transmit the data */
20+
#define DVP_20PIN_XCLK 8 /**< System clock often needed for I2C communication */
21+
#define DVP_20PIN_D7 9 /**< Parallel port data */
22+
#define DVP_20PIN_D6 10 /**< Parallel port data */
23+
#define DVP_20PIN_D5 11 /**< Parallel port data */
24+
#define DVP_20PIN_D4 12 /**< Parallel port data */
25+
#define DVP_20PIN_D3 13 /**< Parallel port data */
26+
#define DVP_20PIN_D2 14 /**< Parallel port data */
27+
#define DVP_20PIN_D1 15 /**< Parallel port data */
28+
#define DVP_20PIN_D0 16 /**< Parallel port data */
29+
#define DVP_20PIN_PEN 17 /**< Power Enable, typicaly shorted with pin 19 */
30+
#define DVP_20PIN_PDN 18 /**< Power Down, typicaly shorted with pin 20 */
31+
/** @} */
32+
33+
#endif /* INCLUDE_ZEPHYR_DT_BINDINGS_GPIO_DVP_20PIN_CONNECTOR_H_ */

0 commit comments

Comments
 (0)