1 /*
2  * Copyright (c) 2024, Andrew Featherstone
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_RPI_PICO_RP2350_PINCTRL_COMMON_H_
8 #define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_RPI_PICO_RP2350_PINCTRL_COMMON_H_
9 
10 #define RP2_PINCTRL_GPIO_FUNC_HSTX 0
11 
12 #define RP2_PINCTRL_GPIO_FUNC_PIO2     8
13 #define RP2_PINCTRL_GPIO_FUNC_GPCK     9
14 #define RP2_PINCTRL_GPIO_FUNC_USB      10
15 #define RP2_PINCTRL_GPIO_FUNC_UART_AUX 11
16 #define RP2_PINCTRL_GPIO_FUNC_NULL     0x1f
17 
18 #include "rpi-pico-pinctrl-common.h"
19 
20 #define PIO2_P0  RP2XXX_PINMUX(0, RP2_PINCTRL_GPIO_FUNC_PIO2)
21 #define PIO2_P1  RP2XXX_PINMUX(1, RP2_PINCTRL_GPIO_FUNC_PIO2)
22 #define PIO2_P2  RP2XXX_PINMUX(2, RP2_PINCTRL_GPIO_FUNC_PIO2)
23 #define PIO2_P3  RP2XXX_PINMUX(3, RP2_PINCTRL_GPIO_FUNC_PIO2)
24 #define PIO2_P4  RP2XXX_PINMUX(4, RP2_PINCTRL_GPIO_FUNC_PIO2)
25 #define PIO2_P5  RP2XXX_PINMUX(5, RP2_PINCTRL_GPIO_FUNC_PIO2)
26 #define PIO2_P6  RP2XXX_PINMUX(6, RP2_PINCTRL_GPIO_FUNC_PIO2)
27 #define PIO2_P7  RP2XXX_PINMUX(7, RP2_PINCTRL_GPIO_FUNC_PIO2)
28 #define PIO2_P8  RP2XXX_PINMUX(8, RP2_PINCTRL_GPIO_FUNC_PIO2)
29 #define PIO2_P9  RP2XXX_PINMUX(9, RP2_PINCTRL_GPIO_FUNC_PIO2)
30 #define PIO2_P10 RP2XXX_PINMUX(10, RP2_PINCTRL_GPIO_FUNC_PIO2)
31 #define PIO2_P11 RP2XXX_PINMUX(11, RP2_PINCTRL_GPIO_FUNC_PIO2)
32 #define PIO2_P12 RP2XXX_PINMUX(12, RP2_PINCTRL_GPIO_FUNC_PIO2)
33 #define PIO2_P13 RP2XXX_PINMUX(13, RP2_PINCTRL_GPIO_FUNC_PIO2)
34 #define PIO2_P14 RP2XXX_PINMUX(14, RP2_PINCTRL_GPIO_FUNC_PIO2)
35 #define PIO2_P15 RP2XXX_PINMUX(15, RP2_PINCTRL_GPIO_FUNC_PIO2)
36 #define PIO2_P16 RP2XXX_PINMUX(16, RP2_PINCTRL_GPIO_FUNC_PIO2)
37 #define PIO2_P17 RP2XXX_PINMUX(17, RP2_PINCTRL_GPIO_FUNC_PIO2)
38 #define PIO2_P18 RP2XXX_PINMUX(18, RP2_PINCTRL_GPIO_FUNC_PIO2)
39 #define PIO2_P19 RP2XXX_PINMUX(19, RP2_PINCTRL_GPIO_FUNC_PIO2)
40 #define PIO2_P20 RP2XXX_PINMUX(20, RP2_PINCTRL_GPIO_FUNC_PIO2)
41 #define PIO2_P21 RP2XXX_PINMUX(21, RP2_PINCTRL_GPIO_FUNC_PIO2)
42 #define PIO2_P22 RP2XXX_PINMUX(22, RP2_PINCTRL_GPIO_FUNC_PIO2)
43 #define PIO2_P23 RP2XXX_PINMUX(23, RP2_PINCTRL_GPIO_FUNC_PIO2)
44 #define PIO2_P24 RP2XXX_PINMUX(24, RP2_PINCTRL_GPIO_FUNC_PIO2)
45 #define PIO2_P25 RP2XXX_PINMUX(25, RP2_PINCTRL_GPIO_FUNC_PIO2)
46 #define PIO2_P26 RP2XXX_PINMUX(26, RP2_PINCTRL_GPIO_FUNC_PIO2)
47 #define PIO2_P27 RP2XXX_PINMUX(27, RP2_PINCTRL_GPIO_FUNC_PIO2)
48 #define PIO2_P28 RP2XXX_PINMUX(28, RP2_PINCTRL_GPIO_FUNC_PIO2)
49 #define PIO2_P29 RP2XXX_PINMUX(29, RP2_PINCTRL_GPIO_FUNC_PIO2)
50 
51 #define GPIN0_P12  RP2XXX_PINMUX(20, RP2_PINCTRL_GPIO_FUNC_GPCK)
52 #define GPIN1_P14  RP2XXX_PINMUX(22, RP2_PINCTRL_GPIO_FUNC_GPCK)
53 #define GPOUT0_P13 RP2XXX_PINMUX(21, RP2_PINCTRL_GPIO_FUNC_GPCK)
54 #define GPOUT1_P15 RP2XXX_PINMUX(23, RP2_PINCTRL_GPIO_FUNC_GPCK)
55 
56 #define UART0_TX_P2  RP2XXX_PINMUX(2, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
57 #define UART0_RX_P3  RP2XXX_PINMUX(3, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
58 #define UART1_TX_P6  RP2XXX_PINMUX(6, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
59 #define UART1_RX_P7  RP2XXX_PINMUX(7, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
60 #define UART1_TX_P10 RP2XXX_PINMUX(10, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
61 #define UART1_RX_P11 RP2XXX_PINMUX(11, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
62 #define UART0_TX_P14 RP2XXX_PINMUX(14, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
63 #define UART0_RX_P15 RP2XXX_PINMUX(15, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
64 #define UART0_TX_P18 RP2XXX_PINMUX(18, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
65 #define UART0_RX_P19 RP2XXX_PINMUX(19, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
66 #define UART1_TX_P22 RP2XXX_PINMUX(22, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
67 #define UART1_RX_P23 RP2XXX_PINMUX(23, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
68 #define UART1_TX_P26 RP2XXX_PINMUX(26, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
69 #define UART1_RX_P27 RP2XXX_PINMUX(27, RP2_PINCTRL_GPIO_FUNC_UART_ALT)
70 
71 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_RPI_PICO_RP2350_PINCTRL_COMMON_H_ */
72