Zephyr Project API 4.0.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
cc23x0-pinctrl.h
Go to the documentation of this file.
1/*
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#define IOC_PORTCFG_BASE 0U
34#define IOC_PORTCFG_PFUNC1 1U
35#define IOC_PORTCFG_PFUNC2 2U
36#define IOC_PORTCFG_PFUNC3 3U
37#define IOC_PORTCFG_PFUNC4 4U
38#define IOC_PORTCFG_PFUNC5 5U
39#define IOC_PORTCFG_ANA 6U
40#define IOC_PORTCFG_DTB 7U
41
42/* TI CC23X0 peripheral pin mapping */
43
44#define DIO0_GPIO0 IOC_PORTCFG_BASE
45#define DIO0_SPI0_CSN IOC_PORTCFG_PFUNC1
46#define DIO0_I2C0_SDA IOC_PORTCFG_PFUNC2
47#define DIO0_T3_C2 IOC_PORTCFG_PFUNC3
48#define DIO0_ADC5 IOC_PORTCFG_ANA
49
50#define DIO1_GPIO1 IOC_PORTCFG_BASE
51#define DIO1_T3_C1 IOC_PORTCFG_PFUNC1
52#define DIO1_LRFD7 IOC_PORTCFG_PFUNC2
53#define DIO1_T1_F IOC_PORTCFG_PFUNC3
54#define DIO1_UART0_RTS IOC_PORTCFG_PFUNC4
55#define DIO1_ADC4 IOC_PORTCFG_ANA
56#define DIO1_DTB2 IOC_PORTCFG_DTB
57
58#define DIO2_GPIO2 IOC_PORTCFG_BASE
59#define DIO2_T0_PE IOC_PORTCFG_PFUNC1
60#define DIO2_T2_C1N IOC_PORTCFG_PFUNC2
61#define DIO2_UART0_CTS IOC_PORTCFG_PFUNC3
62#define DIO2_ADC3 IOC_PORTCFG_ANA
63
64#define DIO3_GPIO3 IOC_PORTCFG_BASE
65#define DIO3_LFCI IOC_PORTCFG_PFUNC1
66#define DIO3_T0_C1N IOC_PORTCFG_PFUNC2
67#define DIO3_LRFD0 IOC_PORTCFG_PFUNC3
68#define DIO3_T3_C1 IOC_PORTCFG_PFUNC4
69#define DIO3_T1_C2 IOC_PORTCFG_PFUNC5
70#define DIO3_LFXT_P IOC_PORTCFG_ANA
71#define DIO3_DTB7 IOC_PORTCFG_DTB
72
73#define DIO4_GPIO4 IOC_PORTCFG_BASE
74#define DIO4_T0_C2N IOC_PORTCFG_PFUNC1
75#define DIO4_UART0_TXD IOC_PORTCFG_PFUNC2
76#define DIO4_LRFD1 IOC_PORTCFG_PFUNC3
77#define DIO4_SPI0_MOSI IOC_PORTCFG_PFUNC4
78#define DIO4_T0_C2 IOC_PORTCFG_PFUNC5
79#define DIO4_LFXT_N IOC_PORTCFG_ANA
80#define DIO4_DTB8 IOC_PORTCFG_DTB
81
82#define DIO5_GPIO5 IOC_PORTCFG_BASE
83#define DIO5_T2_C2 IOC_PORTCFG_PFUNC1
84#define DIO5_LRFD6 IOC_PORTCFG_PFUNC3
85#define DIO5_ADC2 IOC_PORTCFG_ANA
86
87#define DIO6_GPIO6 IOC_PORTCFG_BASE
88#define DIO6_SPI0_CSN IOC_PORTCFG_PFUNC1
89#define DIO6_I2C0_SCL IOC_PORTCFG_PFUNC2
90#define DIO6_T1_C2 IOC_PORTCFG_PFUNC3
91#define DIO6_LRFD2 IOC_PORTCFG_PFUNC4
92#define DIO6_UART0_TXD IOC_PORTCFG_PFUNC5
93#define DIO6_ADC1_AREFP IOC_PORTCFG_ANA
94#define DIO6_DTB6 IOC_PORTCFG_DTB
95
96#define DIO7_GPIO7 IOC_PORTCFG_BASE
97#define DIO7_T3_C1 IOC_PORTCFG_PFUNC1
98#define DIO7_LRFD4 IOC_PORTCFG_PFUNC3
99#define DIO7_ADC0_AREFM IOC_PORTCFG_ANA
100
101#define DIO8_GPIO8 IOC_PORTCFG_BASE
102#define DIO8_SPI0_SCLK IOC_PORTCFG_PFUNC1
103#define DIO8_UART0_RTS IOC_PORTCFG_PFUNC2
104#define DIO8_T1_C0N IOC_PORTCFG_PFUNC3
105#define DIO8_I2C0_SDA IOC_PORTCFG_PFUNC4
106#define DIO8_T0_C0N IOC_PORTCFG_PFUNC5
107#define DIO8_DTB3 IOC_PORTCFG_DTB
108
109#define DIO9_GPIO9 IOC_PORTCFG_BASE
110#define DIO9_T3_C0 IOC_PORTCFG_PFUNC1
111#define DIO9_LRFD3 IOC_PORTCFG_PFUNC3
112
113#define DIO10_GPIO10 IOC_PORTCFG_BASE
114#define DIO10_LPC0 IOC_PORTCFG_PFUNC1
115#define DIO10_T2_PE IOC_PORTCFG_PFUNC2
116#define DIO10_T3_C0N IOC_PORTCFG_PFUNC3
117
118#define DIO11_GPIO11 IOC_PORTCFG_BASE
119#define DIO11_SPI0_CSN IOC_PORTCFG_PFUNC1
120#define DIO11_T1_C2N IOC_PORTCFG_PFUNC2
121#define DIO11_T0_C0 IOC_PORTCFG_PFUNC3
122#define DIO11_LRFD0 IOC_PORTCFG_PFUNC4
123#define DIO11_SPI0_MISO IOC_PORTCFG_PFUNC5
124#define DIO11_DTB9 IOC_PORTCFG_DTB
125
126#define DIO12_GPIO12 IOC_PORTCFG_BASE
127#define DIO12_SPI0_MISO IOC_PORTCFG_PFUNC1
128#define DIO12_SPI0_MOSI IOC_PORTCFG_PFUNC2
129#define DIO12_UART0_RXD IOC_PORTCFG_PFUNC3
130#define DIO12_T1_C1 IOC_PORTCFG_PFUNC4
131#define DIO12_I2C0_SDA IOC_PORTCFG_PFUNC5
132#define DIO12_DTB13 IOC_PORTCFG_DTB
133
134#define DIO13_GPIO13 IOC_PORTCFG_BASE
135#define DIO13_SPI0_MISO IOC_PORTCFG_PFUNC1
136#define DIO13_SPI0_MOSI IOC_PORTCFG_PFUNC2
137#define DIO13_UART0_TXD IOC_PORTCFG_PFUNC3
138#define DIO13_T0_C0N IOC_PORTCFG_PFUNC4
139#define DIO13_T1_F IOC_PORTCFG_PFUNC5
140#define DIO13_DTB4 IOC_PORTCFG_DTB
141
142#define DIO14_GPIO14 IOC_PORTCFG_BASE
143#define DIO14_T3_C2 IOC_PORTCFG_PFUNC1
144#define DIO14_T1_C2N IOC_PORTCFG_PFUNC2
145#define DIO14_LRFD5 IOC_PORTCFG_PFUNC3
146#define DIO14_T1_F IOC_PORTCFG_PFUNC4
147
148#define DIO15_GPIO15 IOC_PORTCFG_BASE
149#define DIO15_UART0_RXD IOC_PORTCFG_PFUNC1
150#define DIO15_T2_C0N IOC_PORTCFG_PFUNC2
151#define DIO15_CKMIN IOC_PORTCFG_PFUNC3
152
153#define DIO16_GPIO16 IOC_PORTCFG_BASE
154#define DIO16_SPI0_MOSI IOC_PORTCFG_PFUNC1
155#define DIO16_UART0_RXD IOC_PORTCFG_PFUNC2
156#define DIO16_I2C0_SDA IOC_PORTCFG_PFUNC3
157#define DIO16_T1_C2 IOC_PORTCFG_PFUNC4
158#define DIO16_T1_C0N IOC_PORTCFG_PFUNC5
159#define DIO16_DTB10 IOC_PORTCFG_DTB
160
161#define DIO17_GPIO17 IOC_PORTCFG_BASE
162#define DIO17_SPI0_SCLK IOC_PORTCFG_PFUNC1
163#define DIO17_UART0_TXD IOC_PORTCFG_PFUNC2
164#define DIO17_I2C0_SCL IOC_PORTCFG_PFUNC3
165#define DIO17_T1_C1N IOC_PORTCFG_PFUNC4
166#define DIO17_T0_C2 IOC_PORTCFG_PFUNC5
167#define DIO17_DTB11 IOC_PORTCFG_DTB
168
169#define DIO18_GPIO18 IOC_PORTCFG_BASE
170#define DIO18_T3_C0 IOC_PORTCFG_PFUNC1
171#define DIO18_LPC0 IOC_PORTCFG_PFUNC2
172#define DIO18_UART0_TXD IOC_PORTCFG_PFUNC3
173#define DIO18_SPI0_SCLK IOC_PORTCFG_PFUNC4
174#define DIO18_DTB12 IOC_PORTCFG_DTB
175
176#define DIO19_GPIO19 IOC_PORTCFG_BASE
177#define DIO19_T3_C1 IOC_PORTCFG_PFUNC1
178#define DIO19_T2_PE IOC_PORTCFG_PFUNC2
179#define DIO19_SPI0_MOSI IOC_PORTCFG_PFUNC4
180#define DIO19_DTB0 IOC_PORTCFG_DTB
181
182#define DIO20_GPIO20 IOC_PORTCFG_BASE
183#define DIO20_LPC0 IOC_PORTCFG_PFUNC1
184#define DIO20_UART0_TXD IOC_PORTCFG_PFUNC2
185#define DIO20_UART0_RXD IOC_PORTCFG_PFUNC3
186#define DIO20_T1_C0 IOC_PORTCFG_PFUNC4
187#define DIO20_SPI0_MISO IOC_PORTCFG_PFUNC5
188#define DIO20_ADC11 IOC_PORTCFG_ANA
189#define DIO20_DTB14 IOC_PORTCFG_DTB
190
191#define DIO21_GPIO21 IOC_PORTCFG_BASE
192#define DIO21_UART0_CTS IOC_PORTCFG_PFUNC1
193#define DIO21_T1_C1N IOC_PORTCFG_PFUNC2
194#define DIO21_T0_C1 IOC_PORTCFG_PFUNC3
195#define DIO21_SPI0_MISO IOC_PORTCFG_PFUNC4
196#define DIO21_LRFD1 IOC_PORTCFG_PFUNC5
197#define DIO21_ADC10_LPCP IOC_PORTCFG_ANA
198#define DIO21_DTB15 IOC_PORTCFG_DTB
199
200#define DIO22_GPIO22 IOC_PORTCFG_BASE
201#define DIO22_T2_C0 IOC_PORTCFG_PFUNC1
202#define DIO22_UART0_RXD IOC_PORTCFG_PFUNC2
203#define DIO22_T3_C1N IOC_PORTCFG_PFUNC3
204#define DIO22_ADC9 IOC_PORTCFG_ANA
205#define DIO22_DTB1 IOC_PORTCFG_DTB
206
207#define DIO23_GPIO23 IOC_PORTCFG_BASE
208#define DIO23_T2_C1 IOC_PORTCFG_PFUNC1
209#define DIO23_T3_C2N IOC_PORTCFG_PFUNC3
210#define DIO23_ADC8_LPCP_LPCM IOC_PORTCFG_ANA
211
212#define DIO24_GPIO24 IOC_PORTCFG_BASE
213#define DIO24_SPI0_SCLK IOC_PORTCFG_PFUNC1
214#define DIO24_T1_C0 IOC_PORTCFG_PFUNC2
215#define DIO24_T3_C0 IOC_PORTCFG_PFUNC3
216#define DIO24_T0_PE IOC_PORTCFG_PFUNC4
217#define DIO24_I2C0_SCL IOC_PORTCFG_PFUNC5
218#define DIO24_ADC7_LPCP_LPCM IOC_PORTCFG_ANA
219#define DIO24_DTB5 IOC_PORTCFG_DTB
220
221#define DIO25_GPIO25 IOC_PORTCFG_BASE
222#define DIO25_SPI0_MISO IOC_PORTCFG_PFUNC1
223#define DIO25_I2C0_SCL IOC_PORTCFG_PFUNC2
224#define DIO25_T2_C2N IOC_PORTCFG_PFUNC3
225#define DIO25_ADC6 IOC_PORTCFG_ANA
226
227#endif /* CC23X0_PINCTRL_COMMON_H_ */