1 /*
2  * Copyright (c) 2024 GARDENA GmbH
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_SI32_PINCTRL_
8 #define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_SI32_PINCTRL_
9 
10 #define SI32_SIGNAL_USART0_TX   0
11 #define SI32_SIGNAL_USART0_RX   1
12 #define SI32_SIGNAL_USART0_RTS  2
13 #define SI32_SIGNAL_USART0_CTS  3
14 #define SI32_SIGNAL_USART0_UCLK 4
15 
16 #define SI32_SIGNAL_SPI0_SCK  5
17 #define SI32_SIGNAL_SPI0_MISO 6
18 #define SI32_SIGNAL_SPI0_MOSI 7
19 #define SI32_SIGNAL_SPI0_NSS  8
20 
21 #define SI32_SIGNAL_USART1_TX   9
22 #define SI32_SIGNAL_USART1_RX   10
23 #define SI32_SIGNAL_USART1_RTS  11
24 #define SI32_SIGNAL_USART1_CTS  12
25 #define SI32_SIGNAL_USART1_UCLK 13
26 
27 #define SI32_SIGNAL_EPCA0_CEX0 14
28 #define SI32_SIGNAL_EPCA0_CEX1 15
29 #define SI32_SIGNAL_EPCA0_CEX2 16
30 #define SI32_SIGNAL_EPCA0_CEX3 17
31 #define SI32_SIGNAL_EPCA0_CEX4 18
32 #define SI32_SIGNAL_EPCA0_CEX4 19
33 
34 #define SI32_SIGNAL_PCA0_CEX0 20
35 #define SI32_SIGNAL_PCA0_CEX1 21
36 
37 #define SI32_SIGNAL_PCA1_CEX0 22
38 #define SI32_SIGNAL_PCA1_CEX1 23
39 
40 #define SI32_SIGNAL_EPCA0_ECI 24
41 
42 #define SI32_SIGNAL_PCA0_ECI 25
43 
44 #define SI32_SIGNAL_PCA1_ECI 26
45 
46 #define SI32_SIGNAL_I2S0_TX_WS  27
47 #define SI32_SIGNAL_I2S0_TX_SCK 28
48 #define SI32_SIGNAL_I2S0_TX_SD  29
49 
50 #define SI32_SIGNAL_I2C0_SDA 30
51 #define SI32_SIGNAL_I2C0_SCL 31
52 
53 #define SI32_SIGNAL_CMP0S 32
54 #define SI32_SIGNAL_CMP0A 33
55 
56 #define SI32_SIGNAL_CMP1S 34
57 #define SI32_SIGNAL_CMP1A 35
58 
59 #define SI32_SIGNAL_TIMER0_CT 36
60 #define SI32_SIGNAL_TIMER0_EX 37
61 
62 #define SI32_SIGNAL_TIMER1_CT 38
63 #define SI32_SIGNAL_TIMER1_EX 39
64 
65 #define SI32_SIGNAL_UART0_TX  40
66 #define SI32_SIGNAL_UART0_RX  41
67 #define SI32_SIGNAL_UART0_RTS 42
68 #define SI32_SIGNAL_UART0_CTS 43
69 
70 #define SI32_SIGNAL_UART1_TX 44
71 #define SI32_SIGNAL_UART1_RX 45
72 
73 #define SI32_SIGNAL_SPI1_SCK  46
74 #define SI32_SIGNAL_SPI1_MISO 47
75 #define SI32_SIGNAL_SPI1_MOSI 48
76 #define SI32_SIGNAL_SPI1_NSS  49
77 
78 #define SI32_SIGNAL_SPI2_SCK  50
79 #define SI32_SIGNAL_SPI2_MISO 51
80 #define SI32_SIGNAL_SPI2_MOSI 52
81 #define SI32_SIGNAL_SPI2_NSS  53
82 
83 #define SI32_SIGNAL_AHB_OUT 54
84 
85 #define SI32_SIGNAL_SSG0_EX0 55
86 #define SI32_SIGNAL_SSG0_EX1 56
87 #define SI32_SIGNAL_SSG0_EX2 57
88 #define SI32_SIGNAL_SSG0_EX3 58
89 
90 #define SI32_SIGNAL_RTC0_OUT 59
91 
92 #define SI32_SIGNAL_I2S0_RX_WS  60
93 #define SI32_SIGNAL_I2S0_RX_SCK 61
94 #define SI32_SIGNAL_I2S0_RX_SD  62
95 
96 #define SI32_SIGNAL_LPTIMER0_OUT 63
97 
98 #define SI32_SIGNAL_I2C1_SDA 64
99 #define SI32_SIGNAL_I2C1_SCL 65
100 
101 #define SI32_SIGNAL_PB_HDKILL 66
102 
103 /**
104  * @brief Specify MUX field
105  *
106  * @param fun Function name
107  * @param port Port number (0 to 4)
108  * @param pin Port pin number (0 to 15)
109  */
110 #define SI32_MUX(fun, port, pin)                                                                   \
111 	((((port)&0x7)) | (((pin)&0xF) << 3) | ((SI32_SIGNAL_##fun & 0x7F) << 22))
112 
113 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_SI32_PINCTRL_ */
114