Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
lpc84x-pinctrl.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2026 Aerlync Labs Inc.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
11
12#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_LPC84X_PINCTRL_H_
13#define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_LPC84X_PINCTRL_H_
14
21
23
24#define LPC84X_PINMUX_M(func, pin) (((func) << 16) | (pin))
25
32
34
35#define LPC84X_PINMUX_F(func, pin) ((1U << 23) | ((func) << 16) | (pin))
36
38#define LPC84X_SWM_USART0_TXD 0U
39#define LPC84X_SWM_USART0_RXD 1U
40#define LPC84X_SWM_USART0_RTS 2U
41#define LPC84X_SWM_USART0_CTS 3U
42#define LPC84X_SWM_USART0_SCLK 4U
43#define LPC84X_SWM_USART1_TXD 5U
44#define LPC84X_SWM_USART1_RXD 6U
45#define LPC84X_SWM_USART1_RTS 7U
46#define LPC84X_SWM_USART1_CTS 8U
47#define LPC84X_SWM_USART1_SCLK 9U
48#define LPC84X_SWM_USART2_TXD 10U
49#define LPC84X_SWM_USART2_RXD 11U
50#define LPC84X_SWM_USART2_RTS 12U
51#define LPC84X_SWM_USART2_CTS 13U
52#define LPC84X_SWM_USART2_SCLK 14U
53#define LPC84X_SWM_SPI0_SCK 15U
54#define LPC84X_SWM_SPI0_MOSI 16U
55#define LPC84X_SWM_SPI0_MISO 17U
56#define LPC84X_SWM_SPI0_SSEL0 18U
57#define LPC84X_SWM_SPI0_SSEL1 19U
58#define LPC84X_SWM_SPI0_SSEL2 20U
59#define LPC84X_SWM_SPI0_SSEL3 21U
60#define LPC84X_SWM_SPI1_SCK 22U
61#define LPC84X_SWM_SPI1_MOSI 23U
62#define LPC84X_SWM_SPI1_MISO 24U
63#define LPC84X_SWM_SPI1_SSEL0 25U
64#define LPC84X_SWM_SPI1_SSEL1 26U
65#define LPC84X_SWM_SCT_PIN0 27U
66#define LPC84X_SWM_SCT_PIN1 28U
67#define LPC84X_SWM_SCT_PIN2 29U
68#define LPC84X_SWM_SCT_PIN3 30U
69#define LPC84X_SWM_SCT_OUT0 31U
70#define LPC84X_SWM_SCT_OUT1 32U
71#define LPC84X_SWM_SCT_OUT2 33U
72#define LPC84X_SWM_SCT_OUT3 34U
73#define LPC84X_SWM_SCT_OUT4 35U
74#define LPC84X_SWM_SCT_OUT5 36U
75#define LPC84X_SWM_SCT_OUT6 37U
76#define LPC84X_SWM_I2C1_SDA 38U
77#define LPC84X_SWM_I2C1_SCL 39U
78#define LPC84X_SWM_I2C2_SDA 40U
79#define LPC84X_SWM_I2C2_SCL 41U
80#define LPC84X_SWM_I2C3_SDA 42U
81#define LPC84X_SWM_I2C3_SCL 43U
82#define LPC84X_SWM_ACMP_OUT 44U
83#define LPC84X_SWM_CLKOUT 45U
84#define LPC84X_SWM_GPIO_INT_BMAT 46U
85#define LPC84X_SWM_USART3_TXD 47U
86#define LPC84X_SWM_USART3_RXD 48U
87#define LPC84X_SWM_USART3_SCLK 49U
88#define LPC84X_SWM_USART4_TXD 50U
89#define LPC84X_SWM_USART4_RXD 51U
90#define LPC84X_SWM_USART4_SCLK 52U
91#define LPC84X_SWM_T0_MAT_CHN0 53U
92#define LPC84X_SWM_T0_MAT_CHN1 54U
93#define LPC84X_SWM_T0_MAT_CHN2 55U
94#define LPC84X_SWM_T0_MAT_CHN3 56U
95#define LPC84X_SWM_T0_CAP_CHN0 57U
96#define LPC84X_SWM_T0_CAP_CHN1 58U
97#define LPC84X_SWM_T0_CAP_CHN2 59U
98
99/* SWM fixed pin selection */
100#define LPC84X_SWM_ACMP_INPUT1 0U
101#define LPC84X_SWM_ACMP_INPUT2 1U
102#define LPC84X_SWM_ACMP_INPUT3 2U
103#define LPC84X_SWM_ACMP_INPUT4 3U
104#define LPC84X_SWM_ACMP_INPUT5 4U
105#define LPC84X_SWM_SWCLK 5U
106#define LPC84X_SWM_SWDIO 6U
107#define LPC84X_SWM_XTALIN 7U
108#define LPC84X_SWM_XTALOUT 8U
109#define LPC84X_SWM_RESETN 9U
110#define LPC84X_SWM_CLKIN 10U
111#define LPC84X_SWM_VDDCMP 11U
112#define LPC84X_SWM_I2C0_SDA 12U
113#define LPC84X_SWM_I2C0_SCL 13U
114#define LPC84X_SWM_ADC_CHN0 14U
115#define LPC84X_SWM_ADC_CHN1 15U
116#define LPC84X_SWM_ADC_CHN2 16U
117#define LPC84X_SWM_ADC_CHN3 17U
118#define LPC84X_SWM_ADC_CHN4 18U
119#define LPC84X_SWM_ADC_CHN5 19U
120#define LPC84X_SWM_ADC_CHN6 20U
121#define LPC84X_SWM_ADC_CHN7 21U
122#define LPC84X_SWM_ADC_CHN8 22U
123#define LPC84X_SWM_ADC_CHN9 23U
124#define LPC84X_SWM_ADC_CHN10 24U
125#define LPC84X_SWM_ADC_CHN11 25U
126#define LPC84X_SWM_DAC_OUT0 26U
127#define LPC84X_SWM_DAC_OUT1 27U
128#define LPC84X_SWM_CAPT_X0 28U
129#define LPC84X_SWM_CAPT_X1 29U
130#define LPC84X_SWM_CAPT_X2 30U
131#define LPC84X_SWM_CAPT_X3 31U
132#define LPC84X_SWM_CAPT_X4 32U
133#define LPC84X_SWM_CAPT_X5 33U
134#define LPC84X_SWM_CAPT_X6 34U
135#define LPC84X_SWM_CAPT_X7 35U
136#define LPC84X_SWM_CAPT_X8 36U
137#define LPC84X_SWM_CAPT_YL 37U
138#define LPC84X_SWM_CAPT_YH 38U
139
145
146/* Port 0 */
147#define LPC84X_PIN_P0_0 0U
148#define LPC84X_PIN_P0_1 1U
149#define LPC84X_PIN_P0_2 2U
150#define LPC84X_PIN_P0_3 3U
151#define LPC84X_PIN_P0_4 4U
152#define LPC84X_PIN_P0_5 5U
153#define LPC84X_PIN_P0_6 6U
154#define LPC84X_PIN_P0_7 7U
155#define LPC84X_PIN_P0_8 8U
156#define LPC84X_PIN_P0_9 9U
157#define LPC84X_PIN_P0_10 10U
158#define LPC84X_PIN_P0_11 11U
159#define LPC84X_PIN_P0_12 12U
160#define LPC84X_PIN_P0_13 13U
161#define LPC84X_PIN_P0_14 14U
162#define LPC84X_PIN_P0_15 15U
163#define LPC84X_PIN_P0_16 16U
164#define LPC84X_PIN_P0_17 17U
165#define LPC84X_PIN_P0_18 18U
166#define LPC84X_PIN_P0_19 19U
167#define LPC84X_PIN_P0_20 20U
168#define LPC84X_PIN_P0_21 21U
169#define LPC84X_PIN_P0_22 22U
170#define LPC84X_PIN_P0_23 23U
171#define LPC84X_PIN_P0_24 24U
172#define LPC84X_PIN_P0_25 25U
173#define LPC84X_PIN_P0_26 26U
174#define LPC84X_PIN_P0_27 27U
175#define LPC84X_PIN_P0_28 28U
176#define LPC84X_PIN_P0_29 29U
177#define LPC84X_PIN_P0_30 30U
178#define LPC84X_PIN_P0_31 31U
179
180/* Port 1 */
181#define LPC84X_PIN_P1_0 32U
182#define LPC84X_PIN_P1_1 33U
183#define LPC84X_PIN_P1_2 34U
184#define LPC84X_PIN_P1_3 35U
185#define LPC84X_PIN_P1_4 36U
186#define LPC84X_PIN_P1_5 37U
187#define LPC84X_PIN_P1_6 38U
188#define LPC84X_PIN_P1_7 39U
189#define LPC84X_PIN_P1_8 40U
190#define LPC84X_PIN_P1_9 41U
191#define LPC84X_PIN_P1_10 42U
192#define LPC84X_PIN_P1_11 43U
193#define LPC84X_PIN_P1_12 44U
194#define LPC84X_PIN_P1_13 45U
195#define LPC84X_PIN_P1_14 46U
196#define LPC84X_PIN_P1_15 47U
197#define LPC84X_PIN_P1_16 48U
198#define LPC84X_PIN_P1_17 49U
199#define LPC84X_PIN_P1_18 50U
200#define LPC84X_PIN_P1_19 51U
201#define LPC84X_PIN_P1_20 52U
202#define LPC84X_PIN_P1_21 53U
203
209#define IOCON_INDEX_PIO0_17 0U
210#define IOCON_INDEX_PIO0_13 1U
211#define IOCON_INDEX_PIO0_12 2U
212#define IOCON_INDEX_PIO0_5 3U
213#define IOCON_INDEX_PIO0_4 4U
214#define IOCON_INDEX_PIO0_3 5U
215#define IOCON_INDEX_PIO0_2 6U
216#define IOCON_INDEX_PIO0_11 7U
217#define IOCON_INDEX_PIO0_10 8U
218#define IOCON_INDEX_PIO0_16 9U
219#define IOCON_INDEX_PIO0_15 10U
220#define IOCON_INDEX_PIO0_1 11U
221#define IOCON_INDEX_PIO0_9 13U
222#define IOCON_INDEX_PIO0_8 14U
223#define IOCON_INDEX_PIO0_7 15U
224#define IOCON_INDEX_PIO0_6 16U
225#define IOCON_INDEX_PIO0_0 17U
226#define IOCON_INDEX_PIO0_14 18U
227#define IOCON_INDEX_PIO0_28 20U
228#define IOCON_INDEX_PIO0_27 21U
229#define IOCON_INDEX_PIO0_26 22U
230#define IOCON_INDEX_PIO0_25 23U
231#define IOCON_INDEX_PIO0_24 24U
232#define IOCON_INDEX_PIO0_23 25U
233#define IOCON_INDEX_PIO0_22 26U
234#define IOCON_INDEX_PIO0_21 27U
235#define IOCON_INDEX_PIO0_20 28U
236#define IOCON_INDEX_PIO0_19 29U
237#define IOCON_INDEX_PIO0_18 30U
238#define IOCON_INDEX_PIO1_8 31U
239#define IOCON_INDEX_PIO1_9 32U
240#define IOCON_INDEX_PIO1_12 33U
241#define IOCON_INDEX_PIO1_13 34U
242#define IOCON_INDEX_PIO0_31 35U
243#define IOCON_INDEX_PIO1_0 36U
244#define IOCON_INDEX_PIO1_1 37U
245#define IOCON_INDEX_PIO1_2 38U
246#define IOCON_INDEX_PIO1_14 39U
247#define IOCON_INDEX_PIO1_15 40U
248#define IOCON_INDEX_PIO1_3 41U
249#define IOCON_INDEX_PIO1_4 42U
250#define IOCON_INDEX_PIO1_5 43U
251#define IOCON_INDEX_PIO1_16 44U
252#define IOCON_INDEX_PIO1_17 45U
253#define IOCON_INDEX_PIO1_6 46U
254#define IOCON_INDEX_PIO1_18 47U
255#define IOCON_INDEX_PIO1_19 48U
256#define IOCON_INDEX_PIO1_7 49U
257#define IOCON_INDEX_PIO0_29 50U
258#define IOCON_INDEX_PIO0_30 51U
259#define IOCON_INDEX_PIO1_20 52U
260#define IOCON_INDEX_PIO1_21 53U
261#define IOCON_INDEX_PIO1_11 54U
262#define IOCON_INDEX_PIO1_10 55U
263
269
270/* < Pin define encoder */
271#define LPC84X_PIN_DEFINE(swm, iocon) ((((swm) & 0xFF) << 8) | ((iocon) & 0xFF))
272
279
280#define P0_0 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_0, IOCON_INDEX_PIO0_0)
281#define P0_1 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_1, IOCON_INDEX_PIO0_1)
282#define P0_2 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_2, IOCON_INDEX_PIO0_2)
283#define P0_3 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_3, IOCON_INDEX_PIO0_3)
284#define P0_4 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_4, IOCON_INDEX_PIO0_4)
285#define P0_5 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_5, IOCON_INDEX_PIO0_5)
286#define P0_6 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_6, IOCON_INDEX_PIO0_6)
287#define P0_7 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_7, IOCON_INDEX_PIO0_7)
288#define P0_8 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_8, IOCON_INDEX_PIO0_8)
289#define P0_9 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_9, IOCON_INDEX_PIO0_9)
290#define P0_10 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_10, IOCON_INDEX_PIO0_10)
291#define P0_11 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_11, IOCON_INDEX_PIO0_11)
292#define P0_12 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_12, IOCON_INDEX_PIO0_12)
293#define P0_13 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_13, IOCON_INDEX_PIO0_13)
294#define P0_14 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_14, IOCON_INDEX_PIO0_14)
295#define P0_15 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_15, IOCON_INDEX_PIO0_15)
296#define P0_16 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_16, IOCON_INDEX_PIO0_16)
297#define P0_17 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_17, IOCON_INDEX_PIO0_17)
298#define P0_18 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_18, IOCON_INDEX_PIO0_18)
299#define P0_19 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_19, IOCON_INDEX_PIO0_19)
300#define P0_20 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_20, IOCON_INDEX_PIO0_20)
301#define P0_21 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_21, IOCON_INDEX_PIO0_21)
302#define P0_22 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_22, IOCON_INDEX_PIO0_22)
303#define P0_23 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_23, IOCON_INDEX_PIO0_23)
304#define P0_24 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_24, IOCON_INDEX_PIO0_24)
305#define P0_25 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_25, IOCON_INDEX_PIO0_25)
306#define P0_26 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_26, IOCON_INDEX_PIO0_26)
307#define P0_27 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_27, IOCON_INDEX_PIO0_27)
308#define P0_28 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_28, IOCON_INDEX_PIO0_28)
309#define P0_29 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_29, IOCON_INDEX_PIO0_29)
310#define P0_30 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_30, IOCON_INDEX_PIO0_30)
311#define P0_31 LPC84X_PIN_DEFINE(LPC84X_PIN_P0_31, IOCON_INDEX_PIO0_31)
312#define P1_0 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_0, IOCON_INDEX_PIO1_0)
313#define P1_1 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_1, IOCON_INDEX_PIO1_1)
314#define P1_2 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_2, IOCON_INDEX_PIO1_2)
315#define P1_3 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_3, IOCON_INDEX_PIO1_3)
316#define P1_4 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_4, IOCON_INDEX_PIO1_4)
317#define P1_5 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_5, IOCON_INDEX_PIO1_5)
318#define P1_6 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_6, IOCON_INDEX_PIO1_6)
319#define P1_7 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_7, IOCON_INDEX_PIO1_7)
320#define P1_8 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_8, IOCON_INDEX_PIO1_8)
321#define P1_9 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_9, IOCON_INDEX_PIO1_9)
322#define P1_10 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_10, IOCON_INDEX_PIO1_10)
323#define P1_11 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_11, IOCON_INDEX_PIO1_11)
324#define P1_12 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_12, IOCON_INDEX_PIO1_12)
325#define P1_13 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_13, IOCON_INDEX_PIO1_13)
326#define P1_14 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_14, IOCON_INDEX_PIO1_14)
327#define P1_15 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_15, IOCON_INDEX_PIO1_15)
328#define P1_16 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_16, IOCON_INDEX_PIO1_16)
329#define P1_17 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_17, IOCON_INDEX_PIO1_17)
330#define P1_18 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_18, IOCON_INDEX_PIO1_18)
331#define P1_19 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_19, IOCON_INDEX_PIO1_19)
332#define P1_20 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_20, IOCON_INDEX_PIO1_20)
333#define P1_21 LPC84X_PIN_DEFINE(LPC84X_PIN_P1_21, IOCON_INDEX_PIO1_21)
334
335#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_LPC84X_PINCTRL_H_ */