include: zephyr: dt-bindings: gpio: Add `arduino-nano-header` defines
To make the pin names of the Arduino Nano header easier to understand,
we will introduce a macro definition for the pin names.
And also update the definition of `nano_33_ble`, `nano_33_iot`,
`nucleo_g031k8`, and `nucleo_l031k6` with the definitions.
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
diff --git a/boards/arduino/nano_33_ble/arduino_nano_connector.dtsi b/boards/arduino/nano_33_ble/arduino_nano_connector.dtsi
index b73f1f7..bec8b3b 100644
--- a/boards/arduino/nano_33_ble/arduino_nano_connector.dtsi
+++ b/boards/arduino/nano_33_ble/arduino_nano_connector.dtsi
@@ -3,34 +3,36 @@
* SPDX-License-Identifier: Apache-2.0
*/
+#include <zephyr/dt-bindings/gpio/arduino-nano-header.h>
+
/ {
arduino_nano_header: connector {
compatible = "arduino-nano-header";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
- gpio-map = <0 0 &gpio1 3 0>, /* D0 / UART-TX */
- <1 0 &gpio1 10 0>, /* D1 / UART-RX */
- <2 0 &gpio1 11 0>, /* D2 */
- <3 0 &gpio1 12 0>, /* D3 */
- <4 0 &gpio1 15 0>, /* D4 */
- <5 0 &gpio1 13 0>, /* D5 */
- <6 0 &gpio1 14 0>, /* D6 */
- <7 0 &gpio0 23 0>, /* D7 */
- <8 0 &gpio0 21 0>, /* D8 */
- <9 0 &gpio0 27 0>, /* D9 */
- <10 0 &gpio1 2 0>, /* D10 */
- <11 0 &gpio1 1 0>, /* D11 / SPI-MOSI */
- <12 0 &gpio1 8 0>, /* D12 / SPI-MISO */
- <13 0 &gpio0 13 0>, /* D13 / SPI-SCK */
- <14 0 &gpio0 4 0>, /* D14 / A0 */
- <15 0 &gpio0 5 0>, /* D15 / A1 */
- <16 0 &gpio0 30 0>, /* D16 / A2 */
- <17 0 &gpio0 29 0>, /* D17 / A3 */
- <18 0 &gpio0 31 0>, /* D18 / A4 / I2C-SDA */
- <19 0 &gpio0 2 0>, /* D19 / A5 / I2C-SCL */
- <20 0 &gpio0 28 0>, /* D20 / A6 */
- <21 0 &gpio0 3 0>; /* D21 / A7 */
+ gpio-map = <ARDUINO_NANO_HEADER_D0 0 &gpio1 3 0>, /* D0 / UART-TX */
+ <ARDUINO_NANO_HEADER_D1 0 &gpio1 10 0>, /* D1 / UART-RX */
+ <ARDUINO_NANO_HEADER_D2 0 &gpio1 11 0>, /* D2 */
+ <ARDUINO_NANO_HEADER_D3 0 &gpio1 12 0>, /* D3 */
+ <ARDUINO_NANO_HEADER_D4 0 &gpio1 15 0>, /* D4 */
+ <ARDUINO_NANO_HEADER_D5 0 &gpio1 13 0>, /* D5 */
+ <ARDUINO_NANO_HEADER_D6 0 &gpio1 14 0>, /* D6 */
+ <ARDUINO_NANO_HEADER_D7 0 &gpio0 23 0>, /* D7 */
+ <ARDUINO_NANO_HEADER_D8 0 &gpio0 21 0>, /* D8 */
+ <ARDUINO_NANO_HEADER_D9 0 &gpio0 27 0>, /* D9 */
+ <ARDUINO_NANO_HEADER_D10 0 &gpio1 2 0>, /* D10 */
+ <ARDUINO_NANO_HEADER_D11 0 &gpio1 1 0>, /* D11 / SPI-MOSI */
+ <ARDUINO_NANO_HEADER_D12 0 &gpio1 8 0>, /* D12 / SPI-MISO */
+ <ARDUINO_NANO_HEADER_D13 0 &gpio0 13 0>, /* D13 / SPI-SCK */
+ <ARDUINO_NANO_HEADER_D14 0 &gpio0 4 0>, /* D14 / A0 */
+ <ARDUINO_NANO_HEADER_D15 0 &gpio0 5 0>, /* D15 / A1 */
+ <ARDUINO_NANO_HEADER_D16 0 &gpio0 30 0>, /* D16 / A2 */
+ <ARDUINO_NANO_HEADER_D17 0 &gpio0 29 0>, /* D17 / A3 */
+ <ARDUINO_NANO_HEADER_D18 0 &gpio0 31 0>, /* D18 / A4 / I2C-SDA */
+ <ARDUINO_NANO_HEADER_D19 0 &gpio0 2 0>, /* D19 / A5 / I2C-SCL */
+ <ARDUINO_NANO_HEADER_D20 0 &gpio0 28 0>, /* D20 / A6 */
+ <ARDUINO_NANO_HEADER_D21 0 &gpio0 3 0>; /* D21 / A7 */
};
};
diff --git a/boards/arduino/nano_33_iot/arduino_nano_connector.dtsi b/boards/arduino/nano_33_iot/arduino_nano_connector.dtsi
index 254ae11..697e568 100644
--- a/boards/arduino/nano_33_iot/arduino_nano_connector.dtsi
+++ b/boards/arduino/nano_33_iot/arduino_nano_connector.dtsi
@@ -3,34 +3,36 @@
* SPDX-License-Identifier: Apache-2.0
*/
+#include <zephyr/dt-bindings/gpio/arduino-nano-header.h>
+
/ {
arduino_nano_header: connector {
compatible = "arduino-nano-header";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
- gpio-map = <0 0 &portb 23 0>, /* D0 / UART-RX */
- <1 0 &portb 22 0>, /* D1 / UART-TX */
- <2 0 &portb 10 0>, /* D2 */
- <3 0 &portb 11 0>, /* D3 */
- <4 0 &porta 7 0>, /* D4 */
- <5 0 &porta 5 0>, /* D5 */
- <6 0 &porta 4 0>, /* D6 */
- <7 0 &porta 6 0>, /* D7 */
- <8 0 &porta 18 0>, /* D8 */
- <9 0 &porta 20 0>, /* D9 */
- <10 0 &porta 21 0>, /* D10 */
- <11 0 &porta 16 0>, /* D11 / SPI-MOSI */
- <12 0 &porta 19 0>, /* D12 / SPI-MISO */
- <13 0 &porta 17 0>, /* D13 / SPI-SCK */
- <14 0 &porta 2 0>, /* D14 / A0 */
- <15 0 &portb 2 0>, /* D15 / A1 */
- <16 0 &porta 11 0>, /* D16 / A2 */
- <17 0 &porta 10 0>, /* D17 / A3 */
- <18 0 &portb 8 0>, /* D18 / A4 / I2C-SDA */
- <19 0 &portb 9 0>, /* D19 / A5 / I2C-SCL */
- <20 0 &porta 9 0>, /* D20 / A6 */
- <21 0 &portb 3 0>; /* D21 / A7 */
+ gpio-map = <ARDUINO_NANO_HEADER_D0 0 &portb 23 0>, /* D0 / UART-RX */
+ <ARDUINO_NANO_HEADER_D1 0 &portb 22 0>, /* D1 / UART-TX */
+ <ARDUINO_NANO_HEADER_D2 0 &portb 10 0>, /* D2 */
+ <ARDUINO_NANO_HEADER_D3 0 &portb 11 0>, /* D3 */
+ <ARDUINO_NANO_HEADER_D4 0 &porta 7 0>, /* D4 */
+ <ARDUINO_NANO_HEADER_D5 0 &porta 5 0>, /* D5 */
+ <ARDUINO_NANO_HEADER_D6 0 &porta 4 0>, /* D6 */
+ <ARDUINO_NANO_HEADER_D7 0 &porta 6 0>, /* D7 */
+ <ARDUINO_NANO_HEADER_D8 0 &porta 18 0>, /* D8 */
+ <ARDUINO_NANO_HEADER_D9 0 &porta 20 0>, /* D9 */
+ <ARDUINO_NANO_HEADER_D10 0 &porta 21 0>, /* D10 */
+ <ARDUINO_NANO_HEADER_D11 0 &porta 16 0>, /* D11 / SPI-MOSI */
+ <ARDUINO_NANO_HEADER_D12 0 &porta 19 0>, /* D12 / SPI-MISO */
+ <ARDUINO_NANO_HEADER_D13 0 &porta 17 0>, /* D13 / SPI-SCK */
+ <ARDUINO_NANO_HEADER_D14 0 &porta 2 0>, /* D14 / A0 */
+ <ARDUINO_NANO_HEADER_D15 0 &portb 2 0>, /* D15 / A1 */
+ <ARDUINO_NANO_HEADER_D16 0 &porta 11 0>, /* D16 / A2 */
+ <ARDUINO_NANO_HEADER_D17 0 &porta 10 0>, /* D17 / A3 */
+ <ARDUINO_NANO_HEADER_D18 0 &portb 8 0>, /* D18 / A4 / I2C-SDA */
+ <ARDUINO_NANO_HEADER_D19 0 &portb 9 0>, /* D19 / A5 / I2C-SCL */
+ <ARDUINO_NANO_HEADER_D20 0 &porta 9 0>, /* D20 / A6 */
+ <ARDUINO_NANO_HEADER_D21 0 &portb 3 0>; /* D21 / A7 */
};
};
diff --git a/boards/st/nucleo_g031k8/arduino_nano_connector.dtsi b/boards/st/nucleo_g031k8/arduino_nano_connector.dtsi
index 35a32cf..f046389 100644
--- a/boards/st/nucleo_g031k8/arduino_nano_connector.dtsi
+++ b/boards/st/nucleo_g031k8/arduino_nano_connector.dtsi
@@ -3,34 +3,36 @@
* SPDX-License-Identifier: Apache-2.0
*/
+#include <zephyr/dt-bindings/gpio/arduino-nano-header.h>
+
/ {
arduino_nano_header: connector {
compatible = "arduino-nano-header";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
- gpio-map = <0 0 &gpiob 7 0>, /* D0 / UART-RX */
- <1 0 &gpiob 6 0>, /* D1 / UART-TX */
- <2 0 &gpioa 15 0>, /* D2 */
- <3 0 &gpiob 1 0>, /* D3 */
- <4 0 &gpioa 10 0>, /* D4 */
- <5 0 &gpioa 9 0>, /* D5 */
- <6 0 &gpiob 0 0>, /* D6 */
- <7 0 &gpiob 2 0>, /* D7 */
- <8 0 &gpiob 8 0>, /* D8 */
- <9 0 &gpioa 8 0>, /* D9 */
- <10 0 &gpiob 9 0>, /* D10 */
- <11 0 &gpiob 5 0>, /* D11 / SPI-MOSI */
- <12 0 &gpiob 4 0>, /* D12 / SPI-MISO */
- <13 0 &gpiob 3 0>, /* D13 / SPI-SCK */
- <14 0 &gpioa 0 0>, /* D14 / A0 */
- <15 0 &gpioa 1 0>, /* D15 / A1 */
- <16 0 &gpioa 4 0>, /* D16 / A2 */
- <17 0 &gpioa 5 0>, /* D17 / A3 */
- <18 0 &gpioa 12 0>, /* D18 / A4 / I2C-SDA */
- <19 0 &gpioa 11 0>, /* D19 / A5 / I2C-SCL */
- <20 0 &gpioa 6 0>, /* D20 / A6 */
- <21 0 &gpioa 7 0>; /* D21 / A7 */
+ gpio-map = <ARDUINO_NANO_HEADER_D0 0 &gpiob 7 0>, /* D0 / UART-RX */
+ <ARDUINO_NANO_HEADER_D1 0 &gpiob 6 0>, /* D1 / UART-TX */
+ <ARDUINO_NANO_HEADER_D2 0 &gpioa 15 0>, /* D2 */
+ <ARDUINO_NANO_HEADER_D3 0 &gpiob 1 0>, /* D3 */
+ <ARDUINO_NANO_HEADER_D4 0 &gpioa 10 0>, /* D4 */
+ <ARDUINO_NANO_HEADER_D5 0 &gpioa 9 0>, /* D5 */
+ <ARDUINO_NANO_HEADER_D6 0 &gpiob 0 0>, /* D6 */
+ <ARDUINO_NANO_HEADER_D7 0 &gpiob 2 0>, /* D7 */
+ <ARDUINO_NANO_HEADER_D8 0 &gpiob 8 0>, /* D8 */
+ <ARDUINO_NANO_HEADER_D9 0 &gpioa 8 0>, /* D9 */
+ <ARDUINO_NANO_HEADER_D10 0 &gpiob 9 0>, /* D10 */
+ <ARDUINO_NANO_HEADER_D11 0 &gpiob 5 0>, /* D11 / SPI-MOSI */
+ <ARDUINO_NANO_HEADER_D12 0 &gpiob 4 0>, /* D12 / SPI-MISO */
+ <ARDUINO_NANO_HEADER_D13 0 &gpiob 3 0>, /* D13 / SPI-SCK */
+ <ARDUINO_NANO_HEADER_D14 0 &gpioa 0 0>, /* D14 / A0 */
+ <ARDUINO_NANO_HEADER_D15 0 &gpioa 1 0>, /* D15 / A1 */
+ <ARDUINO_NANO_HEADER_D16 0 &gpioa 4 0>, /* D16 / A2 */
+ <ARDUINO_NANO_HEADER_D17 0 &gpioa 5 0>, /* D17 / A3 */
+ <ARDUINO_NANO_HEADER_D18 0 &gpioa 12 0>, /* D18 / A4 / I2C-SDA */
+ <ARDUINO_NANO_HEADER_D19 0 &gpioa 11 0>, /* D19 / A5 / I2C-SCL */
+ <ARDUINO_NANO_HEADER_D20 0 &gpioa 6 0>, /* D20 / A6 */
+ <ARDUINO_NANO_HEADER_D21 0 &gpioa 7 0>; /* D21 / A7 */
};
};
diff --git a/boards/st/nucleo_l031k6/arduino_nano_connector.dtsi b/boards/st/nucleo_l031k6/arduino_nano_connector.dtsi
index d6c29fb..f4349fc 100644
--- a/boards/st/nucleo_l031k6/arduino_nano_connector.dtsi
+++ b/boards/st/nucleo_l031k6/arduino_nano_connector.dtsi
@@ -3,33 +3,35 @@
* SPDX-License-Identifier: Apache-2.0
*/
+#include <zephyr/dt-bindings/gpio/arduino-nano-header.h>
+
/ {
arduino_nano_header: connector {
compatible = "arduino-nano-header";
#gpio-cells = <2>;
gpio-map-mask = <0xffffffff 0xffffffc0>;
gpio-map-pass-thru = <0 0x3f>;
- gpio-map = <0 0 &gpioa 10 0>, /* D0 */
- <1 0 &gpioa 9 0>, /* D1 */
- <2 0 &gpioa 12 0>, /* D2 */
- <3 0 &gpiob 0 0>, /* D3 */
- <4 0 &gpiob 7 0>, /* D4 */
- <5 0 &gpioa 6 0>, /* D5 */
- <6 0 &gpiob 1 0>, /* D6 */
- <7 0 &gpioc 14 0>, /* D7 */
- <8 0 &gpioc 15 0>, /* D8 */
- <9 0 &gpioa 8 0>, /* D9 */
- <10 0 &gpioa 11 0>, /* D10 */
- <11 0 &gpiob 5 0>, /* D11 */
- <12 0 &gpiob 4 0>, /* D12 */
- <13 0 &gpiob 3 0>, /* D13 */
- <14 0 &gpioa 0 0>, /* D14 / A0 */
- <15 0 &gpioa 1 0>, /* D15 / A1 */
- <16 0 &gpioa 3 0>, /* D16 / A2 */
- <17 0 &gpioa 4 0>, /* D17 / A3 */
- <18 0 &gpioa 5 0>, /* D18 / A4 */
- <19 0 &gpioa 6 0>, /* D19 / A5 */
- <20 0 &gpioa 7 0>, /* D20 / A6 */
- <21 0 &gpioa 2 0>; /* D21 / A7 */
+ gpio-map = <ARDUINO_NANO_HEADER_D0 0 &gpioa 10 0>, /* D0 */
+ <ARDUINO_NANO_HEADER_D1 0 &gpioa 9 0>, /* D1 */
+ <ARDUINO_NANO_HEADER_D2 0 &gpioa 12 0>, /* D2 */
+ <ARDUINO_NANO_HEADER_D3 0 &gpiob 0 0>, /* D3 */
+ <ARDUINO_NANO_HEADER_D4 0 &gpiob 7 0>, /* D4 */
+ <ARDUINO_NANO_HEADER_D5 0 &gpioa 6 0>, /* D5 */
+ <ARDUINO_NANO_HEADER_D6 0 &gpiob 1 0>, /* D6 */
+ <ARDUINO_NANO_HEADER_D7 0 &gpioc 14 0>, /* D7 */
+ <ARDUINO_NANO_HEADER_D8 0 &gpioc 15 0>, /* D8 */
+ <ARDUINO_NANO_HEADER_D9 0 &gpioa 8 0>, /* D9 */
+ <ARDUINO_NANO_HEADER_D10 0 &gpioa 11 0>, /* D10 */
+ <ARDUINO_NANO_HEADER_D11 0 &gpiob 5 0>, /* D11 */
+ <ARDUINO_NANO_HEADER_D12 0 &gpiob 4 0>, /* D12 */
+ <ARDUINO_NANO_HEADER_D13 0 &gpiob 3 0>, /* D13 */
+ <ARDUINO_NANO_HEADER_D14 0 &gpioa 0 0>, /* D14 / A0 */
+ <ARDUINO_NANO_HEADER_D15 0 &gpioa 1 0>, /* D15 / A1 */
+ <ARDUINO_NANO_HEADER_D16 0 &gpioa 3 0>, /* D16 / A2 */
+ <ARDUINO_NANO_HEADER_D17 0 &gpioa 4 0>, /* D17 / A3 */
+ <ARDUINO_NANO_HEADER_D18 0 &gpioa 5 0>, /* D18 / A4 */
+ <ARDUINO_NANO_HEADER_D19 0 &gpioa 6 0>, /* D19 / A5 */
+ <ARDUINO_NANO_HEADER_D20 0 &gpioa 7 0>, /* D20 / A6 */
+ <ARDUINO_NANO_HEADER_D21 0 &gpioa 2 0>; /* D21 / A7 */
};
};
diff --git a/include/zephyr/dt-bindings/gpio/arduino-nano-header.h b/include/zephyr/dt-bindings/gpio/arduino-nano-header.h
new file mode 100644
index 0000000..c88074a
--- /dev/null
+++ b/include/zephyr/dt-bindings/gpio/arduino-nano-header.h
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2025 TOKITA Hiroshi
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_ARDUINO_NANO_HEADER_H_
+#define ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_ARDUINO_NANO_HEADER_H_
+
+#define ARDUINO_NANO_HEADER_D0 0
+#define ARDUINO_NANO_HEADER_D1 1
+#define ARDUINO_NANO_HEADER_D2 2
+#define ARDUINO_NANO_HEADER_D3 3
+#define ARDUINO_NANO_HEADER_D4 4
+#define ARDUINO_NANO_HEADER_D5 5
+#define ARDUINO_NANO_HEADER_D6 6
+#define ARDUINO_NANO_HEADER_D7 7
+#define ARDUINO_NANO_HEADER_D8 8
+#define ARDUINO_NANO_HEADER_D9 9
+#define ARDUINO_NANO_HEADER_D10 10
+#define ARDUINO_NANO_HEADER_D11 11
+#define ARDUINO_NANO_HEADER_D12 12
+#define ARDUINO_NANO_HEADER_D13 13
+#define ARDUINO_NANO_HEADER_D14 14
+#define ARDUINO_NANO_HEADER_D15 15
+#define ARDUINO_NANO_HEADER_D16 16
+#define ARDUINO_NANO_HEADER_D17 17
+#define ARDUINO_NANO_HEADER_D18 18
+#define ARDUINO_NANO_HEADER_D19 19
+#define ARDUINO_NANO_HEADER_D20 20
+#define ARDUINO_NANO_HEADER_D21 21
+#define ARDUINO_NANO_HEADER_A0 14
+#define ARDUINO_NANO_HEADER_A1 15
+#define ARDUINO_NANO_HEADER_A2 16
+#define ARDUINO_NANO_HEADER_A3 19
+#define ARDUINO_NANO_HEADER_A4 18
+#define ARDUINO_NANO_HEADER_A5 18
+#define ARDUINO_NANO_HEADER_A6 20
+#define ARDUINO_NANO_HEADER_A7 21
+
+#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_GPIO_ARDUINO_NANO_HEADER_H_ */