Skip to content

Commit a1e231f

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 <me@josuah.net>
1 parent cf6f9e3 commit a1e231f

File tree

3 files changed

+75
-0
lines changed

3 files changed

+75
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Copyright 2025 tinyVision.ai Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
title: ArduCam 20-pin header camera connector.
5+
6+
description: |
7+
GPIO pins exposed on an ArduCam 20-pin header for camera modules.
8+
Originally designed to connect Arducam modules to Arduino Giga R1,
9+
but further used by other vendors of camera modules and devkits.
10+
11+
The connector layout is depicted below:
12+
13+
1 3V3 2 GND
14+
3 SCL 4 SDA
15+
5 VS 6 HS
16+
7 PCLK 8 XCLK
17+
9 D7 10 D6
18+
11 D5 12 D4
19+
13 D3 14 D2
20+
15 D1 16 D0
21+
17 PEN 18 PDN
22+
19 GPIO0 20 GPIO1
23+
24+
In some variants, the last row containing the pins 19 and 20 is
25+
not present, and the module is only providing 18 pins out of 20.
26+
27+
The following node labels can be used in devicetree:
28+
29+
- dvp_20pin_interface: the video interface that receives the video
30+
feed and use with the zephyr,camera chosen node.
31+
32+
- dvp_20pin_i2c: the I2C device of the devkit on which the camera
33+
module is instantiated.
34+
35+
- dvp_20pin_connector: the GPIO nexus using the arducam,dvp-20pin-connector
36+
that defines the camera pins ('reset' (PEN), 'power-down' (PDN)...)
37+
38+
See <zephyr/dt-bindings/gpio/dvp-20pin-connector.h> for pin description.
39+
40+
compatible: "arducam,dvp-20pin-connector"
41+
42+
include: [gpio-nexus.yaml, base.yaml]

dts/bindings/vendor-prefixes.txt

Lines changed: 1 addition & 0 deletions
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.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+
/**
9+
* @name Arducam DVP 20-pin or 18-pin connector pinout
10+
* @{
11+
*/
12+
#define DVP_20PIN_SCL 3 /**< I2C clock pin */
13+
#define DVP_20PIN_SDA 4 /**< I2C data pin */
14+
#define DVP_20PIN_VS 5 /**< Vertical sync */
15+
#define DVP_20PIN_HS 6 /**< Horizontal sync */
16+
#define DVP_20PIN_PCLK 7 /**< Pixel clock used to transmit the data */
17+
#define DVP_20PIN_XCLK 8 /**< System clock often needed for I2C communication */
18+
#define DVP_20PIN_D7 9 /**< Parallel port data */
19+
#define DVP_20PIN_D6 10 /**< Parallel port data */
20+
#define DVP_20PIN_D5 11 /**< Parallel port data */
21+
#define DVP_20PIN_D4 12 /**< Parallel port data */
22+
#define DVP_20PIN_D3 13 /**< Parallel port data */
23+
#define DVP_20PIN_D2 14 /**< Parallel port data */
24+
#define DVP_20PIN_D1 15 /**< Parallel port data */
25+
#define DVP_20PIN_D0 16 /**< Parallel port data */
26+
#define DVP_20PIN_PEN 17 /**< Power Enable */
27+
#define DVP_20PIN_PDN 18 /**< Power Down */
28+
#define DVP_20PIN_GPIO0 19 /**< Extra GPIO pin present on some modules */
29+
#define DVP_20PIN_GPIO1 20 /**< Extra GPIO pin present on some modules */
30+
/** @} */
31+
32+
#endif /* INCLUDE_ZEPHYR_DT_BINDINGS_GPIO_DVP_20PIN_CONNECTOR_H_ */

0 commit comments

Comments
 (0)