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
154 bool lpc24xx_module_is_enabled(lpc24xx_module module);
158 lpc24xx_gpio_settings settings
161 static 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;
171 static 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;
181 static inline void lpc24xx_gpio_write(
unsigned index,
bool value)
184 lpc24xx_gpio_set(index);
186 lpc24xx_gpio_clear(index);
190 static 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 } } 309 static 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)
Sets the pin function.
Definition: io.h:206
rtems_status_code
Classic API Status.
Definition: status.h:43
lpc24xx_pin_action
Definition: io.h:202
Checks if all pins are configured as input.
Definition: io.h:221
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
Checks if all pins are configured with the specified function.
Definition: io.h:211
Configures the pins as input.
Definition: io.h:216