Line data Source code
1 0 : /*
2 : * Copyright (c) 2024 Texas Instruments Incorporated
3 : * Copyright (c) 2024 BayLibre, SAS
4 : *
5 : * SPDX-License-Identifier: Apache-2.0
6 : */
7 :
8 : #ifndef CC23X0_PINCTRL_COMMON_H_
9 : #define CC23X0_PINCTRL_COMMON_H_
10 :
11 : /*
12 : * The whole TI CC23X0 pin configuration information is encoded in a 32-bit
13 : * bitfield organized as follow:
14 : *
15 : * - 31: Reserved
16 : * - 30: Input hysteresis
17 : * - 29: Input capability of IO
18 : * - 28..27: Reserved
19 : * - 26..24: IO mode
20 : * - 23..22: Reserved
21 : * - 21..20: Wakeup configuration from shutdown
22 : * - 19: Reserved
23 : * - 18: Wakeup capability from standby
24 : * - 17..16: Edge detection configuration
25 : * - 15: Reserved
26 : * - 14..13: Pull control
27 : * - 12..3: Reserved
28 : * - 2..0: Function configuration
29 : */
30 :
31 : /* TI CC23X0 function configuration */
32 :
33 0 : #define IOC_PORTCFG_BASE 0U
34 0 : #define IOC_PORTCFG_PFUNC1 1U
35 0 : #define IOC_PORTCFG_PFUNC2 2U
36 0 : #define IOC_PORTCFG_PFUNC3 3U
37 0 : #define IOC_PORTCFG_PFUNC4 4U
38 0 : #define IOC_PORTCFG_PFUNC5 5U
39 0 : #define IOC_PORTCFG_ANA 6U
40 0 : #define IOC_PORTCFG_DTB 7U
41 :
42 : /* TI CC23X0 peripheral pin mapping */
43 :
44 0 : #define DIO0_GPIO0 IOC_PORTCFG_BASE
45 0 : #define DIO0_SPI0_CSN IOC_PORTCFG_PFUNC1
46 0 : #define DIO0_I2C0_SDA IOC_PORTCFG_PFUNC2
47 0 : #define DIO0_T3_C2 IOC_PORTCFG_PFUNC3
48 0 : #define DIO0_ADC5 IOC_PORTCFG_ANA
49 :
50 0 : #define DIO1_GPIO1 IOC_PORTCFG_BASE
51 0 : #define DIO1_T3_C1 IOC_PORTCFG_PFUNC1
52 0 : #define DIO1_LRFD7 IOC_PORTCFG_PFUNC2
53 0 : #define DIO1_T1_F IOC_PORTCFG_PFUNC3
54 0 : #define DIO1_UART0_RTS IOC_PORTCFG_PFUNC4
55 0 : #define DIO1_ADC4 IOC_PORTCFG_ANA
56 0 : #define DIO1_DTB2 IOC_PORTCFG_DTB
57 :
58 0 : #define DIO2_GPIO2 IOC_PORTCFG_BASE
59 0 : #define DIO2_T0_PE IOC_PORTCFG_PFUNC1
60 0 : #define DIO2_T2_C1N IOC_PORTCFG_PFUNC2
61 0 : #define DIO2_UART0_CTS IOC_PORTCFG_PFUNC3
62 0 : #define DIO2_ADC3 IOC_PORTCFG_ANA
63 :
64 0 : #define DIO3_GPIO3 IOC_PORTCFG_BASE
65 0 : #define DIO3_LFCI IOC_PORTCFG_PFUNC1
66 0 : #define DIO3_T0_C1N IOC_PORTCFG_PFUNC2
67 0 : #define DIO3_LRFD0 IOC_PORTCFG_PFUNC3
68 0 : #define DIO3_T3_C1 IOC_PORTCFG_PFUNC4
69 0 : #define DIO3_T1_C2 IOC_PORTCFG_PFUNC5
70 0 : #define DIO3_LFXT_P IOC_PORTCFG_ANA
71 0 : #define DIO3_DTB7 IOC_PORTCFG_DTB
72 :
73 0 : #define DIO4_GPIO4 IOC_PORTCFG_BASE
74 0 : #define DIO4_T0_C2N IOC_PORTCFG_PFUNC1
75 0 : #define DIO4_UART0_TXD IOC_PORTCFG_PFUNC2
76 0 : #define DIO4_LRFD1 IOC_PORTCFG_PFUNC3
77 0 : #define DIO4_SPI0_MOSI IOC_PORTCFG_PFUNC4
78 0 : #define DIO4_T0_C2 IOC_PORTCFG_PFUNC5
79 0 : #define DIO4_LFXT_N IOC_PORTCFG_ANA
80 0 : #define DIO4_DTB8 IOC_PORTCFG_DTB
81 :
82 0 : #define DIO5_GPIO5 IOC_PORTCFG_BASE
83 0 : #define DIO5_T2_C2 IOC_PORTCFG_PFUNC1
84 0 : #define DIO5_LRFD6 IOC_PORTCFG_PFUNC3
85 0 : #define DIO5_ADC2 IOC_PORTCFG_ANA
86 :
87 0 : #define DIO6_GPIO6 IOC_PORTCFG_BASE
88 0 : #define DIO6_SPI0_CSN IOC_PORTCFG_PFUNC1
89 0 : #define DIO6_I2C0_SCL IOC_PORTCFG_PFUNC2
90 0 : #define DIO6_T1_C2 IOC_PORTCFG_PFUNC3
91 0 : #define DIO6_LRFD2 IOC_PORTCFG_PFUNC4
92 0 : #define DIO6_UART0_TXD IOC_PORTCFG_PFUNC5
93 0 : #define DIO6_ADC1_AREFP IOC_PORTCFG_ANA
94 0 : #define DIO6_DTB6 IOC_PORTCFG_DTB
95 :
96 0 : #define DIO7_GPIO7 IOC_PORTCFG_BASE
97 0 : #define DIO7_T3_C1 IOC_PORTCFG_PFUNC1
98 0 : #define DIO7_LRFD4 IOC_PORTCFG_PFUNC3
99 0 : #define DIO7_ADC0_AREFM IOC_PORTCFG_ANA
100 :
101 0 : #define DIO8_GPIO8 IOC_PORTCFG_BASE
102 0 : #define DIO8_SPI0_SCLK IOC_PORTCFG_PFUNC1
103 0 : #define DIO8_UART0_RTS IOC_PORTCFG_PFUNC2
104 0 : #define DIO8_T1_C0N IOC_PORTCFG_PFUNC3
105 0 : #define DIO8_I2C0_SDA IOC_PORTCFG_PFUNC4
106 0 : #define DIO8_T0_C0N IOC_PORTCFG_PFUNC5
107 0 : #define DIO8_DTB3 IOC_PORTCFG_DTB
108 :
109 0 : #define DIO9_GPIO9 IOC_PORTCFG_BASE
110 0 : #define DIO9_T3_C0 IOC_PORTCFG_PFUNC1
111 0 : #define DIO9_LRFD3 IOC_PORTCFG_PFUNC3
112 :
113 0 : #define DIO10_GPIO10 IOC_PORTCFG_BASE
114 0 : #define DIO10_LPC0 IOC_PORTCFG_PFUNC1
115 0 : #define DIO10_T2_PE IOC_PORTCFG_PFUNC2
116 0 : #define DIO10_T3_C0N IOC_PORTCFG_PFUNC3
117 :
118 0 : #define DIO11_GPIO11 IOC_PORTCFG_BASE
119 0 : #define DIO11_SPI0_CSN IOC_PORTCFG_PFUNC1
120 0 : #define DIO11_T1_C2N IOC_PORTCFG_PFUNC2
121 0 : #define DIO11_T0_C0 IOC_PORTCFG_PFUNC3
122 0 : #define DIO11_LRFD0 IOC_PORTCFG_PFUNC4
123 0 : #define DIO11_SPI0_MISO IOC_PORTCFG_PFUNC5
124 0 : #define DIO11_DTB9 IOC_PORTCFG_DTB
125 :
126 0 : #define DIO12_GPIO12 IOC_PORTCFG_BASE
127 0 : #define DIO12_SPI0_MISO IOC_PORTCFG_PFUNC1
128 0 : #define DIO12_SPI0_MOSI IOC_PORTCFG_PFUNC2
129 0 : #define DIO12_UART0_RXD IOC_PORTCFG_PFUNC3
130 0 : #define DIO12_T1_C1 IOC_PORTCFG_PFUNC4
131 0 : #define DIO12_I2C0_SDA IOC_PORTCFG_PFUNC5
132 0 : #define DIO12_DTB13 IOC_PORTCFG_DTB
133 :
134 0 : #define DIO13_GPIO13 IOC_PORTCFG_BASE
135 0 : #define DIO13_SPI0_MISO IOC_PORTCFG_PFUNC1
136 0 : #define DIO13_SPI0_MOSI IOC_PORTCFG_PFUNC2
137 0 : #define DIO13_UART0_TXD IOC_PORTCFG_PFUNC3
138 0 : #define DIO13_T0_C0N IOC_PORTCFG_PFUNC4
139 0 : #define DIO13_T1_F IOC_PORTCFG_PFUNC5
140 0 : #define DIO13_DTB4 IOC_PORTCFG_DTB
141 :
142 0 : #define DIO14_GPIO14 IOC_PORTCFG_BASE
143 0 : #define DIO14_T3_C2 IOC_PORTCFG_PFUNC1
144 0 : #define DIO14_T1_C2N IOC_PORTCFG_PFUNC2
145 0 : #define DIO14_LRFD5 IOC_PORTCFG_PFUNC3
146 0 : #define DIO14_T1_F IOC_PORTCFG_PFUNC4
147 :
148 0 : #define DIO15_GPIO15 IOC_PORTCFG_BASE
149 0 : #define DIO15_UART0_RXD IOC_PORTCFG_PFUNC1
150 0 : #define DIO15_T2_C0N IOC_PORTCFG_PFUNC2
151 0 : #define DIO15_CKMIN IOC_PORTCFG_PFUNC3
152 :
153 0 : #define DIO16_GPIO16 IOC_PORTCFG_BASE
154 0 : #define DIO16_SPI0_MOSI IOC_PORTCFG_PFUNC1
155 0 : #define DIO16_UART0_RXD IOC_PORTCFG_PFUNC2
156 0 : #define DIO16_I2C0_SDA IOC_PORTCFG_PFUNC3
157 0 : #define DIO16_T1_C2 IOC_PORTCFG_PFUNC4
158 0 : #define DIO16_T1_C0N IOC_PORTCFG_PFUNC5
159 0 : #define DIO16_DTB10 IOC_PORTCFG_DTB
160 :
161 0 : #define DIO17_GPIO17 IOC_PORTCFG_BASE
162 0 : #define DIO17_SPI0_SCLK IOC_PORTCFG_PFUNC1
163 0 : #define DIO17_UART0_TXD IOC_PORTCFG_PFUNC2
164 0 : #define DIO17_I2C0_SCL IOC_PORTCFG_PFUNC3
165 0 : #define DIO17_T1_C1N IOC_PORTCFG_PFUNC4
166 0 : #define DIO17_T0_C2 IOC_PORTCFG_PFUNC5
167 0 : #define DIO17_DTB11 IOC_PORTCFG_DTB
168 :
169 0 : #define DIO18_GPIO18 IOC_PORTCFG_BASE
170 0 : #define DIO18_T3_C0 IOC_PORTCFG_PFUNC1
171 0 : #define DIO18_LPC0 IOC_PORTCFG_PFUNC2
172 0 : #define DIO18_UART0_TXD IOC_PORTCFG_PFUNC3
173 0 : #define DIO18_SPI0_SCLK IOC_PORTCFG_PFUNC4
174 0 : #define DIO18_DTB12 IOC_PORTCFG_DTB
175 :
176 0 : #define DIO19_GPIO19 IOC_PORTCFG_BASE
177 0 : #define DIO19_T3_C1 IOC_PORTCFG_PFUNC1
178 0 : #define DIO19_T2_PE IOC_PORTCFG_PFUNC2
179 0 : #define DIO19_SPI0_MOSI IOC_PORTCFG_PFUNC4
180 0 : #define DIO19_DTB0 IOC_PORTCFG_DTB
181 :
182 0 : #define DIO20_GPIO20 IOC_PORTCFG_BASE
183 0 : #define DIO20_LPC0 IOC_PORTCFG_PFUNC1
184 0 : #define DIO20_UART0_TXD IOC_PORTCFG_PFUNC2
185 0 : #define DIO20_UART0_RXD IOC_PORTCFG_PFUNC3
186 0 : #define DIO20_T1_C0 IOC_PORTCFG_PFUNC4
187 0 : #define DIO20_SPI0_MISO IOC_PORTCFG_PFUNC5
188 0 : #define DIO20_ADC11 IOC_PORTCFG_ANA
189 0 : #define DIO20_DTB14 IOC_PORTCFG_DTB
190 :
191 0 : #define DIO21_GPIO21 IOC_PORTCFG_BASE
192 0 : #define DIO21_UART0_CTS IOC_PORTCFG_PFUNC1
193 0 : #define DIO21_T1_C1N IOC_PORTCFG_PFUNC2
194 0 : #define DIO21_T0_C1 IOC_PORTCFG_PFUNC3
195 0 : #define DIO21_SPI0_MISO IOC_PORTCFG_PFUNC4
196 0 : #define DIO21_LRFD1 IOC_PORTCFG_PFUNC5
197 0 : #define DIO21_ADC10_LPCP IOC_PORTCFG_ANA
198 0 : #define DIO21_DTB15 IOC_PORTCFG_DTB
199 :
200 0 : #define DIO22_GPIO22 IOC_PORTCFG_BASE
201 0 : #define DIO22_T2_C0 IOC_PORTCFG_PFUNC1
202 0 : #define DIO22_UART0_RXD IOC_PORTCFG_PFUNC2
203 0 : #define DIO22_T3_C1N IOC_PORTCFG_PFUNC3
204 0 : #define DIO22_ADC9 IOC_PORTCFG_ANA
205 0 : #define DIO22_DTB1 IOC_PORTCFG_DTB
206 :
207 0 : #define DIO23_GPIO23 IOC_PORTCFG_BASE
208 0 : #define DIO23_T2_C1 IOC_PORTCFG_PFUNC1
209 0 : #define DIO23_T3_C2N IOC_PORTCFG_PFUNC3
210 0 : #define DIO23_ADC8_LPCP_LPCM IOC_PORTCFG_ANA
211 :
212 0 : #define DIO24_GPIO24 IOC_PORTCFG_BASE
213 0 : #define DIO24_SPI0_SCLK IOC_PORTCFG_PFUNC1
214 0 : #define DIO24_T1_C0 IOC_PORTCFG_PFUNC2
215 0 : #define DIO24_T3_C0 IOC_PORTCFG_PFUNC3
216 0 : #define DIO24_T0_PE IOC_PORTCFG_PFUNC4
217 0 : #define DIO24_I2C0_SCL IOC_PORTCFG_PFUNC5
218 0 : #define DIO24_ADC7_LPCP_LPCM IOC_PORTCFG_ANA
219 0 : #define DIO24_DTB5 IOC_PORTCFG_DTB
220 :
221 0 : #define DIO25_GPIO25 IOC_PORTCFG_BASE
222 0 : #define DIO25_SPI0_MISO IOC_PORTCFG_PFUNC1
223 0 : #define DIO25_I2C0_SCL IOC_PORTCFG_PFUNC2
224 0 : #define DIO25_T2_C2N IOC_PORTCFG_PFUNC3
225 0 : #define DIO25_ADC6 IOC_PORTCFG_ANA
226 :
227 : #endif /* CC23X0_PINCTRL_COMMON_H_ */
|