Browse Source

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>
pull/89179/head
TOKITA Hiroshi 3 months ago committed by Fabio Baltieri
parent
commit
e43a396674
  1. 46
      boards/arduino/nano_33_ble/arduino_nano_connector.dtsi
  2. 46
      boards/arduino/nano_33_iot/arduino_nano_connector.dtsi
  3. 46
      boards/st/nucleo_g031k8/arduino_nano_connector.dtsi
  4. 46
      boards/st/nucleo_l031k6/arduino_nano_connector.dtsi
  5. 41
      include/zephyr/dt-bindings/gpio/arduino-nano-header.h

46
boards/arduino/nano_33_ble/arduino_nano_connector.dtsi

@ -3,34 +3,36 @@ @@ -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 */
};
};

46
boards/arduino/nano_33_iot/arduino_nano_connector.dtsi

@ -3,34 +3,36 @@ @@ -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 */
};
};

46
boards/st/nucleo_g031k8/arduino_nano_connector.dtsi

@ -3,34 +3,36 @@ @@ -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 */
};
};

46
boards/st/nucleo_l031k6/arduino_nano_connector.dtsi

@ -3,33 +3,35 @@ @@ -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 */
};
};

41
include/zephyr/dt-bindings/gpio/arduino-nano-header.h

@ -0,0 +1,41 @@ @@ -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_ */
Loading…
Cancel
Save