23 #ifndef LIBBSP_ARM_LPC24XX_IO_H 24 #define LIBBSP_ARM_LPC24XX_IO_H 44 #define LPC24XX_IO_PORT_COUNT 5U 46 #define LPC24XX_IO_INDEX_MAX (LPC24XX_IO_PORT_COUNT * 32U) 48 #define LPC24XX_IO_INDEX_BY_PORT(port, bit) (((port) << 5U) + (bit)) 50 #define LPC24XX_IO_PORT(index) ((index) >> 5U) 52 #define LPC24XX_IO_PORT_BIT(index) ((index) & 0x1fU) 55 #ifdef ARM_MULTILIB_ARCH_V4 59 #ifdef ARM_MULTILIB_ARCH_V4 60 LPC24XX_MODULE_BAT_RAM,
66 LPC24XX_MODULE_ETHERNET,
75 #ifdef ARM_MULTILIB_ARCH_V7M 81 #ifdef ARM_MULTILIB_ARCH_V7M 85 #ifdef ARM_MULTILIB_ARCH_V4 90 #ifdef ARM_MULTILIB_ARCH_V7M 93 LPC24XX_MODULE_SYSCON,
94 LPC24XX_MODULE_TIMER_0,
95 LPC24XX_MODULE_TIMER_1,
96 LPC24XX_MODULE_TIMER_2,
97 LPC24XX_MODULE_TIMER_3,
98 LPC24XX_MODULE_UART_0,
99 LPC24XX_MODULE_UART_1,
100 LPC24XX_MODULE_UART_2,
101 LPC24XX_MODULE_UART_3,
102 #ifdef ARM_MULTILIB_ARCH_V7M 103 LPC24XX_MODULE_UART_4,
105 #ifdef ARM_MULTILIB_ARCH_V4 111 #define LPC24XX_MODULE_COUNT (LPC24XX_MODULE_USB + 1) 114 LPC24XX_MODULE_PCLK_DEFAULT = 0x4U,
115 LPC24XX_MODULE_CCLK = 0x1U,
116 LPC24XX_MODULE_CCLK_2 = 0x2U,
117 LPC24XX_MODULE_CCLK_4 = 0x0U,
118 LPC24XX_MODULE_CCLK_6 = 0x3U,
119 LPC24XX_MODULE_CCLK_8 = 0x3U
120 } lpc24xx_module_clock;
122 #define LPC24XX_MODULE_CLOCK_MASK 0x3U 125 LPC24XX_GPIO_DEFAULT = 0x0U,
126 LPC24XX_GPIO_RESISTOR_PULL_UP = 0x0U,
127 LPC24XX_GPIO_RESISTOR_NONE = 0x1U,
128 LPC24XX_GPIO_RESISTOR_PULL_DOWN = 0x2U,
129 LPC24XX_GPIO_INPUT = 0x0U,
130 #ifdef ARM_MULTILIB_ARCH_V7M 131 LPC17XX_GPIO_REPEATER = 0x3U,
132 LPC17XX_GPIO_HYSTERESIS = IOCON_HYS,
133 LPC17XX_GPIO_INPUT_INVERT = IOCON_INV,
134 LPC17XX_GPIO_FAST_MODE = IOCON_SLEW,
135 LPC17XX_GPIO_OPEN_DRAIN = IOCON_OD,
136 LPC17XX_GPIO_INPUT_FILTER = IOCON_FILTER,
138 LPC24XX_GPIO_OUTPUT = 0x8000U
139 } lpc24xx_gpio_settings;
142 lpc24xx_module module,
143 lpc24xx_module_clock clock
147 lpc24xx_module module
150 bool lpc24xx_module_is_enabled(lpc24xx_module module);
154 lpc24xx_gpio_settings settings
157 static inline void lpc24xx_gpio_set(
unsigned index)
159 if (index <= LPC24XX_IO_INDEX_MAX) {
160 unsigned port = LPC24XX_IO_PORT(index);
161 unsigned bit = LPC24XX_IO_PORT_BIT(index);
163 LPC24XX_FIO [port].set = 1U << bit;
167 static inline void lpc24xx_gpio_clear(
unsigned index)
169 if (index <= LPC24XX_IO_INDEX_MAX) {
170 unsigned port = LPC24XX_IO_PORT(index);
171 unsigned bit = LPC24XX_IO_PORT_BIT(index);
173 LPC24XX_FIO [port].clr = 1U << bit;
177 static inline void lpc24xx_gpio_write(
unsigned index,
bool value)
180 lpc24xx_gpio_set(index);
182 lpc24xx_gpio_clear(index);
186 static inline bool lpc24xx_gpio_get(
unsigned index)
188 if (index <= LPC24XX_IO_INDEX_MAX) {
189 unsigned port = LPC24XX_IO_PORT(index);
190 unsigned bit = LPC24XX_IO_PORT_BIT(index);
192 return (LPC24XX_FIO [port].pin & (1U << bit)) != 0;
223 uint16_t port_bit : 5;
224 uint16_t function : 3;
232 LPC24XX_PIN_FUNCTION_00,
233 LPC24XX_PIN_FUNCTION_01,
234 LPC24XX_PIN_FUNCTION_10,
235 LPC24XX_PIN_FUNCTION_11
236 } lpc24xx_pin_function;
239 LPC17XX_PIN_TYPE_DEFAULT,
240 LPC17XX_PIN_TYPE_ADC,
241 LPC17XX_PIN_TYPE_DAC,
242 LPC17XX_PIN_TYPE_I2C,
243 LPC17XX_PIN_TYPE_I2C_FAST_PLUS,
244 LPC17XX_PIN_TYPE_OPEN_DRAIN
247 #ifdef ARM_MULTILIB_ARCH_V4 248 #define LPC24XX_PIN(p, i, f0, f1) { { p, i, f0, 0, 0 } } 249 #define LPC24XX_PIN_WITH_TYPE(p, i, f0, f1, t) { { p, i, f0, t, 0 } } 250 #define LPC24XX_PIN_RANGE(p, i, j, f0, f1) \ 251 { { p, i, f0, 0, 0 } }, { { p, j, f0, 0, 1 } } 253 #define LPC24XX_PIN(p, i, f0, f1) { { p, i, f1, 0, 0 } } 254 #define LPC24XX_PIN_WITH_TYPE(p, i, f0, f1, t) { { p, i, f1, t, 0 } } 255 #define LPC24XX_PIN_RANGE(p, i, j, f0, f1) \ 256 { { p, i, f1, 0, 0 } }, { { p, j, f1, 0, 1 } } 259 #define LPC24XX_PIN_TERMINAL { { 0x7, 0x1f, 0x7, 0xf, 0x1 } } 294 lpc24xx_pin_action action
300 static inline unsigned lpc24xx_pin_get_first_index(
304 return LPC24XX_IO_INDEX_BY_PORT(range->fields.port, range->fields.port_bit);
313 #define LPC24XX_PIN_ADC_CHANNEL_0 \ 314 LPC24XX_PIN_WITH_TYPE(0, 23, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC) 315 #define LPC24XX_PIN_ADC_CHANNEL_1 \ 316 LPC24XX_PIN_WITH_TYPE(0, 24, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC) 317 #define LPC24XX_PIN_ADC_CHANNEL_2 \ 318 LPC24XX_PIN_WITH_TYPE(0, 25, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC) 319 #define LPC24XX_PIN_ADC_CHANNEL_3 \ 320 LPC24XX_PIN_WITH_TYPE(0, 26, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC) 321 #define LPC24XX_PIN_ADC_CHANNEL_4 \ 322 LPC24XX_PIN_WITH_TYPE(1, 30, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC) 323 #define LPC24XX_PIN_ADC_CHANNEL_5 \ 324 LPC24XX_PIN_WITH_TYPE(1, 31, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC) 325 #define LPC24XX_PIN_ADC_CHANNEL_6 \ 326 LPC24XX_PIN_WITH_TYPE(0, 12, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC) 327 #define LPC24XX_PIN_ADC_CHANNEL_7 \ 328 LPC24XX_PIN_WITH_TYPE(0, 13, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC) 338 #define LPC24XX_PIN_CAN_0_RD_P0_0 \ 339 LPC24XX_PIN(0, 0, LPC24XX_PIN_FUNCTION_01, 1) 341 #define LPC24XX_PIN_CAN_0_RD_P0_21 \ 342 LPC24XX_PIN(0, 21, LPC24XX_PIN_FUNCTION_11, 4) 344 #define LPC24XX_PIN_CAN_0_TD_P0_1 \ 345 LPC24XX_PIN(0, 1, LPC24XX_PIN_FUNCTION_01, 1) 347 #define LPC24XX_PIN_CAN_0_TD_P0_22 \ 348 LPC24XX_PIN(0, 22, LPC24XX_PIN_FUNCTION_11, 4) 358 #define LPC24XX_PIN_CAN_1_RD_P0_4 \ 359 LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_10, 2) 361 #define LPC24XX_PIN_CAN_1_RD_P2_7 \ 362 LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_01, 1) 364 #define LPC24XX_PIN_CAN_1_TD_P0_5 \ 365 LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_10, 2) 367 #define LPC24XX_PIN_CAN_1_TD_P2_8 \ 368 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_01, 1) 378 #define LPC24XX_PIN_DAC \ 379 LPC24XX_PIN_WITH_TYPE(0, 26, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_DAC) 389 #define LPC24XX_PIN_ETHERNET_MII \ 390 LPC24XX_PIN_RANGE(1, 0, 17, LPC24XX_PIN_FUNCTION_01, 1) 392 #define LPC24XX_PIN_ETHERNET_RMII_0 \ 393 LPC24XX_PIN_RANGE(1, 0, 1, LPC24XX_PIN_FUNCTION_01, 1) 394 #define LPC24XX_PIN_ETHERNET_RMII_1 \ 395 LPC24XX_PIN(1, 4, LPC24XX_PIN_FUNCTION_01, 1) 396 #define LPC24XX_PIN_ETHERNET_RMII_2 \ 397 LPC24XX_PIN_RANGE(1, 8, 10, LPC24XX_PIN_FUNCTION_01, 1) 398 #define LPC24XX_PIN_ETHERNET_RMII_3 \ 399 LPC24XX_PIN_RANGE(1, 14, 17, LPC24XX_PIN_FUNCTION_01, 1) 409 #define LPC24XX_PIN_EINT_0 \ 410 LPC24XX_PIN(2, 10, LPC24XX_PIN_FUNCTION_01, 1) 411 #define LPC24XX_PIN_EINT_1 \ 412 LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_01, 1) 413 #define LPC24XX_PIN_EINT_2 \ 414 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 1) 415 #define LPC24XX_PIN_EINT_3 \ 416 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 1) 426 #define LPC24XX_PIN_EMC_CS_0 \ 427 LPC24XX_PIN(4, 30, LPC24XX_PIN_FUNCTION_01, 1) 428 #define LPC24XX_PIN_EMC_CS_1 \ 429 LPC24XX_PIN(4, 31, LPC24XX_PIN_FUNCTION_01, 1) 430 #define LPC24XX_PIN_EMC_CS_2 \ 431 LPC24XX_PIN(2, 14, LPC24XX_PIN_FUNCTION_01, 1) 432 #define LPC24XX_PIN_EMC_CS_3 \ 433 LPC24XX_PIN(2, 15, LPC24XX_PIN_FUNCTION_01, 1) 435 #define LPC24XX_PIN_EMC_DYCS_0 \ 436 LPC24XX_PIN(2, 20, LPC24XX_PIN_FUNCTION_01, 1) 437 #define LPC24XX_PIN_EMC_DYCS_1 \ 438 LPC24XX_PIN(2, 21, LPC24XX_PIN_FUNCTION_01, 1) 439 #define LPC24XX_PIN_EMC_DYCS_2 \ 440 LPC24XX_PIN(2, 22, LPC24XX_PIN_FUNCTION_01, 1) 441 #define LPC24XX_PIN_EMC_DYCS_3 \ 442 LPC24XX_PIN(2, 23, LPC24XX_PIN_FUNCTION_01, 1) 444 #define LPC24XX_PIN_EMC_OE \ 445 LPC24XX_PIN(4, 24, LPC24XX_PIN_FUNCTION_01, 1) 446 #define LPC24XX_PIN_EMC_WE \ 447 LPC24XX_PIN(4, 25, LPC24XX_PIN_FUNCTION_01, 1) 448 #define LPC24XX_PIN_EMC_CAS \ 449 LPC24XX_PIN(2, 16, LPC24XX_PIN_FUNCTION_01, 1) 450 #define LPC24XX_PIN_EMC_RAS \ 451 LPC24XX_PIN(2, 17, LPC24XX_PIN_FUNCTION_01, 1) 453 #define LPC24XX_PIN_EMC_CLK_0 \ 454 LPC24XX_PIN(2, 18, LPC24XX_PIN_FUNCTION_01, 1) 455 #define LPC24XX_PIN_EMC_CLK_1 \ 456 LPC24XX_PIN(2, 19, LPC24XX_PIN_FUNCTION_01, 1) 458 #define LPC24XX_PIN_EMC_CKE_0 \ 459 LPC24XX_PIN(2, 24, LPC24XX_PIN_FUNCTION_01, 1) 460 #define LPC24XX_PIN_EMC_CKE_1 \ 461 LPC24XX_PIN(2, 25, LPC24XX_PIN_FUNCTION_01, 1) 462 #define LPC24XX_PIN_EMC_CKE_2 \ 463 LPC24XX_PIN(2, 26, LPC24XX_PIN_FUNCTION_01, 1) 464 #define LPC24XX_PIN_EMC_CKE_3 \ 465 LPC24XX_PIN(2, 27, LPC24XX_PIN_FUNCTION_01, 1) 467 #define LPC24XX_PIN_EMC_DQM_0 \ 468 LPC24XX_PIN(2, 28, LPC24XX_PIN_FUNCTION_01, 1) 469 #define LPC24XX_PIN_EMC_DQM_1 \ 470 LPC24XX_PIN(2, 29, LPC24XX_PIN_FUNCTION_01, 1) 471 #define LPC24XX_PIN_EMC_DQM_2 \ 472 LPC24XX_PIN(2, 30, LPC24XX_PIN_FUNCTION_01, 1) 473 #define LPC24XX_PIN_EMC_DQM_3 \ 474 LPC24XX_PIN(2, 31, LPC24XX_PIN_FUNCTION_01, 1) 476 #define LPC24XX_PIN_EMC_BLS0 \ 477 LPC24XX_PIN(4, 26, LPC24XX_PIN_FUNCTION_01, 1) 478 #define LPC24XX_PIN_EMC_BLS1 \ 479 LPC24XX_PIN(4, 27, LPC24XX_PIN_FUNCTION_01, 1) 480 #define LPC24XX_PIN_EMC_BLS2 \ 481 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_01, 1) 482 #define LPC24XX_PIN_EMC_BLS3 \ 483 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_01, 1) 485 #define LPC24XX_PIN_EMC_D_0_15 \ 486 LPC24XX_PIN_RANGE(3, 0, 15, LPC24XX_PIN_FUNCTION_01, 1) 487 #define LPC24XX_PIN_EMC_D_15_31 \ 488 LPC24XX_PIN_RANGE(3, 15, 31, LPC24XX_PIN_FUNCTION_01, 1) 489 #define LPC24XX_PIN_EMC_D_0_31 \ 490 LPC24XX_PIN_RANGE(3, 0, 31, LPC24XX_PIN_FUNCTION_01, 1) 492 #define LPC24XX_PIN_EMC_A_0_12 \ 493 LPC24XX_PIN_RANGE(4, 0, 12, LPC24XX_PIN_FUNCTION_01, 1) 494 #define LPC24XX_PIN_EMC_A_0_13 \ 495 LPC24XX_PIN_RANGE(4, 0, 13, LPC24XX_PIN_FUNCTION_01, 1) 496 #define LPC24XX_PIN_EMC_A_0_14 \ 497 LPC24XX_PIN_RANGE(4, 0, 14, LPC24XX_PIN_FUNCTION_01, 1) 498 #define LPC24XX_PIN_EMC_A_0_15 \ 499 LPC24XX_PIN_RANGE(4, 0, 15, LPC24XX_PIN_FUNCTION_01, 1) 500 #define LPC24XX_PIN_EMC_A_0_16 \ 501 LPC24XX_PIN_EMC_A_0_15, \ 502 LPC24XX_PIN(4, 16, LPC24XX_PIN_FUNCTION_01, 1) 503 #define LPC24XX_PIN_EMC_A_0_17 \ 504 LPC24XX_PIN_EMC_A_0_15, \ 505 LPC24XX_PIN_RANGE(4, 16, 17, LPC24XX_PIN_FUNCTION_01, 1) 506 #define LPC24XX_PIN_EMC_A_0_18 \ 507 LPC24XX_PIN_EMC_A_0_15, \ 508 LPC24XX_PIN_RANGE(4, 16, 18, LPC24XX_PIN_FUNCTION_01, 1) 509 #define LPC24XX_PIN_EMC_A_0_19 \ 510 LPC24XX_PIN_EMC_A_0_15, \ 511 LPC24XX_PIN_RANGE(4, 16, 19, LPC24XX_PIN_FUNCTION_01, 1) 512 #define LPC24XX_PIN_EMC_A_0_20 \ 513 LPC24XX_PIN_EMC_A_0_15, \ 514 LPC24XX_PIN_RANGE(4, 16, 20, LPC24XX_PIN_FUNCTION_01, 1) 515 #define LPC24XX_PIN_EMC_A_0_21 \ 516 LPC24XX_PIN_EMC_A_0_15, \ 517 LPC24XX_PIN_RANGE(4, 16, 21, LPC24XX_PIN_FUNCTION_01, 1) 518 #define LPC24XX_PIN_EMC_A_0_22 \ 519 LPC24XX_PIN_EMC_A_0_15, \ 520 LPC24XX_PIN_RANGE(4, 16, 22, LPC24XX_PIN_FUNCTION_01, 1) 521 #define LPC24XX_PIN_EMC_A_0_23 \ 522 LPC24XX_PIN_EMC_A_0_15, \ 523 LPC24XX_PIN_RANGE(4, 16, 23, LPC24XX_PIN_FUNCTION_01, 1) 524 #define LPC24XX_PIN_EMC_A_0_24 \ 525 LPC24XX_PIN_EMC_A_0_23, \ 526 LPC24XX_PIN(5, 24, LPC24XX_PIN_FUNCTION_01, 1) 527 #define LPC24XX_PIN_EMC_A_0_25 \ 528 LPC24XX_PIN_EMC_A_0_23, \ 529 LPC24XX_PIN_RANGE(5, 24, 25, LPC24XX_PIN_FUNCTION_01, 1) 539 #define LPC24XX_PIN_I2C_0_SDA \ 540 LPC24XX_PIN_WITH_TYPE(0, 27, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_I2C) 541 #define LPC24XX_PIN_I2C_0_SCL \ 542 LPC24XX_PIN_WITH_TYPE(0, 28, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_I2C) 552 #define LPC24XX_PIN_I2C_1_SDA_P0_0 \ 553 LPC24XX_PIN_WITH_TYPE(0, 0, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C) 554 #define LPC24XX_PIN_I2C_1_SDA_P0_19 \ 555 LPC24XX_PIN_WITH_TYPE(0, 19, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C) 556 #define LPC24XX_PIN_I2C_1_SDA_P2_14 \ 557 LPC24XX_PIN_WITH_TYPE(2, 14, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C) 559 #define LPC24XX_PIN_I2C_1_SCL_P0_1 \ 560 LPC24XX_PIN_WITH_TYPE(0, 1, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C) 561 #define LPC24XX_PIN_I2C_1_SCL_P0_20 \ 562 LPC24XX_PIN_WITH_TYPE(0, 20, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C) 563 #define LPC24XX_PIN_I2C_1_SCL_P2_15 \ 564 LPC24XX_PIN_WITH_TYPE(2, 15, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C) 574 #define LPC24XX_PIN_I2C_2_SDA_P0_10 \ 575 LPC24XX_PIN_WITH_TYPE(0, 10, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C) 576 #define LPC24XX_PIN_I2C_2_SDA_P2_30 \ 577 LPC24XX_PIN_WITH_TYPE(2, 30, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C) 578 #define LPC24XX_PIN_I2C_2_SDA_P4_20 \ 579 LPC24XX_PIN_WITH_TYPE(4, 20, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C) 581 #define LPC24XX_PIN_I2C_2_SCL_P0_11 \ 582 LPC24XX_PIN_WITH_TYPE(0, 11, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C) 583 #define LPC24XX_PIN_I2C_2_SCL_P2_31 \ 584 LPC24XX_PIN_WITH_TYPE(2, 31, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C) 585 #define LPC24XX_PIN_I2C_2_SCL_P4_21 \ 586 LPC24XX_PIN_WITH_TYPE(4, 21, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C) 596 #define LPC24XX_PIN_I2S_RX_CLK_P0_4 \ 597 LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_01, 1) 598 #define LPC24XX_PIN_I2S_RX_CLK_P0_23 \ 599 LPC24XX_PIN(0, 23, LPC24XX_PIN_FUNCTION_10, 2) 601 #define LPC24XX_PIN_I2S_RX_WS_P0_5 \ 602 LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_01, 1) 603 #define LPC24XX_PIN_I2S_RX_WS_P0_24 \ 604 LPC24XX_PIN(0, 24, LPC24XX_PIN_FUNCTION_10, 2) 606 #define LPC24XX_PIN_I2S_RX_SDA_P0_6 \ 607 LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_01, 1) 608 #define LPC24XX_PIN_I2S_RX_SDA_P0_25 \ 609 LPC24XX_PIN(0, 25, LPC24XX_PIN_FUNCTION_10, 2) 611 #define LPC24XX_PIN_I2S_TX_CLK_P0_7 \ 612 LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_01, 1) 613 #define LPC24XX_PIN_I2S_TX_CLK_P2_11 \ 614 LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_11, 3) 616 #define LPC24XX_PIN_I2S_TX_WS_P0_8 \ 617 LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_01, 1) 618 #define LPC24XX_PIN_I2S_TX_WS_P2_12 \ 619 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_11, 3) 621 #define LPC24XX_PIN_I2S_TX_SDA_P0_9 \ 622 LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_01, 1) 623 #define LPC24XX_PIN_I2S_TX_SDA_P2_13 \ 624 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_11, 3) 634 #define LPC24XX_PIN_LCD_PWR \ 635 LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_11, 7) 636 #define LPC24XX_PIN_LCD_LE \ 637 LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_11, 7) 638 #define LPC24XX_PIN_LCD_DCLK \ 639 LPC24XX_PIN(2, 2, LPC24XX_PIN_FUNCTION_11, 7) 640 #define LPC24XX_PIN_LCD_FP \ 641 LPC24XX_PIN(2, 3, LPC24XX_PIN_FUNCTION_11, 7) 642 #define LPC24XX_PIN_LCD_ENAB_M \ 643 LPC24XX_PIN(2, 4, LPC24XX_PIN_FUNCTION_11, 7) 644 #define LPC24XX_PIN_LCD_LP \ 645 LPC24XX_PIN(2, 5, LPC24XX_PIN_FUNCTION_11, 7) 646 #define LPC24XX_PIN_LCD_CLKIN \ 647 LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_01, 7) 649 #define LPC24XX_PIN_LCD_VD_0_P0_4 \ 650 LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_01, 7) 651 #define LPC24XX_PIN_LCD_VD_0_P2_6 \ 652 LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_11, 6) 653 #define LPC24XX_PIN_LCD_VD_1_P0_5 \ 654 LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_01, 7) 655 #define LPC24XX_PIN_LCD_VD_1_P2_7 \ 656 LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_11, 6) 657 #define LPC24XX_PIN_LCD_VD_2_P2_8 \ 658 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_11, 6) 659 #define LPC24XX_PIN_LCD_VD_2_P4_28 \ 660 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 7) 661 #define LPC24XX_PIN_LCD_VD_3_P2_9 \ 662 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_11, 6) 663 #define LPC24XX_PIN_LCD_VD_3_P2_12 \ 664 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 5) 665 #define LPC24XX_PIN_LCD_VD_3_P4_29 \ 666 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 7) 667 #define LPC24XX_PIN_LCD_VD_4_P2_6 \ 668 LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_11, 7) 669 #define LPC24XX_PIN_LCD_VD_4_P2_12 \ 670 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 4) 671 #define LPC24XX_PIN_LCD_VD_5_P2_7 \ 672 LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_11, 7) 673 #define LPC24XX_PIN_LCD_VD_5_P2_13 \ 674 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 5) 675 #define LPC24XX_PIN_LCD_VD_6_P1_20 \ 676 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 6) 677 #define LPC24XX_PIN_LCD_VD_6_P2_8 \ 678 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_11, 7) 679 #define LPC24XX_PIN_LCD_VD_6_P4_28 \ 680 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 5) 681 #define LPC24XX_PIN_LCD_VD_7_P1_21 \ 682 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 6) 683 #define LPC24XX_PIN_LCD_VD_7_P2_9 \ 684 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_11, 7) 685 #define LPC24XX_PIN_LCD_VD_7_P4_29 \ 686 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 5) 687 #define LPC24XX_PIN_LCD_VD_8_P0_6 \ 688 LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_01, 7) 689 #define LPC24XX_PIN_LCD_VD_8_P1_22 \ 690 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 6) 691 #define LPC24XX_PIN_LCD_VD_8_P2_12 \ 692 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 6) 693 #define LPC24XX_PIN_LCD_VD_9_P0_7 \ 694 LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_01, 7) 695 #define LPC24XX_PIN_LCD_VD_9_P1_23 \ 696 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 6) 697 #define LPC24XX_PIN_LCD_VD_9_P2_13 \ 698 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 6) 699 #define LPC24XX_PIN_LCD_VD_10_P1_20 \ 700 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 7) 701 #define LPC24XX_PIN_LCD_VD_10_P1_24 \ 702 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 6) 703 #define LPC24XX_PIN_LCD_VD_10_P4_28 \ 704 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 6) 705 #define LPC24XX_PIN_LCD_VD_11_P1_21 \ 706 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 7) 707 #define LPC24XX_PIN_LCD_VD_11_P1_25 \ 708 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 6) 709 #define LPC24XX_PIN_LCD_VD_11_P4_29 \ 710 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 6) 711 #define LPC24XX_PIN_LCD_VD_12_P1_22 \ 712 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 7) 713 #define LPC24XX_PIN_LCD_VD_12_P1_26 \ 714 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 6) 715 #define LPC24XX_PIN_LCD_VD_13_P1_23 \ 716 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 7) 717 #define LPC24XX_PIN_LCD_VD_13_P1_27 \ 718 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 6) 719 #define LPC24XX_PIN_LCD_VD_14_P1_24 \ 720 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 7) 721 #define LPC24XX_PIN_LCD_VD_14_P1_28 \ 722 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 6) 723 #define LPC24XX_PIN_LCD_VD_15_P1_25 \ 724 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 7) 725 #define LPC24XX_PIN_LCD_VD_15_P1_29 \ 726 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_01, 6) 727 #define LPC24XX_PIN_LCD_VD_16_P0_8 \ 728 LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_01, 7) 729 #define LPC24XX_PIN_LCD_VD_17_P0_9 \ 730 LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_01, 7) 731 #define LPC24XX_PIN_LCD_VD_18_P2_12 \ 732 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 7) 733 #define LPC24XX_PIN_LCD_VD_19_P2_13 \ 734 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 7) 735 #define LPC24XX_PIN_LCD_VD_20_P1_26 \ 736 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 7) 737 #define LPC24XX_PIN_LCD_VD_21_P1_27 \ 738 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 7) 739 #define LPC24XX_PIN_LCD_VD_22_P1_28 \ 740 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 7) 741 #define LPC24XX_PIN_LCD_VD_23_P1_29 \ 742 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_01, 7) 752 #define LPC24XX_PIN_PWM_0_CHANNEL_1_P1_2 \ 753 LPC24XX_PIN(1, 2, LPC24XX_PIN_FUNCTION_11, 3) 754 #define LPC24XX_PIN_PWM_0_CHANNEL_1_P3_16 \ 755 LPC24XX_PIN(3, 16, LPC24XX_PIN_FUNCTION_10, 2) 757 #define LPC24XX_PIN_PWM_0_CHANNEL_2_P1_3 \ 758 LPC24XX_PIN(1, 3, LPC24XX_PIN_FUNCTION_11, 3) 759 #define LPC24XX_PIN_PWM_0_CHANNEL_2_P3_17 \ 760 LPC24XX_PIN(3, 17, LPC24XX_PIN_FUNCTION_10, 2) 762 #define LPC24XX_PIN_PWM_0_CHANNEL_3_P1_5 \ 763 LPC24XX_PIN(1, 5, LPC24XX_PIN_FUNCTION_11, 3) 764 #define LPC24XX_PIN_PWM_0_CHANNEL_3_P3_18 \ 765 LPC24XX_PIN(3, 18, LPC24XX_PIN_FUNCTION_10, 2) 767 #define LPC24XX_PIN_PWM_0_CHANNEL_4_P1_6 \ 768 LPC24XX_PIN(1, 6, LPC24XX_PIN_FUNCTION_11, 3) 769 #define LPC24XX_PIN_PWM_0_CHANNEL_4_P3_19 \ 770 LPC24XX_PIN(3, 19, LPC24XX_PIN_FUNCTION_10, 2) 772 #define LPC24XX_PIN_PWM_0_CHANNEL_5_P1_7 \ 773 LPC24XX_PIN(1, 7, LPC24XX_PIN_FUNCTION_11, 3) 774 #define LPC24XX_PIN_PWM_0_CHANNEL_5_P3_20 \ 775 LPC24XX_PIN(3, 20, LPC24XX_PIN_FUNCTION_10, 2) 777 #define LPC24XX_PIN_PWM_0_CHANNEL_6_P1_11 \ 778 LPC24XX_PIN(1, 11, LPC24XX_PIN_FUNCTION_11, 3) 779 #define LPC24XX_PIN_PWM_0_CHANNEL_6_P3_21 \ 780 LPC24XX_PIN(3, 21, LPC24XX_PIN_FUNCTION_10, 2) 782 #define LPC24XX_PIN_PWM_0_CAPTURE_0_P1_12 \ 783 LPC24XX_PIN(1, 12, LPC24XX_PIN_FUNCTION_11, 3) 784 #define LPC24XX_PIN_PWM_0_CAPTURE_0_P3_22 \ 785 LPC24XX_PIN(3, 22, LPC24XX_PIN_FUNCTION_10, 2) 795 #define LPC24XX_PIN_PWM_1_CHANNEL_1_P1_18 \ 796 LPC24XX_PIN(1, 18, LPC24XX_PIN_FUNCTION_10, 2) 797 #define LPC24XX_PIN_PWM_1_CHANNEL_1_P2_0 \ 798 LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_01, 1) 799 #define LPC24XX_PIN_PWM_1_CHANNEL_1_P3_24 \ 800 LPC24XX_PIN(3, 24, LPC24XX_PIN_FUNCTION_11, 2) 802 #define LPC24XX_PIN_PWM_1_CHANNEL_2_P1_20 \ 803 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_10, 2) 804 #define LPC24XX_PIN_PWM_1_CHANNEL_2_P2_1 \ 805 LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_01, 1) 806 #define LPC24XX_PIN_PWM_1_CHANNEL_2_P3_25 \ 807 LPC24XX_PIN(3, 25, LPC24XX_PIN_FUNCTION_11, 2) 809 #define LPC24XX_PIN_PWM_1_CHANNEL_3_P1_21 \ 810 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_10, 2) 811 #define LPC24XX_PIN_PWM_1_CHANNEL_3_P2_2 \ 812 LPC24XX_PIN(2, 2, LPC24XX_PIN_FUNCTION_01, 1) 813 #define LPC24XX_PIN_PWM_1_CHANNEL_3_P3_26 \ 814 LPC24XX_PIN(3, 26, LPC24XX_PIN_FUNCTION_11, 2) 816 #define LPC24XX_PIN_PWM_1_CHANNEL_4_P1_23 \ 817 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_10, 2) 818 #define LPC24XX_PIN_PWM_1_CHANNEL_4_P2_3 \ 819 LPC24XX_PIN(2, 3, LPC24XX_PIN_FUNCTION_01, 1) 820 #define LPC24XX_PIN_PWM_1_CHANNEL_4_P3_27 \ 821 LPC24XX_PIN(3, 27, LPC24XX_PIN_FUNCTION_11, 2) 823 #define LPC24XX_PIN_PWM_1_CHANNEL_5_P1_24 \ 824 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_10, 2) 825 #define LPC24XX_PIN_PWM_1_CHANNEL_5_P2_4 \ 826 LPC24XX_PIN(2, 4, LPC24XX_PIN_FUNCTION_01, 1) 827 #define LPC24XX_PIN_PWM_1_CHANNEL_5_P3_28 \ 828 LPC24XX_PIN(3, 28, LPC24XX_PIN_FUNCTION_11, 2) 830 #define LPC24XX_PIN_PWM_1_CHANNEL_6_P1_26 \ 831 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_10, 2) 832 #define LPC24XX_PIN_PWM_1_CHANNEL_6_P2_5 \ 833 LPC24XX_PIN(2, 5, LPC24XX_PIN_FUNCTION_01, 1) 834 #define LPC24XX_PIN_PWM_1_CHANNEL_6_P3_29 \ 835 LPC24XX_PIN(3, 29, LPC24XX_PIN_FUNCTIO9_11, 2) 837 #define LPC24XX_PIN_PWM_1_CAPTURE_0_P1_28 \ 838 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_10, 2) 839 #define LPC24XX_PIN_PWM_1_CAPTURE_0_P2_7 \ 840 LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_01, 1) 841 #define LPC24XX_PIN_PWM_1_CAPTURE_0_P3_23 \ 842 LPC24XX_PIN(3, 23, LPC24XX_PIN_FUNCTION_11, 2) 844 #define LPC24XX_PIN_PWM_1_CAPTURE_1_P1_29 \ 845 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_10, 2) 849 #ifdef ARM_MULTILIB_ARCH_V4 857 #define LPC24XX_PIN_SPI_SCK \ 858 LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_11) 859 #define LPC24XX_PIN_SPI_SSEL \ 860 LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_11) 861 #define LPC24XX_PIN_SPI_MISO \ 862 LPC24XX_PIN(0, 17, LPC24XX_PIN_FUNCTION_11) 863 #define LPC24XX_PIN_SPI_MOSI \ 864 LPC24XX_PIN(0, 18, LPC24XX_PIN_FUNCTION_11) 876 #define LPC24XX_PIN_SSP_0_SCK_P0_15 \ 877 LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_10, 2) 878 #define LPC24XX_PIN_SSP_0_SCK_P1_20 \ 879 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_11, 5) 880 #define LPC24XX_PIN_SSP_0_SCK_P2_22 \ 881 LPC24XX_PIN(2, 22, LPC24XX_PIN_FUNCTION_11, 2) 883 #define LPC24XX_PIN_SSP_0_SSEL_P0_16 \ 884 LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_10, 2) 885 #define LPC24XX_PIN_SSP_0_SSEL_P1_21 \ 886 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_11, 3) 887 #define LPC24XX_PIN_SSP_0_SSEL_P2_23 \ 888 LPC24XX_PIN(2, 23, LPC24XX_PIN_FUNCTION_11, 2) 890 #define LPC24XX_PIN_SSP_0_MISO_P0_17 \ 891 LPC24XX_PIN(0, 17, LPC24XX_PIN_FUNCTION_10, 2) 892 #define LPC24XX_PIN_SSP_0_MISO_P1_23 \ 893 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_11, 5) 894 #define LPC24XX_PIN_SSP_0_MISO_P2_26 \ 895 LPC24XX_PIN(2, 26, LPC24XX_PIN_FUNCTION_11, 2) 897 #define LPC24XX_PIN_SSP_0_MOSI_P0_18 \ 898 LPC24XX_PIN(0, 18, LPC24XX_PIN_FUNCTION_10, 2) 899 #define LPC24XX_PIN_SSP_0_MOSI_P1_24 \ 900 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_11, 5) 901 #define LPC24XX_PIN_SSP_0_MOSI_P2_27 \ 902 LPC24XX_PIN(2, 27, LPC24XX_PIN_FUNCTION_11, 2) 912 #define LPC24XX_PIN_SSP_1_SCK_P0_6 \ 913 LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_10, 2) 914 #define LPC24XX_PIN_SSP_1_SCK_P0_12 \ 915 LPC24XX_PIN(1, 31, LPC24XX_PIN_FUNCTION_10, 2) 916 #define LPC24XX_PIN_SSP_1_SCK_P4_20 \ 917 LPC24XX_PIN(4, 20, LPC24XX_PIN_FUNCTION_11, 3) 919 #define LPC24XX_PIN_SSP_1_SSEL_P0_7 \ 920 LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_10, 2) 921 #define LPC24XX_PIN_SSP_1_SSEL_P0_13 \ 922 LPC24XX_PIN(0, 14, LPC24XX_PIN_FUNCTION_11, 2) 923 #define LPC24XX_PIN_SSP_1_SSEL_P4_21 \ 924 LPC24XX_PIN(4, 21, LPC24XX_PIN_FUNCTION_11, 3) 926 #define LPC24XX_PIN_SSP_1_MISO_P0_8 \ 927 LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_10, 2) 928 #define LPC24XX_PIN_SSP_1_MISO_P0_14 \ 929 LPC24XX_PIN(0, 12, LPC24XX_PIN_FUNCTION_10, 2) 930 #define LPC24XX_PIN_SSP_1_MISO_P4_22 \ 931 LPC24XX_PIN(4, 22, LPC24XX_PIN_FUNCTION_11, 3) 933 #define LPC24XX_PIN_SSP_1_MOSI_P0_9 \ 934 LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_10, 2) 935 #define LPC24XX_PIN_SSP_1_MOSI_P1_31 \ 936 LPC24XX_PIN(0, 13, LPC24XX_PIN_FUNCTION_10, 2) 937 #define LPC24XX_PIN_SSP_1_MOSI_P4_23 \ 938 LPC24XX_PIN(4, 23, LPC24XX_PIN_FUNCTION_11, 3) 942 #ifdef ARM_MULTILIB_ARCH_V7M 950 #define LPC24XX_PIN_SSP_2_SCK_P1_0 \ 951 LPC24XX_PIN(1, 0, LPC24XX_PIN_FUNCTION_00, 4) 952 #define LPC24XX_PIN_SSP_2_SCK_P5_2 \ 953 LPC24XX_PIN(5, 2, LPC24XX_PIN_FUNCTION_00, 2) 955 #define LPC24XX_PIN_SSP_2_SSEL_P1_8 \ 956 LPC24XX_PIN(1, 8, LPC24XX_PIN_FUNCTION_00, 4) 957 #define LPC24XX_PIN_SSP_2_SSEL_P5_3 \ 958 LPC24XX_PIN(5, 3, LPC24XX_PIN_FUNCTION_00, 2) 960 #define LPC24XX_PIN_SSP_2_MISO_P1_4 \ 961 LPC24XX_PIN(1, 4, LPC24XX_PIN_FUNCTION_00, 4) 962 #define LPC24XX_PIN_SSP_2_MISO_P5_1 \ 963 LPC24XX_PIN(5, 1, LPC24XX_PIN_FUNCTION_00, 2) 965 #define LPC24XX_PIN_SSP_2_MOSI_P1_1 \ 966 LPC24XX_PIN(1, 1, LPC24XX_PIN_FUNCTION_00, 4) 967 #define LPC24XX_PIN_SSP_2_MOSI_P5_0 \ 968 LPC24XX_PIN(5, 0, LPC24XX_PIN_FUNCTION_00, 2) 980 #define LPC24XX_PIN_UART_0_TXD \ 981 LPC24XX_PIN(0, 2, LPC24XX_PIN_FUNCTION_01, 1) 983 #define LPC24XX_PIN_UART_0_RXD \ 984 LPC24XX_PIN(0, 3, LPC24XX_PIN_FUNCTION_01, 1) 994 #define LPC24XX_PIN_UART_1_TXD_P0_15 \ 995 LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_01, 1) 996 #define LPC24XX_PIN_UART_1_TXD_P2_0 \ 997 LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_10, 2) 998 #define LPC24XX_PIN_UART_1_TXD_P3_16 \ 999 LPC24XX_PIN(3, 16, LPC24XX_PIN_FUNCTION_11, 3) 1001 #define LPC24XX_PIN_UART_1_RXD_P0_16 \ 1002 LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_01, 1) 1003 #define LPC24XX_PIN_UART_1_RXD_P2_1 \ 1004 LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_10, 2) 1005 #define LPC24XX_PIN_UART_1_RXD_P3_17 \ 1006 LPC24XX_PIN(3, 17, LPC24XX_PIN_FUNCTION_11, 3) 1016 #define LPC24XX_PIN_UART_2_TXD_P0_10 \ 1017 LPC24XX_PIN(0, 10, LPC24XX_PIN_FUNCTION_01, 1) 1018 #define LPC24XX_PIN_UART_2_TXD_P2_8 \ 1019 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_10, 2) 1020 #define LPC24XX_PIN_UART_2_TXD_P4_22 \ 1021 LPC24XX_PIN(4, 22, LPC24XX_PIN_FUNCTION_10, 2) 1023 #define LPC24XX_PIN_UART_2_RXD_P0_11 \ 1024 LPC24XX_PIN(0, 11, LPC24XX_PIN_FUNCTION_01, 1) 1025 #define LPC24XX_PIN_UART_2_RXD_P2_9 \ 1026 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_10, 2) 1027 #define LPC24XX_PIN_UART_2_RXD_P4_23 \ 1028 LPC24XX_PIN(4, 23, LPC24XX_PIN_FUNCTION_10, 2) 1038 #define LPC24XX_PIN_UART_3_TXD_P0_0 \ 1039 LPC24XX_PIN(0, 0, LPC24XX_PIN_FUNCTION_10, 2) 1040 #define LPC24XX_PIN_UART_3_TXD_P0_25 \ 1041 LPC24XX_PIN(0, 25, LPC24XX_PIN_FUNCTION_11, 3) 1042 #define LPC24XX_PIN_UART_3_TXD_P4_28 \ 1043 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_11, 2) 1045 #define LPC24XX_PIN_UART_3_RXD_P0_1 \ 1046 LPC24XX_PIN(0, 1, LPC24XX_PIN_FUNCTION_10, 2) 1047 #define LPC24XX_PIN_UART_3_RXD_P0_26 \ 1048 LPC24XX_PIN(0, 26, LPC24XX_PIN_FUNCTION_11, 3) 1049 #define LPC24XX_PIN_UART_3_RXD_P4_29 \ 1050 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_11, 2) 1054 #ifdef ARM_MULTILIB_ARCH_V7M 1062 #define LPC24XX_PIN_UART_4_TXD_P0_22 \ 1063 LPC24XX_PIN(0, 22, LPC24XX_PIN_FUNCTION_00, 3) 1064 #define LPC24XX_PIN_UART_4_TXD_P1_29 \ 1065 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_00, 5) 1066 #define LPC24XX_PIN_UART_4_TXD_P5_4 \ 1067 LPC24XX_PIN(5, 4, LPC24XX_PIN_FUNCTION_00, 4) 1069 #define LPC24XX_PIN_UART_4_RXD_P2_9 \ 1070 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_00, 3) 1071 #define LPC24XX_PIN_UART_4_RXD_P5_3 \ 1072 LPC24XX_PIN(5, 3, LPC24XX_PIN_FUNCTION_00, 4) 1074 #define LPC24XX_PIN_UART_4_OE_P0_21 \ 1075 LPC24XX_PIN(0, 21, LPC24XX_PIN_FUNCTION_00, 3) 1077 #define LPC24XX_PIN_UART_4_SCLK_P0_21 \ 1078 LPC24XX_PIN(0, 21, LPC24XX_PIN_FUNCTION_00, 5) 1090 #define LPC24XX_PIN_USB_D_PLUS_1\ 1091 LPC24XX_PIN(0, 29, LPC24XX_PIN_FUNCTION_01, 1) 1092 #define LPC24XX_PIN_USB_D_MINUS_1\ 1093 LPC24XX_PIN(0, 30, LPC24XX_PIN_FUNCTION_01, 1) 1094 #define LPC24XX_PIN_USB_UP_LED_1\ 1095 LPC24XX_PIN(1, 18, LPC24XX_PIN_FUNCTION_01, 1) 1096 #define LPC24XX_PIN_USB_TX_E_1\ 1097 LPC24XX_PIN(1, 19, LPC24XX_PIN_FUNCTION_01, 1) 1098 #define LPC24XX_PIN_USB_PPWR_1\ 1099 LPC24XX_PIN(1, 19, LPC24XX_PIN_FUNCTION_10, 2) 1100 #define LPC24XX_PIN_USB_TX_DP_1\ 1101 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 1) 1102 #define LPC24XX_PIN_USB_TX_DM_1\ 1103 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 1) 1104 #define LPC24XX_PIN_USB_RCV_1\ 1105 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 1) 1106 #define LPC24XX_PIN_USB_PWRD_1\ 1107 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_10, 2) 1108 #define LPC24XX_PIN_USB_RX_DP_1\ 1109 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 1) 1110 #define LPC24XX_PIN_USB_RX_DM_1\ 1111 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 1) 1112 #define LPC24XX_PIN_USB_LS_1\ 1113 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 1) 1114 #define LPC24XX_PIN_USB_HSTEN_1\ 1115 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_10, 2) 1116 #define LPC24XX_PIN_USB_SSPND_1\ 1117 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 1) 1118 #define LPC24XX_PIN_USB_INT_1\ 1119 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 1) 1120 #define LPC24XX_PIN_USB_OVRCR_1\ 1121 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_10, 2) 1122 #define LPC24XX_PIN_USB_SCL_1\ 1123 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 1) 1124 #define LPC24XX_PIN_USB_SDA_1 \ 1125 LPC24XX_PIN_WITH_TYPE( \ 1126 1, 29, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_OPEN_DRAIN \ 1128 #define LPC24XX_PIN_USB_CONNECT_1\ 1129 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_01, 1) 1139 #define LPC24XX_PIN_USB_PPWR_2\ 1140 LPC24XX_PIN(0, 12, LPC24XX_PIN_FUNCTION_01, 1) 1141 #define LPC24XX_PIN_USB_UP_LED_2\ 1142 LPC24XX_PIN(0, 13, LPC24XX_PIN_FUNCTION_01, 1) 1143 #define LPC24XX_PIN_USB_HSTEN_2\ 1144 LPC24XX_PIN(0, 14, LPC24XX_PIN_FUNCTION_01, 1) 1145 #define LPC24XX_PIN_USB_CONNECT_2\ 1146 LPC24XX_PIN(0, 14, LPC24XX_PIN_FUNCTION_01, 3) 1147 #define LPC24XX_PIN_USB_D_PLUS_2\ 1148 LPC24XX_PIN(0, 31, LPC24XX_PIN_FUNCTION_01, 1) 1149 #define LPC24XX_PIN_USB_PWRD_2\ 1150 LPC24XX_PIN(1, 30, LPC24XX_PIN_FUNCTION_01, 1) 1151 #define LPC24XX_PIN_USB_OVRCR_2\ 1152 LPC24XX_PIN(1, 31, LPC24XX_PIN_FUNCTION_01, 1)
Sets the pin function.
Definition: io.h:202
rtems_status_code
Classic API Status.
Definition: status.h:43
lpc24xx_pin_action
Definition: io.h:198
Checks if all pins are configured as input.
Definition: io.h:217
rtems_status_code lpc24xx_pin_config(const lpc24xx_pin_range *pins, lpc24xx_pin_action action)
Performs the action with the pins.
Definition: io.c:514
Checks if all pins are configured with the specified function.
Definition: io.h:207
Configures the pins as input.
Definition: io.h:212