23#ifndef LIBBSP_ARM_LPC24XX_IO_H
24#define LIBBSP_ARM_LPC24XX_IO_H
44#ifdef ARM_MULTILIB_ARCH_V7M
45 #define LPC24XX_IO_PORT_COUNT 6U
47 #define LPC24XX_IO_PORT_COUNT 5U
50#define LPC24XX_IO_INDEX_MAX (LPC24XX_IO_PORT_COUNT * 32U)
52#define LPC24XX_IO_INDEX_BY_PORT(port, bit) (((port) << 5U) + (bit))
54#define LPC24XX_IO_PORT(index) ((index) >> 5U)
56#define LPC24XX_IO_PORT_BIT(index) ((index) & 0x1fU)
59 #ifdef ARM_MULTILIB_ARCH_V4
63 #ifdef ARM_MULTILIB_ARCH_V4
64 LPC24XX_MODULE_BAT_RAM,
70 LPC24XX_MODULE_ETHERNET,
79 #ifdef ARM_MULTILIB_ARCH_V7M
85 #ifdef ARM_MULTILIB_ARCH_V7M
89 #ifdef ARM_MULTILIB_ARCH_V4
94 #ifdef ARM_MULTILIB_ARCH_V7M
97 LPC24XX_MODULE_SYSCON,
98 LPC24XX_MODULE_TIMER_0,
99 LPC24XX_MODULE_TIMER_1,
100 LPC24XX_MODULE_TIMER_2,
101 LPC24XX_MODULE_TIMER_3,
102 LPC24XX_MODULE_UART_0,
103 LPC24XX_MODULE_UART_1,
104 LPC24XX_MODULE_UART_2,
105 LPC24XX_MODULE_UART_3,
106 #ifdef ARM_MULTILIB_ARCH_V7M
107 LPC24XX_MODULE_UART_4,
109 #ifdef ARM_MULTILIB_ARCH_V4
115#define LPC24XX_MODULE_COUNT (LPC24XX_MODULE_USB + 1)
118 LPC24XX_MODULE_PCLK_DEFAULT = 0x4U,
119 LPC24XX_MODULE_CCLK = 0x1U,
120 LPC24XX_MODULE_CCLK_2 = 0x2U,
121 LPC24XX_MODULE_CCLK_4 = 0x0U,
122 LPC24XX_MODULE_CCLK_6 = 0x3U,
123 LPC24XX_MODULE_CCLK_8 = 0x3U
124} lpc24xx_module_clock;
126#define LPC24XX_MODULE_CLOCK_MASK 0x3U
129 LPC24XX_GPIO_DEFAULT = 0x0U,
130 LPC24XX_GPIO_RESISTOR_PULL_UP = 0x0U,
131 LPC24XX_GPIO_RESISTOR_NONE = 0x1U,
132 LPC24XX_GPIO_RESISTOR_PULL_DOWN = 0x2U,
133 LPC24XX_GPIO_INPUT = 0x0U,
134 #ifdef ARM_MULTILIB_ARCH_V7M
135 LPC17XX_GPIO_REPEATER = 0x3U,
136 LPC17XX_GPIO_HYSTERESIS = IOCON_HYS,
137 LPC17XX_GPIO_INPUT_INVERT = IOCON_INV,
138 LPC17XX_GPIO_FAST_MODE = IOCON_SLEW,
139 LPC17XX_GPIO_OPEN_DRAIN = IOCON_OD,
140 LPC17XX_GPIO_INPUT_FILTER = IOCON_FILTER,
142 LPC24XX_GPIO_OUTPUT = 0x8000U
143} lpc24xx_gpio_settings;
146 lpc24xx_module module,
147 lpc24xx_module_clock clock
151 lpc24xx_module module
154bool lpc24xx_module_is_enabled(lpc24xx_module module);
158 lpc24xx_gpio_settings settings
161static inline void lpc24xx_gpio_set(
unsigned index)
163 if (index <= LPC24XX_IO_INDEX_MAX) {
164 unsigned port = LPC24XX_IO_PORT(index);
165 unsigned bit = LPC24XX_IO_PORT_BIT(index);
167 LPC24XX_FIO [port].set = 1U << bit;
171static inline void lpc24xx_gpio_clear(
unsigned index)
173 if (index <= LPC24XX_IO_INDEX_MAX) {
174 unsigned port = LPC24XX_IO_PORT(index);
175 unsigned bit = LPC24XX_IO_PORT_BIT(index);
177 LPC24XX_FIO [port].clr = 1U << bit;
181static inline void lpc24xx_gpio_write(
unsigned index,
bool value)
184 lpc24xx_gpio_set(index);
186 lpc24xx_gpio_clear(index);
190static inline bool lpc24xx_gpio_get(
unsigned index)
192 if (index <= LPC24XX_IO_INDEX_MAX) {
193 unsigned port = LPC24XX_IO_PORT(index);
194 unsigned bit = LPC24XX_IO_PORT_BIT(index);
196 return (LPC24XX_FIO [port].pin & (1U << bit)) != 0;
227 uint16_t port_bit : 5;
228 uint16_t function : 3;
236 LPC24XX_PIN_FUNCTION_00,
237 LPC24XX_PIN_FUNCTION_01,
238 LPC24XX_PIN_FUNCTION_10,
239 LPC24XX_PIN_FUNCTION_11
240} lpc24xx_pin_function;
243 LPC17XX_PIN_TYPE_DEFAULT,
244 LPC17XX_PIN_TYPE_ADC,
245 LPC17XX_PIN_TYPE_DAC,
246 LPC17XX_PIN_TYPE_I2C,
247 LPC17XX_PIN_TYPE_I2C_FAST_PLUS,
248 LPC17XX_PIN_TYPE_OPEN_DRAIN,
249 LPC17XX_PIN_TYPE_FAST_SLEW_RATE
252#ifdef ARM_MULTILIB_ARCH_V4
253 #define LPC24XX_PIN(p, i, f0, f1) { { p, i, f0, 0, 0 } }
254 #define LPC24XX_PIN_WITH_TYPE(p, i, f0, f1, t) { { p, i, f0, t, 0 } }
255 #define LPC24XX_PIN_RANGE(p, i, j, f0, f1) \
256 { { p, i, f0, 0, 0 } }, { { p, j, f0, 0, 1 } }
257 #define LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, f0, f1, t) \
258 { { p, i, f0, t, 0 } }, { { p, j, f0, t, 1 } }
260 #define LPC24XX_PIN(p, i, f0, f1) { { p, i, f1, 0, 0 } }
261 #define LPC24XX_PIN_WITH_TYPE(p, i, f0, f1, t) { { p, i, f1, t, 0 } }
262 #define LPC24XX_PIN_RANGE(p, i, j, f0, f1) \
263 { { p, i, f1, 0, 0 } }, { { p, j, f1, 0, 1 } }
264 #define LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, f0, f1, t) \
265 { { p, i, f1, t, 0 } }, { { p, j, f1, t, 1 } }
268#define LPC24XX_PIN_TERMINAL { { 0x7, 0x1f, 0x7, 0xf, 0x1 } }
309static inline unsigned lpc24xx_pin_get_first_index(
313 return LPC24XX_IO_INDEX_BY_PORT(range->fields.port, range->fields.port_bit);
322#define LPC24XX_PIN_ADC_CHANNEL_0 \
323 LPC24XX_PIN_WITH_TYPE(0, 23, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
324#define LPC24XX_PIN_ADC_CHANNEL_1 \
325 LPC24XX_PIN_WITH_TYPE(0, 24, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
326#define LPC24XX_PIN_ADC_CHANNEL_2 \
327 LPC24XX_PIN_WITH_TYPE(0, 25, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
328#define LPC24XX_PIN_ADC_CHANNEL_3 \
329 LPC24XX_PIN_WITH_TYPE(0, 26, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
330#define LPC24XX_PIN_ADC_CHANNEL_4 \
331 LPC24XX_PIN_WITH_TYPE(1, 30, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
332#define LPC24XX_PIN_ADC_CHANNEL_5 \
333 LPC24XX_PIN_WITH_TYPE(1, 31, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
334#define LPC24XX_PIN_ADC_CHANNEL_6 \
335 LPC24XX_PIN_WITH_TYPE(0, 12, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
336#define LPC24XX_PIN_ADC_CHANNEL_7 \
337 LPC24XX_PIN_WITH_TYPE(0, 13, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
347#define LPC24XX_PIN_CAN_0_RD_P0_0 \
348 LPC24XX_PIN(0, 0, LPC24XX_PIN_FUNCTION_01, 1)
350#define LPC24XX_PIN_CAN_0_RD_P0_21 \
351 LPC24XX_PIN(0, 21, LPC24XX_PIN_FUNCTION_11, 4)
353#define LPC24XX_PIN_CAN_0_TD_P0_1 \
354 LPC24XX_PIN(0, 1, LPC24XX_PIN_FUNCTION_01, 1)
356#define LPC24XX_PIN_CAN_0_TD_P0_22 \
357 LPC24XX_PIN(0, 22, LPC24XX_PIN_FUNCTION_11, 4)
367#define LPC24XX_PIN_CAN_1_RD_P0_4 \
368 LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_10, 2)
370#define LPC24XX_PIN_CAN_1_RD_P2_7 \
371 LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_01, 1)
373#define LPC24XX_PIN_CAN_1_TD_P0_5 \
374 LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_10, 2)
376#define LPC24XX_PIN_CAN_1_TD_P2_8 \
377 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_01, 1)
387#define LPC24XX_PIN_DAC \
388 LPC24XX_PIN_WITH_TYPE(0, 26, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_DAC)
398#define LPC24XX_PIN_ETHERNET_MII \
399 LPC24XX_PIN_RANGE(1, 0, 17, LPC24XX_PIN_FUNCTION_01, 1)
401#define LPC24XX_PIN_ETHERNET_RMII_0 \
402 LPC24XX_PIN_RANGE(1, 0, 1, LPC24XX_PIN_FUNCTION_01, 1)
403#define LPC24XX_PIN_ETHERNET_RMII_1 \
404 LPC24XX_PIN(1, 4, LPC24XX_PIN_FUNCTION_01, 1)
405#define LPC24XX_PIN_ETHERNET_RMII_2 \
406 LPC24XX_PIN_RANGE(1, 8, 10, LPC24XX_PIN_FUNCTION_01, 1)
407#define LPC24XX_PIN_ETHERNET_RMII_3 \
408 LPC24XX_PIN_RANGE(1, 14, 17, LPC24XX_PIN_FUNCTION_01, 1)
418#define LPC24XX_PIN_EINT_0 \
419 LPC24XX_PIN(2, 10, LPC24XX_PIN_FUNCTION_01, 1)
420#define LPC24XX_PIN_EINT_1 \
421 LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_01, 1)
422#define LPC24XX_PIN_EINT_2 \
423 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 1)
424#define LPC24XX_PIN_EINT_3 \
425 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 1)
435#define LPC24XX_PIN_EMC(p, i) \
436 LPC24XX_PIN_WITH_TYPE(p, i, LPC24XX_PIN_FUNCTION_01, 1, \
437 LPC17XX_PIN_TYPE_FAST_SLEW_RATE)
439#define LPC24XX_PIN_EMC_RANGE(p, i, j) \
440 LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, LPC24XX_PIN_FUNCTION_01, 1, \
441 LPC17XX_PIN_TYPE_FAST_SLEW_RATE)
443#define LPC24XX_PIN_EMC_CS_0 LPC24XX_PIN_EMC(4, 30)
444#define LPC24XX_PIN_EMC_CS_1 LPC24XX_PIN_EMC(4, 31)
445#define LPC24XX_PIN_EMC_CS_2 LPC24XX_PIN_EMC(2, 14)
446#define LPC24XX_PIN_EMC_CS_3 LPC24XX_PIN_EMC(2, 15)
448#define LPC24XX_PIN_EMC_DYCS_0 LPC24XX_PIN_EMC(2, 20)
449#define LPC24XX_PIN_EMC_DYCS_1 LPC24XX_PIN_EMC(2, 21)
450#define LPC24XX_PIN_EMC_DYCS_2 LPC24XX_PIN_EMC(2, 22)
451#define LPC24XX_PIN_EMC_DYCS_3 LPC24XX_PIN_EMC(2, 23)
453#define LPC24XX_PIN_EMC_OE LPC24XX_PIN_EMC(4, 24)
454#define LPC24XX_PIN_EMC_WE LPC24XX_PIN_EMC(4, 25)
455#define LPC24XX_PIN_EMC_CAS LPC24XX_PIN_EMC(2, 16)
456#define LPC24XX_PIN_EMC_RAS LPC24XX_PIN_EMC(2, 17)
458#define LPC24XX_PIN_EMC_CLK_0 LPC24XX_PIN_EMC(2, 18)
459#define LPC24XX_PIN_EMC_CLK_1 LPC24XX_PIN_EMC(2, 19)
461#define LPC24XX_PIN_EMC_CKE_0 LPC24XX_PIN_EMC(2, 24)
462#define LPC24XX_PIN_EMC_CKE_1 LPC24XX_PIN_EMC(2, 25)
463#define LPC24XX_PIN_EMC_CKE_2 LPC24XX_PIN_EMC(2, 26)
464#define LPC24XX_PIN_EMC_CKE_3 LPC24XX_PIN_EMC(2, 27)
466#define LPC24XX_PIN_EMC_DQM_0 LPC24XX_PIN_EMC(2, 28)
467#define LPC24XX_PIN_EMC_DQM_1 LPC24XX_PIN_EMC(2, 29)
468#define LPC24XX_PIN_EMC_DQM_2 LPC24XX_PIN_EMC(2, 30)
469#define LPC24XX_PIN_EMC_DQM_3 LPC24XX_PIN_EMC(2, 31)
471#define LPC24XX_PIN_EMC_BLS0 LPC24XX_PIN_EMC(4, 26)
472#define LPC24XX_PIN_EMC_BLS1 LPC24XX_PIN_EMC(4, 27)
473#define LPC24XX_PIN_EMC_BLS2 LPC24XX_PIN_EMC(4, 28)
474#define LPC24XX_PIN_EMC_BLS3 LPC24XX_PIN_EMC(4, 29)
476#define LPC24XX_PIN_EMC_D_0_15 LPC24XX_PIN_EMC_RANGE(3, 0, 15)
477#define LPC24XX_PIN_EMC_D_15_31 LPC24XX_PIN_EMC_RANGE(3, 15, 31)
478#define LPC24XX_PIN_EMC_D_0_31 LPC24XX_PIN_EMC_RANGE(3, 0, 31)
480#define LPC24XX_PIN_EMC_A_0_12 LPC24XX_PIN_EMC_RANGE(4, 0, 12)
481#define LPC24XX_PIN_EMC_A_0_13 LPC24XX_PIN_EMC_RANGE(4, 0, 13)
482#define LPC24XX_PIN_EMC_A_0_14 LPC24XX_PIN_EMC_RANGE(4, 0, 14)
483#define LPC24XX_PIN_EMC_A_0_15 LPC24XX_PIN_EMC_RANGE(4, 0, 15)
484#define LPC24XX_PIN_EMC_A_0_16 \
485 LPC24XX_PIN_EMC_A_0_15, \
486 LPC24XX_PIN_EMC(4, 16)
487#define LPC24XX_PIN_EMC_A_0_17 \
488 LPC24XX_PIN_EMC_A_0_15, \
489 LPC24XX_PIN_EMC_RANGE(4, 16, 17)
490#define LPC24XX_PIN_EMC_A_0_18 \
491 LPC24XX_PIN_EMC_A_0_15, \
492 LPC24XX_PIN_EMC_RANGE(4, 16, 18)
493#define LPC24XX_PIN_EMC_A_0_19 \
494 LPC24XX_PIN_EMC_A_0_15, \
495 LPC24XX_PIN_EMC_RANGE(4, 16, 19)
496#define LPC24XX_PIN_EMC_A_0_20 \
497 LPC24XX_PIN_EMC_A_0_15, \
498 LPC24XX_PIN_EMC_RANGE(4, 16, 20)
499#define LPC24XX_PIN_EMC_A_0_21 \
500 LPC24XX_PIN_EMC_A_0_15, \
501 LPC24XX_PIN_EMC_RANGE(4, 16, 21)
502#define LPC24XX_PIN_EMC_A_0_22 \
503 LPC24XX_PIN_EMC_A_0_15, \
504 LPC24XX_PIN_EMC_RANGE(4, 16, 22)
505#define LPC24XX_PIN_EMC_A_0_23 \
506 LPC24XX_PIN_EMC_A_0_15, \
507 LPC24XX_PIN_EMC_RANGE(4, 16, 23)
508#define LPC24XX_PIN_EMC_A_0_24 \
509 LPC24XX_PIN_EMC_A_0_23, \
510 LPC24XX_PIN_EMC(5, 24)
511#define LPC24XX_PIN_EMC_A_0_25 \
512 LPC24XX_PIN_EMC_A_0_23, \
513 LPC24XX_PIN_EMC_RANGE(5, 24, 25)
523#define LPC24XX_PIN_I2C_0_SDA \
524 LPC24XX_PIN_WITH_TYPE(0, 27, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_I2C)
525#define LPC24XX_PIN_I2C_0_SCL \
526 LPC24XX_PIN_WITH_TYPE(0, 28, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_I2C)
536#define LPC24XX_PIN_I2C_1_SDA_P0_0 \
537 LPC24XX_PIN_WITH_TYPE(0, 0, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
538#define LPC24XX_PIN_I2C_1_SDA_P0_19 \
539 LPC24XX_PIN_WITH_TYPE(0, 19, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
540#define LPC24XX_PIN_I2C_1_SDA_P2_14 \
541 LPC24XX_PIN_WITH_TYPE(2, 14, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
543#define LPC24XX_PIN_I2C_1_SCL_P0_1 \
544 LPC24XX_PIN_WITH_TYPE(0, 1, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
545#define LPC24XX_PIN_I2C_1_SCL_P0_20 \
546 LPC24XX_PIN_WITH_TYPE(0, 20, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
547#define LPC24XX_PIN_I2C_1_SCL_P2_15 \
548 LPC24XX_PIN_WITH_TYPE(2, 15, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
558#define LPC24XX_PIN_I2C_2_SDA_P0_10 \
559 LPC24XX_PIN_WITH_TYPE(0, 10, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
560#define LPC24XX_PIN_I2C_2_SDA_P2_30 \
561 LPC24XX_PIN_WITH_TYPE(2, 30, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
562#define LPC24XX_PIN_I2C_2_SDA_P4_20 \
563 LPC24XX_PIN_WITH_TYPE(4, 20, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
565#define LPC24XX_PIN_I2C_2_SCL_P0_11 \
566 LPC24XX_PIN_WITH_TYPE(0, 11, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
567#define LPC24XX_PIN_I2C_2_SCL_P2_31 \
568 LPC24XX_PIN_WITH_TYPE(2, 31, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
569#define LPC24XX_PIN_I2C_2_SCL_P4_21 \
570 LPC24XX_PIN_WITH_TYPE(4, 21, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
580#define LPC24XX_PIN_I2S_RX_CLK_P0_4 \
581 LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_01, 1)
582#define LPC24XX_PIN_I2S_RX_CLK_P0_23 \
583 LPC24XX_PIN(0, 23, LPC24XX_PIN_FUNCTION_10, 2)
585#define LPC24XX_PIN_I2S_RX_WS_P0_5 \
586 LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_01, 1)
587#define LPC24XX_PIN_I2S_RX_WS_P0_24 \
588 LPC24XX_PIN(0, 24, LPC24XX_PIN_FUNCTION_10, 2)
590#define LPC24XX_PIN_I2S_RX_SDA_P0_6 \
591 LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_01, 1)
592#define LPC24XX_PIN_I2S_RX_SDA_P0_25 \
593 LPC24XX_PIN(0, 25, LPC24XX_PIN_FUNCTION_10, 2)
595#define LPC24XX_PIN_I2S_TX_CLK_P0_7 \
596 LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_01, 1)
597#define LPC24XX_PIN_I2S_TX_CLK_P2_11 \
598 LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_11, 3)
600#define LPC24XX_PIN_I2S_TX_WS_P0_8 \
601 LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_01, 1)
602#define LPC24XX_PIN_I2S_TX_WS_P2_12 \
603 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_11, 3)
605#define LPC24XX_PIN_I2S_TX_SDA_P0_9 \
606 LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_01, 1)
607#define LPC24XX_PIN_I2S_TX_SDA_P2_13 \
608 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_11, 3)
618#define LPC24XX_PIN_LCD_PWR \
619 LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_11, 7)
620#define LPC24XX_PIN_LCD_LE \
621 LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_11, 7)
622#define LPC24XX_PIN_LCD_DCLK \
623 LPC24XX_PIN(2, 2, LPC24XX_PIN_FUNCTION_11, 7)
624#define LPC24XX_PIN_LCD_FP \
625 LPC24XX_PIN(2, 3, LPC24XX_PIN_FUNCTION_11, 7)
626#define LPC24XX_PIN_LCD_ENAB_M \
627 LPC24XX_PIN(2, 4, LPC24XX_PIN_FUNCTION_11, 7)
628#define LPC24XX_PIN_LCD_LP \
629 LPC24XX_PIN(2, 5, LPC24XX_PIN_FUNCTION_11, 7)
630#define LPC24XX_PIN_LCD_CLKIN \
631 LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_01, 7)
633#define LPC24XX_PIN_LCD_VD_0_P0_4 \
634 LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_01, 7)
635#define LPC24XX_PIN_LCD_VD_0_P2_6 \
636 LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_11, 6)
637#define LPC24XX_PIN_LCD_VD_1_P0_5 \
638 LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_01, 7)
639#define LPC24XX_PIN_LCD_VD_1_P2_7 \
640 LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_11, 6)
641#define LPC24XX_PIN_LCD_VD_2_P2_8 \
642 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_11, 6)
643#define LPC24XX_PIN_LCD_VD_2_P4_28 \
644 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 7)
645#define LPC24XX_PIN_LCD_VD_3_P2_9 \
646 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_11, 6)
647#define LPC24XX_PIN_LCD_VD_3_P2_12 \
648 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 5)
649#define LPC24XX_PIN_LCD_VD_3_P4_29 \
650 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 7)
651#define LPC24XX_PIN_LCD_VD_4_P2_6 \
652 LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_11, 7)
653#define LPC24XX_PIN_LCD_VD_4_P2_12 \
654 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 4)
655#define LPC24XX_PIN_LCD_VD_5_P2_7 \
656 LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_11, 7)
657#define LPC24XX_PIN_LCD_VD_5_P2_13 \
658 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 5)
659#define LPC24XX_PIN_LCD_VD_6_P1_20 \
660 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 6)
661#define LPC24XX_PIN_LCD_VD_6_P2_8 \
662 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_11, 7)
663#define LPC24XX_PIN_LCD_VD_6_P4_28 \
664 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 5)
665#define LPC24XX_PIN_LCD_VD_7_P1_21 \
666 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 6)
667#define LPC24XX_PIN_LCD_VD_7_P2_9 \
668 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_11, 7)
669#define LPC24XX_PIN_LCD_VD_7_P4_29 \
670 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 5)
671#define LPC24XX_PIN_LCD_VD_8_P0_6 \
672 LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_01, 7)
673#define LPC24XX_PIN_LCD_VD_8_P1_22 \
674 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 6)
675#define LPC24XX_PIN_LCD_VD_8_P2_12 \
676 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 6)
677#define LPC24XX_PIN_LCD_VD_9_P0_7 \
678 LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_01, 7)
679#define LPC24XX_PIN_LCD_VD_9_P1_23 \
680 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 6)
681#define LPC24XX_PIN_LCD_VD_9_P2_13 \
682 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 6)
683#define LPC24XX_PIN_LCD_VD_10_P1_20 \
684 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 7)
685#define LPC24XX_PIN_LCD_VD_10_P1_24 \
686 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 6)
687#define LPC24XX_PIN_LCD_VD_10_P4_28 \
688 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 6)
689#define LPC24XX_PIN_LCD_VD_11_P1_21 \
690 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 7)
691#define LPC24XX_PIN_LCD_VD_11_P1_25 \
692 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 6)
693#define LPC24XX_PIN_LCD_VD_11_P4_29 \
694 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 6)
695#define LPC24XX_PIN_LCD_VD_12_P1_22 \
696 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 7)
697#define LPC24XX_PIN_LCD_VD_12_P1_26 \
698 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 6)
699#define LPC24XX_PIN_LCD_VD_13_P1_23 \
700 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 7)
701#define LPC24XX_PIN_LCD_VD_13_P1_27 \
702 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 6)
703#define LPC24XX_PIN_LCD_VD_14_P1_24 \
704 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 7)
705#define LPC24XX_PIN_LCD_VD_14_P1_28 \
706 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 6)
707#define LPC24XX_PIN_LCD_VD_15_P1_25 \
708 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 7)
709#define LPC24XX_PIN_LCD_VD_15_P1_29 \
710 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_01, 6)
711#define LPC24XX_PIN_LCD_VD_16_P0_8 \
712 LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_01, 7)
713#define LPC24XX_PIN_LCD_VD_17_P0_9 \
714 LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_01, 7)
715#define LPC24XX_PIN_LCD_VD_18_P2_12 \
716 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 7)
717#define LPC24XX_PIN_LCD_VD_19_P2_13 \
718 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 7)
719#define LPC24XX_PIN_LCD_VD_20_P1_26 \
720 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 7)
721#define LPC24XX_PIN_LCD_VD_21_P1_27 \
722 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 7)
723#define LPC24XX_PIN_LCD_VD_22_P1_28 \
724 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 7)
725#define LPC24XX_PIN_LCD_VD_23_P1_29 \
726 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_01, 7)
736#define LPC24XX_PIN_PWM_0_CHANNEL_1_P1_2 \
737 LPC24XX_PIN(1, 2, LPC24XX_PIN_FUNCTION_11, 3)
738#define LPC24XX_PIN_PWM_0_CHANNEL_1_P3_16 \
739 LPC24XX_PIN(3, 16, LPC24XX_PIN_FUNCTION_10, 2)
741#define LPC24XX_PIN_PWM_0_CHANNEL_2_P1_3 \
742 LPC24XX_PIN(1, 3, LPC24XX_PIN_FUNCTION_11, 3)
743#define LPC24XX_PIN_PWM_0_CHANNEL_2_P3_17 \
744 LPC24XX_PIN(3, 17, LPC24XX_PIN_FUNCTION_10, 2)
746#define LPC24XX_PIN_PWM_0_CHANNEL_3_P1_5 \
747 LPC24XX_PIN(1, 5, LPC24XX_PIN_FUNCTION_11, 3)
748#define LPC24XX_PIN_PWM_0_CHANNEL_3_P3_18 \
749 LPC24XX_PIN(3, 18, LPC24XX_PIN_FUNCTION_10, 2)
751#define LPC24XX_PIN_PWM_0_CHANNEL_4_P1_6 \
752 LPC24XX_PIN(1, 6, LPC24XX_PIN_FUNCTION_11, 3)
753#define LPC24XX_PIN_PWM_0_CHANNEL_4_P3_19 \
754 LPC24XX_PIN(3, 19, LPC24XX_PIN_FUNCTION_10, 2)
756#define LPC24XX_PIN_PWM_0_CHANNEL_5_P1_7 \
757 LPC24XX_PIN(1, 7, LPC24XX_PIN_FUNCTION_11, 3)
758#define LPC24XX_PIN_PWM_0_CHANNEL_5_P3_20 \
759 LPC24XX_PIN(3, 20, LPC24XX_PIN_FUNCTION_10, 2)
761#define LPC24XX_PIN_PWM_0_CHANNEL_6_P1_11 \
762 LPC24XX_PIN(1, 11, LPC24XX_PIN_FUNCTION_11, 3)
763#define LPC24XX_PIN_PWM_0_CHANNEL_6_P3_21 \
764 LPC24XX_PIN(3, 21, LPC24XX_PIN_FUNCTION_10, 2)
766#define LPC24XX_PIN_PWM_0_CAPTURE_0_P1_12 \
767 LPC24XX_PIN(1, 12, LPC24XX_PIN_FUNCTION_11, 3)
768#define LPC24XX_PIN_PWM_0_CAPTURE_0_P3_22 \
769 LPC24XX_PIN(3, 22, LPC24XX_PIN_FUNCTION_10, 2)
779#define LPC24XX_PIN_PWM_1_CHANNEL_1_P1_18 \
780 LPC24XX_PIN(1, 18, LPC24XX_PIN_FUNCTION_10, 2)
781#define LPC24XX_PIN_PWM_1_CHANNEL_1_P2_0 \
782 LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_01, 1)
783#define LPC24XX_PIN_PWM_1_CHANNEL_1_P3_24 \
784 LPC24XX_PIN(3, 24, LPC24XX_PIN_FUNCTION_11, 2)
786#define LPC24XX_PIN_PWM_1_CHANNEL_2_P1_20 \
787 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_10, 2)
788#define LPC24XX_PIN_PWM_1_CHANNEL_2_P2_1 \
789 LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_01, 1)
790#define LPC24XX_PIN_PWM_1_CHANNEL_2_P3_25 \
791 LPC24XX_PIN(3, 25, LPC24XX_PIN_FUNCTION_11, 2)
793#define LPC24XX_PIN_PWM_1_CHANNEL_3_P1_21 \
794 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_10, 2)
795#define LPC24XX_PIN_PWM_1_CHANNEL_3_P2_2 \
796 LPC24XX_PIN(2, 2, LPC24XX_PIN_FUNCTION_01, 1)
797#define LPC24XX_PIN_PWM_1_CHANNEL_3_P3_26 \
798 LPC24XX_PIN(3, 26, LPC24XX_PIN_FUNCTION_11, 2)
800#define LPC24XX_PIN_PWM_1_CHANNEL_4_P1_23 \
801 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_10, 2)
802#define LPC24XX_PIN_PWM_1_CHANNEL_4_P2_3 \
803 LPC24XX_PIN(2, 3, LPC24XX_PIN_FUNCTION_01, 1)
804#define LPC24XX_PIN_PWM_1_CHANNEL_4_P3_27 \
805 LPC24XX_PIN(3, 27, LPC24XX_PIN_FUNCTION_11, 2)
807#define LPC24XX_PIN_PWM_1_CHANNEL_5_P1_24 \
808 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_10, 2)
809#define LPC24XX_PIN_PWM_1_CHANNEL_5_P2_4 \
810 LPC24XX_PIN(2, 4, LPC24XX_PIN_FUNCTION_01, 1)
811#define LPC24XX_PIN_PWM_1_CHANNEL_5_P3_28 \
812 LPC24XX_PIN(3, 28, LPC24XX_PIN_FUNCTION_11, 2)
814#define LPC24XX_PIN_PWM_1_CHANNEL_6_P1_26 \
815 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_10, 2)
816#define LPC24XX_PIN_PWM_1_CHANNEL_6_P2_5 \
817 LPC24XX_PIN(2, 5, LPC24XX_PIN_FUNCTION_01, 1)
818#define LPC24XX_PIN_PWM_1_CHANNEL_6_P3_29 \
819 LPC24XX_PIN(3, 29, LPC24XX_PIN_FUNCTIO9_11, 2)
821#define LPC24XX_PIN_PWM_1_CAPTURE_0_P1_28 \
822 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_10, 2)
823#define LPC24XX_PIN_PWM_1_CAPTURE_0_P2_7 \
824 LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_01, 1)
825#define LPC24XX_PIN_PWM_1_CAPTURE_0_P3_23 \
826 LPC24XX_PIN(3, 23, LPC24XX_PIN_FUNCTION_11, 2)
828#define LPC24XX_PIN_PWM_1_CAPTURE_1_P1_29 \
829 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_10, 2)
833#ifdef ARM_MULTILIB_ARCH_V4
841#define LPC24XX_PIN_SPI_SCK \
842 LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_11)
843#define LPC24XX_PIN_SPI_SSEL \
844 LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_11)
845#define LPC24XX_PIN_SPI_MISO \
846 LPC24XX_PIN(0, 17, LPC24XX_PIN_FUNCTION_11)
847#define LPC24XX_PIN_SPI_MOSI \
848 LPC24XX_PIN(0, 18, LPC24XX_PIN_FUNCTION_11)
860#define LPC24XX_PIN_SSP_0_SCK_P0_15 \
861 LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_10, 2)
862#define LPC24XX_PIN_SSP_0_SCK_P1_20 \
863 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_11, 5)
864#define LPC24XX_PIN_SSP_0_SCK_P2_22 \
865 LPC24XX_PIN(2, 22, LPC24XX_PIN_FUNCTION_11, 2)
867#define LPC24XX_PIN_SSP_0_SSEL_P0_16 \
868 LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_10, 2)
869#define LPC24XX_PIN_SSP_0_SSEL_P1_21 \
870 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_11, 3)
871#define LPC24XX_PIN_SSP_0_SSEL_P2_23 \
872 LPC24XX_PIN(2, 23, LPC24XX_PIN_FUNCTION_11, 2)
874#define LPC24XX_PIN_SSP_0_MISO_P0_17 \
875 LPC24XX_PIN(0, 17, LPC24XX_PIN_FUNCTION_10, 2)
876#define LPC24XX_PIN_SSP_0_MISO_P1_23 \
877 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_11, 5)
878#define LPC24XX_PIN_SSP_0_MISO_P2_26 \
879 LPC24XX_PIN(2, 26, LPC24XX_PIN_FUNCTION_11, 2)
881#define LPC24XX_PIN_SSP_0_MOSI_P0_18 \
882 LPC24XX_PIN(0, 18, LPC24XX_PIN_FUNCTION_10, 2)
883#define LPC24XX_PIN_SSP_0_MOSI_P1_24 \
884 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_11, 5)
885#define LPC24XX_PIN_SSP_0_MOSI_P2_27 \
886 LPC24XX_PIN(2, 27, LPC24XX_PIN_FUNCTION_11, 2)
896#define LPC24XX_PIN_SSP_1_SCK_P0_6 \
897 LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_10, 2)
898#define LPC24XX_PIN_SSP_1_SCK_P0_12 \
899 LPC24XX_PIN(1, 31, LPC24XX_PIN_FUNCTION_10, 2)
900#define LPC24XX_PIN_SSP_1_SCK_P4_20 \
901 LPC24XX_PIN(4, 20, LPC24XX_PIN_FUNCTION_11, 3)
903#define LPC24XX_PIN_SSP_1_SSEL_P0_7 \
904 LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_10, 2)
905#define LPC24XX_PIN_SSP_1_SSEL_P0_13 \
906 LPC24XX_PIN(0, 14, LPC24XX_PIN_FUNCTION_11, 2)
907#define LPC24XX_PIN_SSP_1_SSEL_P4_21 \
908 LPC24XX_PIN(4, 21, LPC24XX_PIN_FUNCTION_11, 3)
910#define LPC24XX_PIN_SSP_1_MISO_P0_8 \
911 LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_10, 2)
912#define LPC24XX_PIN_SSP_1_MISO_P0_14 \
913 LPC24XX_PIN(0, 12, LPC24XX_PIN_FUNCTION_10, 2)
914#define LPC24XX_PIN_SSP_1_MISO_P4_22 \
915 LPC24XX_PIN(4, 22, LPC24XX_PIN_FUNCTION_11, 3)
917#define LPC24XX_PIN_SSP_1_MOSI_P0_9 \
918 LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_10, 2)
919#define LPC24XX_PIN_SSP_1_MOSI_P1_31 \
920 LPC24XX_PIN(0, 13, LPC24XX_PIN_FUNCTION_10, 2)
921#define LPC24XX_PIN_SSP_1_MOSI_P4_23 \
922 LPC24XX_PIN(4, 23, LPC24XX_PIN_FUNCTION_11, 3)
926#ifdef ARM_MULTILIB_ARCH_V7M
934#define LPC24XX_PIN_SSP_2_SCK_P1_0 \
935 LPC24XX_PIN(1, 0, LPC24XX_PIN_FUNCTION_00, 4)
936#define LPC24XX_PIN_SSP_2_SCK_P5_2 \
937 LPC24XX_PIN(5, 2, LPC24XX_PIN_FUNCTION_00, 2)
939#define LPC24XX_PIN_SSP_2_SSEL_P1_8 \
940 LPC24XX_PIN(1, 8, LPC24XX_PIN_FUNCTION_00, 4)
941#define LPC24XX_PIN_SSP_2_SSEL_P5_3 \
942 LPC24XX_PIN(5, 3, LPC24XX_PIN_FUNCTION_00, 2)
944#define LPC24XX_PIN_SSP_2_MISO_P1_4 \
945 LPC24XX_PIN(1, 4, LPC24XX_PIN_FUNCTION_00, 4)
946#define LPC24XX_PIN_SSP_2_MISO_P5_1 \
947 LPC24XX_PIN(5, 1, LPC24XX_PIN_FUNCTION_00, 2)
949#define LPC24XX_PIN_SSP_2_MOSI_P1_1 \
950 LPC24XX_PIN(1, 1, LPC24XX_PIN_FUNCTION_00, 4)
951#define LPC24XX_PIN_SSP_2_MOSI_P5_0 \
952 LPC24XX_PIN(5, 0, LPC24XX_PIN_FUNCTION_00, 2)
964#define LPC24XX_PIN_UART_0_TXD \
965 LPC24XX_PIN(0, 2, LPC24XX_PIN_FUNCTION_01, 1)
967#define LPC24XX_PIN_UART_0_RXD \
968 LPC24XX_PIN(0, 3, LPC24XX_PIN_FUNCTION_01, 1)
978#define LPC24XX_PIN_UART_1_TXD_P0_15 \
979 LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_01, 1)
980#define LPC24XX_PIN_UART_1_TXD_P2_0 \
981 LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_10, 2)
982#define LPC24XX_PIN_UART_1_TXD_P3_16 \
983 LPC24XX_PIN(3, 16, LPC24XX_PIN_FUNCTION_11, 3)
985#define LPC24XX_PIN_UART_1_RXD_P0_16 \
986 LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_01, 1)
987#define LPC24XX_PIN_UART_1_RXD_P2_1 \
988 LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_10, 2)
989#define LPC24XX_PIN_UART_1_RXD_P3_17 \
990 LPC24XX_PIN(3, 17, LPC24XX_PIN_FUNCTION_11, 3)
1000#define LPC24XX_PIN_UART_2_TXD_P0_10 \
1001 LPC24XX_PIN(0, 10, LPC24XX_PIN_FUNCTION_01, 1)
1002#define LPC24XX_PIN_UART_2_TXD_P2_8 \
1003 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_10, 2)
1004#define LPC24XX_PIN_UART_2_TXD_P4_22 \
1005 LPC24XX_PIN(4, 22, LPC24XX_PIN_FUNCTION_10, 2)
1007#define LPC24XX_PIN_UART_2_RXD_P0_11 \
1008 LPC24XX_PIN(0, 11, LPC24XX_PIN_FUNCTION_01, 1)
1009#define LPC24XX_PIN_UART_2_RXD_P2_9 \
1010 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_10, 2)
1011#define LPC24XX_PIN_UART_2_RXD_P4_23 \
1012 LPC24XX_PIN(4, 23, LPC24XX_PIN_FUNCTION_10, 2)
1022#define LPC24XX_PIN_UART_3_TXD_P0_0 \
1023 LPC24XX_PIN(0, 0, LPC24XX_PIN_FUNCTION_10, 2)
1024#define LPC24XX_PIN_UART_3_TXD_P0_25 \
1025 LPC24XX_PIN(0, 25, LPC24XX_PIN_FUNCTION_11, 3)
1026#define LPC24XX_PIN_UART_3_TXD_P4_28 \
1027 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_11, 2)
1029#define LPC24XX_PIN_UART_3_RXD_P0_1 \
1030 LPC24XX_PIN(0, 1, LPC24XX_PIN_FUNCTION_10, 2)
1031#define LPC24XX_PIN_UART_3_RXD_P0_26 \
1032 LPC24XX_PIN(0, 26, LPC24XX_PIN_FUNCTION_11, 3)
1033#define LPC24XX_PIN_UART_3_RXD_P4_29 \
1034 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_11, 2)
1038#ifdef ARM_MULTILIB_ARCH_V7M
1046#define LPC24XX_PIN_UART_4_TXD_P0_22 \
1047 LPC24XX_PIN(0, 22, LPC24XX_PIN_FUNCTION_00, 3)
1048#define LPC24XX_PIN_UART_4_TXD_P1_29 \
1049 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_00, 5)
1050#define LPC24XX_PIN_UART_4_TXD_P5_4 \
1051 LPC24XX_PIN(5, 4, LPC24XX_PIN_FUNCTION_00, 4)
1053#define LPC24XX_PIN_UART_4_RXD_P2_9 \
1054 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_00, 3)
1055#define LPC24XX_PIN_UART_4_RXD_P5_3 \
1056 LPC24XX_PIN(5, 3, LPC24XX_PIN_FUNCTION_00, 4)
1058#define LPC24XX_PIN_UART_4_OE_P0_21 \
1059 LPC24XX_PIN(0, 21, LPC24XX_PIN_FUNCTION_00, 3)
1061#define LPC24XX_PIN_UART_4_SCLK_P0_21 \
1062 LPC24XX_PIN(0, 21, LPC24XX_PIN_FUNCTION_00, 5)
1074#define LPC24XX_PIN_USB_D_PLUS_1\
1075 LPC24XX_PIN(0, 29, LPC24XX_PIN_FUNCTION_01, 1)
1076#define LPC24XX_PIN_USB_D_MINUS_1\
1077 LPC24XX_PIN(0, 30, LPC24XX_PIN_FUNCTION_01, 1)
1078#define LPC24XX_PIN_USB_UP_LED_1\
1079 LPC24XX_PIN(1, 18, LPC24XX_PIN_FUNCTION_01, 1)
1080#define LPC24XX_PIN_USB_TX_E_1\
1081 LPC24XX_PIN(1, 19, LPC24XX_PIN_FUNCTION_01, 1)
1082#define LPC24XX_PIN_USB_PPWR_1\
1083 LPC24XX_PIN(1, 19, LPC24XX_PIN_FUNCTION_10, 2)
1084#define LPC24XX_PIN_USB_TX_DP_1\
1085 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 1)
1086#define LPC24XX_PIN_USB_TX_DM_1\
1087 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 1)
1088#define LPC24XX_PIN_USB_RCV_1\
1089 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 1)
1090#define LPC24XX_PIN_USB_PWRD_1\
1091 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_10, 2)
1092#define LPC24XX_PIN_USB_RX_DP_1\
1093 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 1)
1094#define LPC24XX_PIN_USB_RX_DM_1\
1095 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 1)
1096#define LPC24XX_PIN_USB_LS_1\
1097 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 1)
1098#define LPC24XX_PIN_USB_HSTEN_1\
1099 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_10, 2)
1100#define LPC24XX_PIN_USB_SSPND_1\
1101 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 1)
1102#define LPC24XX_PIN_USB_INT_1\
1103 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 1)
1104#define LPC24XX_PIN_USB_OVRCR_1\
1105 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_10, 2)
1106#define LPC24XX_PIN_USB_SCL_1\
1107 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 1)
1108#define LPC24XX_PIN_USB_SDA_1 \
1109 LPC24XX_PIN_WITH_TYPE( \
1110 1, 29, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_OPEN_DRAIN \
1112#define LPC24XX_PIN_USB_CONNECT_1\
1113 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_01, 1)
1123#define LPC24XX_PIN_USB_PPWR_2\
1124 LPC24XX_PIN(0, 12, LPC24XX_PIN_FUNCTION_01, 1)
1125#define LPC24XX_PIN_USB_UP_LED_2\
1126 LPC24XX_PIN(0, 13, LPC24XX_PIN_FUNCTION_01, 1)
1127#define LPC24XX_PIN_USB_HSTEN_2\
1128 LPC24XX_PIN(0, 14, LPC24XX_PIN_FUNCTION_01, 1)
1129#define LPC24XX_PIN_USB_CONNECT_2\
1130 LPC24XX_PIN(0, 14, LPC24XX_PIN_FUNCTION_01, 3)
1131#define LPC24XX_PIN_USB_D_PLUS_2\
1132 LPC24XX_PIN(0, 31, LPC24XX_PIN_FUNCTION_01, 1)
1133#define LPC24XX_PIN_USB_PWRD_2\
1134 LPC24XX_PIN(1, 30, LPC24XX_PIN_FUNCTION_01, 1)
1135#define LPC24XX_PIN_USB_OVRCR_2\
1136 LPC24XX_PIN(1, 31, LPC24XX_PIN_FUNCTION_01, 1)
rtems_status_code
Classic API Status.
Definition: status.h:43
lpc24xx_pin_action
Definition: io.h:202
rtems_status_code lpc24xx_pin_config(const lpc24xx_pin_range *pins, lpc24xx_pin_action action)
Performs the action with the pins.
Definition: io.c:517
@ LPC24XX_PIN_SET_INPUT
Configures the pins as input.
Definition: io.h:216
@ LPC24XX_PIN_CHECK_INPUT
Checks if all pins are configured as input.
Definition: io.h:221
@ LPC24XX_PIN_SET_FUNCTION
Sets the pin function.
Definition: io.h:206
@ LPC24XX_PIN_CHECK_FUNCTION
Checks if all pins are configured with the specified function.
Definition: io.h:211