Skip to content

Commit 2aedf16

Browse files
committed
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 <[email protected]>
1 parent cf6f9e3 commit 2aedf16

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
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 GPIO0 20 GPIO1
21+
22+
In some variants, the last row containing the pins 19 and 20 is
23+
not present, and the module is only providing 18 pins out of 20.
24+
25+
The following node labels can be used in devicetree:
26+
27+
- dvp_20pin_interface: the video interface that receives the video
28+
feed and use with the zephyr,camera chosen node.
29+
30+
- dvp_20pin_i2c: the I2C device of the devkit on which the camera
31+
module is instantiated.
32+
33+
- dvp_20pin_gpio: the GPIO nexus using the arducam,dvp-20pin-connector
34+
that defines the camera pins ('reset' (PEN), 'power-down' (PDN)...)
35+
36+
See <zephyr/dt-bindings/gpio/dvp-20pin-gpio.h> for pin description.
37+
38+
compatible: "arducam,dvp-20pin-connector"
39+
40+
include: [gpio-nexus.yaml, base.yaml]

dts/bindings/vendor-prefixes.txt

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ arc Synopsys, Inc. (formerly ARC International PLC)
7070
archermind ArcherMind Technology (Nanjing) Co., Ltd.
7171
arctic Arctic Sand
7272
arcx arcx Inc. / Archronix Inc.
73+
arducam Arducam
7374
arduino Arduino
7475
aries Aries Embedded GmbH
7576
arm ARM Ltd.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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 */
30+
#define DVP_20PIN_PDN 18 /**< Power Down */
31+
#define DVP_20PIN_GPIO0 19 /**< Extra GPIO pin present on some modules */
32+
#define DVP_20PIN_GPIO1 20 /**< Extra GPIO pin present on some modules */
33+
/** @} */
34+
35+
#endif /* INCLUDE_ZEPHYR_DT_BINDINGS_GPIO_DVP_20PIN_CONNECTOR_H_ */

0 commit comments

Comments
 (0)