File indexing completed on 2025-05-11 08:23:03
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 #ifndef LIBBSP_ARM_LPC24XX_IO_H
0037 #define LIBBSP_ARM_LPC24XX_IO_H
0038
0039 #include <rtems.h>
0040
0041 #include <bsp/lpc24xx.h>
0042
0043 #ifdef __cplusplus
0044 extern "C" {
0045 #endif
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057 #ifdef ARM_MULTILIB_ARCH_V7M
0058 #define LPC24XX_IO_PORT_COUNT 6U
0059 #else
0060 #define LPC24XX_IO_PORT_COUNT 5U
0061 #endif
0062
0063 #define LPC24XX_IO_INDEX_MAX (LPC24XX_IO_PORT_COUNT * 32U)
0064
0065 #define LPC24XX_IO_INDEX_BY_PORT(port, bit) (((port) << 5U) + (bit))
0066
0067 #define LPC24XX_IO_PORT(index) ((index) >> 5U)
0068
0069 #define LPC24XX_IO_PORT_BIT(index) ((index) & 0x1fU)
0070
0071 typedef enum {
0072 #ifdef ARM_MULTILIB_ARCH_V4
0073 LPC24XX_MODULE_ACF,
0074 #endif
0075 LPC24XX_MODULE_ADC,
0076 #ifdef ARM_MULTILIB_ARCH_V4
0077 LPC24XX_MODULE_BAT_RAM,
0078 #endif
0079 LPC24XX_MODULE_CAN_0,
0080 LPC24XX_MODULE_CAN_1,
0081 LPC24XX_MODULE_DAC,
0082 LPC24XX_MODULE_EMC,
0083 LPC24XX_MODULE_ETHERNET,
0084 LPC24XX_MODULE_GPDMA,
0085 LPC24XX_MODULE_GPIO,
0086 LPC24XX_MODULE_I2C_0,
0087 LPC24XX_MODULE_I2C_1,
0088 LPC24XX_MODULE_I2C_2,
0089 LPC24XX_MODULE_I2S,
0090 LPC24XX_MODULE_LCD,
0091 LPC24XX_MODULE_MCI,
0092 #ifdef ARM_MULTILIB_ARCH_V7M
0093 LPC24XX_MODULE_MCPWM,
0094 #endif
0095 LPC24XX_MODULE_PCB,
0096 LPC24XX_MODULE_PWM_0,
0097 LPC24XX_MODULE_PWM_1,
0098 #ifdef ARM_MULTILIB_ARCH_V7M
0099 LPC24XX_MODULE_QEI,
0100 #endif
0101 LPC24XX_MODULE_RTC,
0102 #ifdef ARM_MULTILIB_ARCH_V4
0103 LPC24XX_MODULE_SPI,
0104 #endif
0105 LPC24XX_MODULE_SSP_0,
0106 LPC24XX_MODULE_SSP_1,
0107 #ifdef ARM_MULTILIB_ARCH_V7M
0108 LPC24XX_MODULE_SSP_2,
0109 #endif
0110 LPC24XX_MODULE_SYSCON,
0111 LPC24XX_MODULE_TIMER_0,
0112 LPC24XX_MODULE_TIMER_1,
0113 LPC24XX_MODULE_TIMER_2,
0114 LPC24XX_MODULE_TIMER_3,
0115 LPC24XX_MODULE_UART_0,
0116 LPC24XX_MODULE_UART_1,
0117 LPC24XX_MODULE_UART_2,
0118 LPC24XX_MODULE_UART_3,
0119 #ifdef ARM_MULTILIB_ARCH_V7M
0120 LPC24XX_MODULE_UART_4,
0121 #endif
0122 #ifdef ARM_MULTILIB_ARCH_V4
0123 LPC24XX_MODULE_WDT,
0124 #endif
0125 LPC24XX_MODULE_USB
0126 } lpc24xx_module;
0127
0128 #define LPC24XX_MODULE_COUNT (LPC24XX_MODULE_USB + 1)
0129
0130 typedef enum {
0131 LPC24XX_MODULE_PCLK_DEFAULT = 0x4U,
0132 LPC24XX_MODULE_CCLK = 0x1U,
0133 LPC24XX_MODULE_CCLK_2 = 0x2U,
0134 LPC24XX_MODULE_CCLK_4 = 0x0U,
0135 LPC24XX_MODULE_CCLK_6 = 0x3U,
0136 LPC24XX_MODULE_CCLK_8 = 0x3U
0137 } lpc24xx_module_clock;
0138
0139 #define LPC24XX_MODULE_CLOCK_MASK 0x3U
0140
0141 typedef enum {
0142 LPC24XX_GPIO_DEFAULT = 0x0U,
0143 LPC24XX_GPIO_RESISTOR_PULL_UP = 0x0U,
0144 LPC24XX_GPIO_RESISTOR_NONE = 0x1U,
0145 LPC24XX_GPIO_RESISTOR_PULL_DOWN = 0x2U,
0146 LPC24XX_GPIO_INPUT = 0x0U,
0147 #ifdef ARM_MULTILIB_ARCH_V7M
0148 LPC17XX_GPIO_REPEATER = 0x3U,
0149 LPC17XX_GPIO_HYSTERESIS = IOCON_HYS,
0150 LPC17XX_GPIO_INPUT_INVERT = IOCON_INV,
0151 LPC17XX_GPIO_FAST_MODE = IOCON_SLEW,
0152 LPC17XX_GPIO_OPEN_DRAIN = IOCON_OD,
0153 LPC17XX_GPIO_INPUT_FILTER = IOCON_FILTER,
0154 #endif
0155 LPC24XX_GPIO_OUTPUT = 0x8000U
0156 } lpc24xx_gpio_settings;
0157
0158 rtems_status_code lpc24xx_module_enable(
0159 lpc24xx_module module,
0160 lpc24xx_module_clock clock
0161 );
0162
0163 rtems_status_code lpc24xx_module_disable(
0164 lpc24xx_module module
0165 );
0166
0167 bool lpc24xx_module_is_enabled(lpc24xx_module module);
0168
0169 rtems_status_code lpc24xx_gpio_config(
0170 unsigned index,
0171 lpc24xx_gpio_settings settings
0172 );
0173
0174 static inline void lpc24xx_gpio_set(unsigned index)
0175 {
0176 if (index <= LPC24XX_IO_INDEX_MAX) {
0177 unsigned port = LPC24XX_IO_PORT(index);
0178 unsigned bit = LPC24XX_IO_PORT_BIT(index);
0179
0180 LPC24XX_FIO [port].set = 1U << bit;
0181 }
0182 }
0183
0184 static inline void lpc24xx_gpio_clear(unsigned index)
0185 {
0186 if (index <= LPC24XX_IO_INDEX_MAX) {
0187 unsigned port = LPC24XX_IO_PORT(index);
0188 unsigned bit = LPC24XX_IO_PORT_BIT(index);
0189
0190 LPC24XX_FIO [port].clr = 1U << bit;
0191 }
0192 }
0193
0194 static inline void lpc24xx_gpio_write(unsigned index, bool value)
0195 {
0196 if (value) {
0197 lpc24xx_gpio_set(index);
0198 } else {
0199 lpc24xx_gpio_clear(index);
0200 }
0201 }
0202
0203 static inline bool lpc24xx_gpio_get(unsigned index)
0204 {
0205 if (index <= LPC24XX_IO_INDEX_MAX) {
0206 unsigned port = LPC24XX_IO_PORT(index);
0207 unsigned bit = LPC24XX_IO_PORT_BIT(index);
0208
0209 return (LPC24XX_FIO [port].pin & (1U << bit)) != 0;
0210 } else {
0211 return false;
0212 }
0213 }
0214
0215 typedef enum {
0216
0217
0218
0219 LPC24XX_PIN_SET_FUNCTION,
0220
0221
0222
0223
0224 LPC24XX_PIN_CHECK_FUNCTION,
0225
0226
0227
0228
0229 LPC24XX_PIN_SET_INPUT,
0230
0231
0232
0233
0234 LPC24XX_PIN_CHECK_INPUT
0235 } lpc24xx_pin_action;
0236
0237 typedef union {
0238 struct {
0239 uint16_t port : 3;
0240 uint16_t port_bit : 5;
0241 uint16_t function : 3;
0242 uint16_t type : 4;
0243 uint16_t range : 1;
0244 } fields;
0245 uint16_t value;
0246 } lpc24xx_pin_range;
0247
0248 typedef enum {
0249 LPC24XX_PIN_FUNCTION_00,
0250 LPC24XX_PIN_FUNCTION_01,
0251 LPC24XX_PIN_FUNCTION_10,
0252 LPC24XX_PIN_FUNCTION_11
0253 } lpc24xx_pin_function;
0254
0255 typedef enum {
0256 LPC17XX_PIN_TYPE_DEFAULT,
0257 LPC17XX_PIN_TYPE_ADC,
0258 LPC17XX_PIN_TYPE_DAC,
0259 LPC17XX_PIN_TYPE_I2C,
0260 LPC17XX_PIN_TYPE_I2C_FAST_PLUS,
0261 LPC17XX_PIN_TYPE_OPEN_DRAIN,
0262 LPC17XX_PIN_TYPE_FAST_SLEW_RATE
0263 } lpc17xx_pin_type;
0264
0265 #ifdef ARM_MULTILIB_ARCH_V4
0266 #define LPC24XX_PIN(p, i, f0, f1) { { p, i, f0, 0, 0 } }
0267 #define LPC24XX_PIN_WITH_TYPE(p, i, f0, f1, t) { { p, i, f0, t, 0 } }
0268 #define LPC24XX_PIN_RANGE(p, i, j, f0, f1) \
0269 { { p, i, f0, 0, 0 } }, { { p, j, f0, 0, 1 } }
0270 #define LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, f0, f1, t) \
0271 { { p, i, f0, t, 0 } }, { { p, j, f0, t, 1 } }
0272 #else
0273 #define LPC24XX_PIN(p, i, f0, f1) { { p, i, f1, 0, 0 } }
0274 #define LPC24XX_PIN_WITH_TYPE(p, i, f0, f1, t) { { p, i, f1, t, 0 } }
0275 #define LPC24XX_PIN_RANGE(p, i, j, f0, f1) \
0276 { { p, i, f1, 0, 0 } }, { { p, j, f1, 0, 1 } }
0277 #define LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, f0, f1, t) \
0278 { { p, i, f1, t, 0 } }, { { p, j, f1, t, 1 } }
0279 #endif
0280
0281 #define LPC24XX_PIN_TERMINAL { { 0x7, 0x1f, 0x7, 0xf, 0x1 } }
0282
0283
0284
0285
0286
0287
0288
0289
0290
0291
0292
0293
0294
0295
0296
0297
0298
0299
0300
0301
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311
0312
0313
0314 rtems_status_code lpc24xx_pin_config(
0315 const lpc24xx_pin_range *pins,
0316 lpc24xx_pin_action action
0317 );
0318
0319
0320
0321
0322 static inline unsigned lpc24xx_pin_get_first_index(
0323 const lpc24xx_pin_range *range
0324 )
0325 {
0326 return LPC24XX_IO_INDEX_BY_PORT(range->fields.port, range->fields.port_bit);
0327 }
0328
0329
0330
0331
0332
0333
0334
0335 #define LPC24XX_PIN_ADC_CHANNEL_0 \
0336 LPC24XX_PIN_WITH_TYPE(0, 23, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
0337 #define LPC24XX_PIN_ADC_CHANNEL_1 \
0338 LPC24XX_PIN_WITH_TYPE(0, 24, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
0339 #define LPC24XX_PIN_ADC_CHANNEL_2 \
0340 LPC24XX_PIN_WITH_TYPE(0, 25, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
0341 #define LPC24XX_PIN_ADC_CHANNEL_3 \
0342 LPC24XX_PIN_WITH_TYPE(0, 26, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
0343 #define LPC24XX_PIN_ADC_CHANNEL_4 \
0344 LPC24XX_PIN_WITH_TYPE(1, 30, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
0345 #define LPC24XX_PIN_ADC_CHANNEL_5 \
0346 LPC24XX_PIN_WITH_TYPE(1, 31, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
0347 #define LPC24XX_PIN_ADC_CHANNEL_6 \
0348 LPC24XX_PIN_WITH_TYPE(0, 12, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
0349 #define LPC24XX_PIN_ADC_CHANNEL_7 \
0350 LPC24XX_PIN_WITH_TYPE(0, 13, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
0351
0352
0353
0354
0355
0356
0357
0358
0359
0360 #define LPC24XX_PIN_CAN_0_RD_P0_0 \
0361 LPC24XX_PIN(0, 0, LPC24XX_PIN_FUNCTION_01, 1)
0362
0363 #define LPC24XX_PIN_CAN_0_RD_P0_21 \
0364 LPC24XX_PIN(0, 21, LPC24XX_PIN_FUNCTION_11, 4)
0365
0366 #define LPC24XX_PIN_CAN_0_TD_P0_1 \
0367 LPC24XX_PIN(0, 1, LPC24XX_PIN_FUNCTION_01, 1)
0368
0369 #define LPC24XX_PIN_CAN_0_TD_P0_22 \
0370 LPC24XX_PIN(0, 22, LPC24XX_PIN_FUNCTION_11, 4)
0371
0372
0373
0374
0375
0376
0377
0378
0379
0380 #define LPC24XX_PIN_CAN_1_RD_P0_4 \
0381 LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_10, 2)
0382
0383 #define LPC24XX_PIN_CAN_1_RD_P2_7 \
0384 LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_01, 1)
0385
0386 #define LPC24XX_PIN_CAN_1_TD_P0_5 \
0387 LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_10, 2)
0388
0389 #define LPC24XX_PIN_CAN_1_TD_P2_8 \
0390 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_01, 1)
0391
0392
0393
0394
0395
0396
0397
0398
0399
0400 #define LPC24XX_PIN_DAC \
0401 LPC24XX_PIN_WITH_TYPE(0, 26, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_DAC)
0402
0403
0404
0405
0406
0407
0408
0409
0410
0411 #define LPC24XX_PIN_ETHERNET_MII \
0412 LPC24XX_PIN_RANGE(1, 0, 17, LPC24XX_PIN_FUNCTION_01, 1)
0413
0414 #define LPC24XX_PIN_ETHERNET_RMII_0 \
0415 LPC24XX_PIN_RANGE(1, 0, 1, LPC24XX_PIN_FUNCTION_01, 1)
0416 #define LPC24XX_PIN_ETHERNET_RMII_1 \
0417 LPC24XX_PIN(1, 4, LPC24XX_PIN_FUNCTION_01, 1)
0418 #define LPC24XX_PIN_ETHERNET_RMII_2 \
0419 LPC24XX_PIN_RANGE(1, 8, 10, LPC24XX_PIN_FUNCTION_01, 1)
0420 #define LPC24XX_PIN_ETHERNET_RMII_3 \
0421 LPC24XX_PIN_RANGE(1, 14, 17, LPC24XX_PIN_FUNCTION_01, 1)
0422
0423
0424
0425
0426
0427
0428
0429
0430
0431 #define LPC24XX_PIN_EINT_0 \
0432 LPC24XX_PIN(2, 10, LPC24XX_PIN_FUNCTION_01, 1)
0433 #define LPC24XX_PIN_EINT_1 \
0434 LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_01, 1)
0435 #define LPC24XX_PIN_EINT_2 \
0436 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 1)
0437 #define LPC24XX_PIN_EINT_3 \
0438 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 1)
0439
0440
0441
0442
0443
0444
0445
0446
0447
0448 #define LPC24XX_PIN_EMC(p, i) \
0449 LPC24XX_PIN_WITH_TYPE(p, i, LPC24XX_PIN_FUNCTION_01, 1, \
0450 LPC17XX_PIN_TYPE_FAST_SLEW_RATE)
0451
0452 #define LPC24XX_PIN_EMC_RANGE(p, i, j) \
0453 LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, LPC24XX_PIN_FUNCTION_01, 1, \
0454 LPC17XX_PIN_TYPE_FAST_SLEW_RATE)
0455
0456 #define LPC24XX_PIN_EMC_CS_0 LPC24XX_PIN_EMC(4, 30)
0457 #define LPC24XX_PIN_EMC_CS_1 LPC24XX_PIN_EMC(4, 31)
0458 #define LPC24XX_PIN_EMC_CS_2 LPC24XX_PIN_EMC(2, 14)
0459 #define LPC24XX_PIN_EMC_CS_3 LPC24XX_PIN_EMC(2, 15)
0460
0461 #define LPC24XX_PIN_EMC_DYCS_0 LPC24XX_PIN_EMC(2, 20)
0462 #define LPC24XX_PIN_EMC_DYCS_1 LPC24XX_PIN_EMC(2, 21)
0463 #define LPC24XX_PIN_EMC_DYCS_2 LPC24XX_PIN_EMC(2, 22)
0464 #define LPC24XX_PIN_EMC_DYCS_3 LPC24XX_PIN_EMC(2, 23)
0465
0466 #define LPC24XX_PIN_EMC_OE LPC24XX_PIN_EMC(4, 24)
0467 #define LPC24XX_PIN_EMC_WE LPC24XX_PIN_EMC(4, 25)
0468 #define LPC24XX_PIN_EMC_CAS LPC24XX_PIN_EMC(2, 16)
0469 #define LPC24XX_PIN_EMC_RAS LPC24XX_PIN_EMC(2, 17)
0470
0471 #define LPC24XX_PIN_EMC_CLK_0 LPC24XX_PIN_EMC(2, 18)
0472 #define LPC24XX_PIN_EMC_CLK_1 LPC24XX_PIN_EMC(2, 19)
0473
0474 #define LPC24XX_PIN_EMC_CKE_0 LPC24XX_PIN_EMC(2, 24)
0475 #define LPC24XX_PIN_EMC_CKE_1 LPC24XX_PIN_EMC(2, 25)
0476 #define LPC24XX_PIN_EMC_CKE_2 LPC24XX_PIN_EMC(2, 26)
0477 #define LPC24XX_PIN_EMC_CKE_3 LPC24XX_PIN_EMC(2, 27)
0478
0479 #define LPC24XX_PIN_EMC_DQM_0 LPC24XX_PIN_EMC(2, 28)
0480 #define LPC24XX_PIN_EMC_DQM_1 LPC24XX_PIN_EMC(2, 29)
0481 #define LPC24XX_PIN_EMC_DQM_2 LPC24XX_PIN_EMC(2, 30)
0482 #define LPC24XX_PIN_EMC_DQM_3 LPC24XX_PIN_EMC(2, 31)
0483
0484 #define LPC24XX_PIN_EMC_BLS0 LPC24XX_PIN_EMC(4, 26)
0485 #define LPC24XX_PIN_EMC_BLS1 LPC24XX_PIN_EMC(4, 27)
0486 #define LPC24XX_PIN_EMC_BLS2 LPC24XX_PIN_EMC(4, 28)
0487 #define LPC24XX_PIN_EMC_BLS3 LPC24XX_PIN_EMC(4, 29)
0488
0489 #define LPC24XX_PIN_EMC_D_0_15 LPC24XX_PIN_EMC_RANGE(3, 0, 15)
0490 #define LPC24XX_PIN_EMC_D_15_31 LPC24XX_PIN_EMC_RANGE(3, 15, 31)
0491 #define LPC24XX_PIN_EMC_D_0_31 LPC24XX_PIN_EMC_RANGE(3, 0, 31)
0492
0493 #define LPC24XX_PIN_EMC_A_0_12 LPC24XX_PIN_EMC_RANGE(4, 0, 12)
0494 #define LPC24XX_PIN_EMC_A_0_13 LPC24XX_PIN_EMC_RANGE(4, 0, 13)
0495 #define LPC24XX_PIN_EMC_A_0_14 LPC24XX_PIN_EMC_RANGE(4, 0, 14)
0496 #define LPC24XX_PIN_EMC_A_0_15 LPC24XX_PIN_EMC_RANGE(4, 0, 15)
0497 #define LPC24XX_PIN_EMC_A_0_16 \
0498 LPC24XX_PIN_EMC_A_0_15, \
0499 LPC24XX_PIN_EMC(4, 16)
0500 #define LPC24XX_PIN_EMC_A_0_17 \
0501 LPC24XX_PIN_EMC_A_0_15, \
0502 LPC24XX_PIN_EMC_RANGE(4, 16, 17)
0503 #define LPC24XX_PIN_EMC_A_0_18 \
0504 LPC24XX_PIN_EMC_A_0_15, \
0505 LPC24XX_PIN_EMC_RANGE(4, 16, 18)
0506 #define LPC24XX_PIN_EMC_A_0_19 \
0507 LPC24XX_PIN_EMC_A_0_15, \
0508 LPC24XX_PIN_EMC_RANGE(4, 16, 19)
0509 #define LPC24XX_PIN_EMC_A_0_20 \
0510 LPC24XX_PIN_EMC_A_0_15, \
0511 LPC24XX_PIN_EMC_RANGE(4, 16, 20)
0512 #define LPC24XX_PIN_EMC_A_0_21 \
0513 LPC24XX_PIN_EMC_A_0_15, \
0514 LPC24XX_PIN_EMC_RANGE(4, 16, 21)
0515 #define LPC24XX_PIN_EMC_A_0_22 \
0516 LPC24XX_PIN_EMC_A_0_15, \
0517 LPC24XX_PIN_EMC_RANGE(4, 16, 22)
0518 #define LPC24XX_PIN_EMC_A_0_23 \
0519 LPC24XX_PIN_EMC_A_0_15, \
0520 LPC24XX_PIN_EMC_RANGE(4, 16, 23)
0521 #define LPC24XX_PIN_EMC_A_0_24 \
0522 LPC24XX_PIN_EMC_A_0_23, \
0523 LPC24XX_PIN_EMC(5, 24)
0524 #define LPC24XX_PIN_EMC_A_0_25 \
0525 LPC24XX_PIN_EMC_A_0_23, \
0526 LPC24XX_PIN_EMC_RANGE(5, 24, 25)
0527
0528
0529
0530
0531
0532
0533
0534
0535
0536 #define LPC24XX_PIN_I2C_0_SDA \
0537 LPC24XX_PIN_WITH_TYPE(0, 27, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_I2C)
0538 #define LPC24XX_PIN_I2C_0_SCL \
0539 LPC24XX_PIN_WITH_TYPE(0, 28, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_I2C)
0540
0541
0542
0543
0544
0545
0546
0547
0548
0549 #define LPC24XX_PIN_I2C_1_SDA_P0_0 \
0550 LPC24XX_PIN_WITH_TYPE(0, 0, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
0551 #define LPC24XX_PIN_I2C_1_SDA_P0_19 \
0552 LPC24XX_PIN_WITH_TYPE(0, 19, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
0553 #define LPC24XX_PIN_I2C_1_SDA_P2_14 \
0554 LPC24XX_PIN_WITH_TYPE(2, 14, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
0555
0556 #define LPC24XX_PIN_I2C_1_SCL_P0_1 \
0557 LPC24XX_PIN_WITH_TYPE(0, 1, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
0558 #define LPC24XX_PIN_I2C_1_SCL_P0_20 \
0559 LPC24XX_PIN_WITH_TYPE(0, 20, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
0560 #define LPC24XX_PIN_I2C_1_SCL_P2_15 \
0561 LPC24XX_PIN_WITH_TYPE(2, 15, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
0562
0563
0564
0565
0566
0567
0568
0569
0570
0571 #define LPC24XX_PIN_I2C_2_SDA_P0_10 \
0572 LPC24XX_PIN_WITH_TYPE(0, 10, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
0573 #define LPC24XX_PIN_I2C_2_SDA_P2_30 \
0574 LPC24XX_PIN_WITH_TYPE(2, 30, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
0575 #define LPC24XX_PIN_I2C_2_SDA_P4_20 \
0576 LPC24XX_PIN_WITH_TYPE(4, 20, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
0577
0578 #define LPC24XX_PIN_I2C_2_SCL_P0_11 \
0579 LPC24XX_PIN_WITH_TYPE(0, 11, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
0580 #define LPC24XX_PIN_I2C_2_SCL_P2_31 \
0581 LPC24XX_PIN_WITH_TYPE(2, 31, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
0582 #define LPC24XX_PIN_I2C_2_SCL_P4_21 \
0583 LPC24XX_PIN_WITH_TYPE(4, 21, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
0584
0585
0586
0587
0588
0589
0590
0591
0592
0593 #define LPC24XX_PIN_I2S_RX_CLK_P0_4 \
0594 LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_01, 1)
0595 #define LPC24XX_PIN_I2S_RX_CLK_P0_23 \
0596 LPC24XX_PIN(0, 23, LPC24XX_PIN_FUNCTION_10, 2)
0597
0598 #define LPC24XX_PIN_I2S_RX_WS_P0_5 \
0599 LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_01, 1)
0600 #define LPC24XX_PIN_I2S_RX_WS_P0_24 \
0601 LPC24XX_PIN(0, 24, LPC24XX_PIN_FUNCTION_10, 2)
0602
0603 #define LPC24XX_PIN_I2S_RX_SDA_P0_6 \
0604 LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_01, 1)
0605 #define LPC24XX_PIN_I2S_RX_SDA_P0_25 \
0606 LPC24XX_PIN(0, 25, LPC24XX_PIN_FUNCTION_10, 2)
0607
0608 #define LPC24XX_PIN_I2S_TX_CLK_P0_7 \
0609 LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_01, 1)
0610 #define LPC24XX_PIN_I2S_TX_CLK_P2_11 \
0611 LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_11, 3)
0612
0613 #define LPC24XX_PIN_I2S_TX_WS_P0_8 \
0614 LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_01, 1)
0615 #define LPC24XX_PIN_I2S_TX_WS_P2_12 \
0616 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_11, 3)
0617
0618 #define LPC24XX_PIN_I2S_TX_SDA_P0_9 \
0619 LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_01, 1)
0620 #define LPC24XX_PIN_I2S_TX_SDA_P2_13 \
0621 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_11, 3)
0622
0623
0624
0625
0626
0627
0628
0629
0630
0631 #define LPC24XX_PIN_LCD_PWR \
0632 LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_11, 7)
0633 #define LPC24XX_PIN_LCD_LE \
0634 LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_11, 7)
0635 #define LPC24XX_PIN_LCD_DCLK \
0636 LPC24XX_PIN(2, 2, LPC24XX_PIN_FUNCTION_11, 7)
0637 #define LPC24XX_PIN_LCD_FP \
0638 LPC24XX_PIN(2, 3, LPC24XX_PIN_FUNCTION_11, 7)
0639 #define LPC24XX_PIN_LCD_ENAB_M \
0640 LPC24XX_PIN(2, 4, LPC24XX_PIN_FUNCTION_11, 7)
0641 #define LPC24XX_PIN_LCD_LP \
0642 LPC24XX_PIN(2, 5, LPC24XX_PIN_FUNCTION_11, 7)
0643 #define LPC24XX_PIN_LCD_CLKIN \
0644 LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_01, 7)
0645
0646 #define LPC24XX_PIN_LCD_VD_0_P0_4 \
0647 LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_01, 7)
0648 #define LPC24XX_PIN_LCD_VD_0_P2_6 \
0649 LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_11, 6)
0650 #define LPC24XX_PIN_LCD_VD_1_P0_5 \
0651 LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_01, 7)
0652 #define LPC24XX_PIN_LCD_VD_1_P2_7 \
0653 LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_11, 6)
0654 #define LPC24XX_PIN_LCD_VD_2_P2_8 \
0655 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_11, 6)
0656 #define LPC24XX_PIN_LCD_VD_2_P4_28 \
0657 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 7)
0658 #define LPC24XX_PIN_LCD_VD_3_P2_9 \
0659 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_11, 6)
0660 #define LPC24XX_PIN_LCD_VD_3_P2_12 \
0661 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 5)
0662 #define LPC24XX_PIN_LCD_VD_3_P4_29 \
0663 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 7)
0664 #define LPC24XX_PIN_LCD_VD_4_P2_6 \
0665 LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_11, 7)
0666 #define LPC24XX_PIN_LCD_VD_4_P2_12 \
0667 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 4)
0668 #define LPC24XX_PIN_LCD_VD_5_P2_7 \
0669 LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_11, 7)
0670 #define LPC24XX_PIN_LCD_VD_5_P2_13 \
0671 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 5)
0672 #define LPC24XX_PIN_LCD_VD_6_P1_20 \
0673 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 6)
0674 #define LPC24XX_PIN_LCD_VD_6_P2_8 \
0675 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_11, 7)
0676 #define LPC24XX_PIN_LCD_VD_6_P4_28 \
0677 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 5)
0678 #define LPC24XX_PIN_LCD_VD_7_P1_21 \
0679 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 6)
0680 #define LPC24XX_PIN_LCD_VD_7_P2_9 \
0681 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_11, 7)
0682 #define LPC24XX_PIN_LCD_VD_7_P4_29 \
0683 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 5)
0684 #define LPC24XX_PIN_LCD_VD_8_P0_6 \
0685 LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_01, 7)
0686 #define LPC24XX_PIN_LCD_VD_8_P1_22 \
0687 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 6)
0688 #define LPC24XX_PIN_LCD_VD_8_P2_12 \
0689 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 6)
0690 #define LPC24XX_PIN_LCD_VD_9_P0_7 \
0691 LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_01, 7)
0692 #define LPC24XX_PIN_LCD_VD_9_P1_23 \
0693 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 6)
0694 #define LPC24XX_PIN_LCD_VD_9_P2_13 \
0695 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 6)
0696 #define LPC24XX_PIN_LCD_VD_10_P1_20 \
0697 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 7)
0698 #define LPC24XX_PIN_LCD_VD_10_P1_24 \
0699 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 6)
0700 #define LPC24XX_PIN_LCD_VD_10_P4_28 \
0701 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 6)
0702 #define LPC24XX_PIN_LCD_VD_11_P1_21 \
0703 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 7)
0704 #define LPC24XX_PIN_LCD_VD_11_P1_25 \
0705 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 6)
0706 #define LPC24XX_PIN_LCD_VD_11_P4_29 \
0707 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 6)
0708 #define LPC24XX_PIN_LCD_VD_12_P1_22 \
0709 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 7)
0710 #define LPC24XX_PIN_LCD_VD_12_P1_26 \
0711 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 6)
0712 #define LPC24XX_PIN_LCD_VD_13_P1_23 \
0713 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 7)
0714 #define LPC24XX_PIN_LCD_VD_13_P1_27 \
0715 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 6)
0716 #define LPC24XX_PIN_LCD_VD_14_P1_24 \
0717 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 7)
0718 #define LPC24XX_PIN_LCD_VD_14_P1_28 \
0719 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 6)
0720 #define LPC24XX_PIN_LCD_VD_15_P1_25 \
0721 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 7)
0722 #define LPC24XX_PIN_LCD_VD_15_P1_29 \
0723 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_01, 6)
0724 #define LPC24XX_PIN_LCD_VD_16_P0_8 \
0725 LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_01, 7)
0726 #define LPC24XX_PIN_LCD_VD_17_P0_9 \
0727 LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_01, 7)
0728 #define LPC24XX_PIN_LCD_VD_18_P2_12 \
0729 LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 7)
0730 #define LPC24XX_PIN_LCD_VD_19_P2_13 \
0731 LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 7)
0732 #define LPC24XX_PIN_LCD_VD_20_P1_26 \
0733 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 7)
0734 #define LPC24XX_PIN_LCD_VD_21_P1_27 \
0735 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 7)
0736 #define LPC24XX_PIN_LCD_VD_22_P1_28 \
0737 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 7)
0738 #define LPC24XX_PIN_LCD_VD_23_P1_29 \
0739 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_01, 7)
0740
0741
0742
0743
0744
0745
0746
0747
0748
0749 #define LPC24XX_PIN_PWM_0_CHANNEL_1_P1_2 \
0750 LPC24XX_PIN(1, 2, LPC24XX_PIN_FUNCTION_11, 3)
0751 #define LPC24XX_PIN_PWM_0_CHANNEL_1_P3_16 \
0752 LPC24XX_PIN(3, 16, LPC24XX_PIN_FUNCTION_10, 2)
0753
0754 #define LPC24XX_PIN_PWM_0_CHANNEL_2_P1_3 \
0755 LPC24XX_PIN(1, 3, LPC24XX_PIN_FUNCTION_11, 3)
0756 #define LPC24XX_PIN_PWM_0_CHANNEL_2_P3_17 \
0757 LPC24XX_PIN(3, 17, LPC24XX_PIN_FUNCTION_10, 2)
0758
0759 #define LPC24XX_PIN_PWM_0_CHANNEL_3_P1_5 \
0760 LPC24XX_PIN(1, 5, LPC24XX_PIN_FUNCTION_11, 3)
0761 #define LPC24XX_PIN_PWM_0_CHANNEL_3_P3_18 \
0762 LPC24XX_PIN(3, 18, LPC24XX_PIN_FUNCTION_10, 2)
0763
0764 #define LPC24XX_PIN_PWM_0_CHANNEL_4_P1_6 \
0765 LPC24XX_PIN(1, 6, LPC24XX_PIN_FUNCTION_11, 3)
0766 #define LPC24XX_PIN_PWM_0_CHANNEL_4_P3_19 \
0767 LPC24XX_PIN(3, 19, LPC24XX_PIN_FUNCTION_10, 2)
0768
0769 #define LPC24XX_PIN_PWM_0_CHANNEL_5_P1_7 \
0770 LPC24XX_PIN(1, 7, LPC24XX_PIN_FUNCTION_11, 3)
0771 #define LPC24XX_PIN_PWM_0_CHANNEL_5_P3_20 \
0772 LPC24XX_PIN(3, 20, LPC24XX_PIN_FUNCTION_10, 2)
0773
0774 #define LPC24XX_PIN_PWM_0_CHANNEL_6_P1_11 \
0775 LPC24XX_PIN(1, 11, LPC24XX_PIN_FUNCTION_11, 3)
0776 #define LPC24XX_PIN_PWM_0_CHANNEL_6_P3_21 \
0777 LPC24XX_PIN(3, 21, LPC24XX_PIN_FUNCTION_10, 2)
0778
0779 #define LPC24XX_PIN_PWM_0_CAPTURE_0_P1_12 \
0780 LPC24XX_PIN(1, 12, LPC24XX_PIN_FUNCTION_11, 3)
0781 #define LPC24XX_PIN_PWM_0_CAPTURE_0_P3_22 \
0782 LPC24XX_PIN(3, 22, LPC24XX_PIN_FUNCTION_10, 2)
0783
0784
0785
0786
0787
0788
0789
0790
0791
0792 #define LPC24XX_PIN_PWM_1_CHANNEL_1_P1_18 \
0793 LPC24XX_PIN(1, 18, LPC24XX_PIN_FUNCTION_10, 2)
0794 #define LPC24XX_PIN_PWM_1_CHANNEL_1_P2_0 \
0795 LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_01, 1)
0796 #define LPC24XX_PIN_PWM_1_CHANNEL_1_P3_24 \
0797 LPC24XX_PIN(3, 24, LPC24XX_PIN_FUNCTION_11, 2)
0798
0799 #define LPC24XX_PIN_PWM_1_CHANNEL_2_P1_20 \
0800 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_10, 2)
0801 #define LPC24XX_PIN_PWM_1_CHANNEL_2_P2_1 \
0802 LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_01, 1)
0803 #define LPC24XX_PIN_PWM_1_CHANNEL_2_P3_25 \
0804 LPC24XX_PIN(3, 25, LPC24XX_PIN_FUNCTION_11, 2)
0805
0806 #define LPC24XX_PIN_PWM_1_CHANNEL_3_P1_21 \
0807 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_10, 2)
0808 #define LPC24XX_PIN_PWM_1_CHANNEL_3_P2_2 \
0809 LPC24XX_PIN(2, 2, LPC24XX_PIN_FUNCTION_01, 1)
0810 #define LPC24XX_PIN_PWM_1_CHANNEL_3_P3_26 \
0811 LPC24XX_PIN(3, 26, LPC24XX_PIN_FUNCTION_11, 2)
0812
0813 #define LPC24XX_PIN_PWM_1_CHANNEL_4_P1_23 \
0814 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_10, 2)
0815 #define LPC24XX_PIN_PWM_1_CHANNEL_4_P2_3 \
0816 LPC24XX_PIN(2, 3, LPC24XX_PIN_FUNCTION_01, 1)
0817 #define LPC24XX_PIN_PWM_1_CHANNEL_4_P3_27 \
0818 LPC24XX_PIN(3, 27, LPC24XX_PIN_FUNCTION_11, 2)
0819
0820 #define LPC24XX_PIN_PWM_1_CHANNEL_5_P1_24 \
0821 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_10, 2)
0822 #define LPC24XX_PIN_PWM_1_CHANNEL_5_P2_4 \
0823 LPC24XX_PIN(2, 4, LPC24XX_PIN_FUNCTION_01, 1)
0824 #define LPC24XX_PIN_PWM_1_CHANNEL_5_P3_28 \
0825 LPC24XX_PIN(3, 28, LPC24XX_PIN_FUNCTION_11, 2)
0826
0827 #define LPC24XX_PIN_PWM_1_CHANNEL_6_P1_26 \
0828 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_10, 2)
0829 #define LPC24XX_PIN_PWM_1_CHANNEL_6_P2_5 \
0830 LPC24XX_PIN(2, 5, LPC24XX_PIN_FUNCTION_01, 1)
0831 #define LPC24XX_PIN_PWM_1_CHANNEL_6_P3_29 \
0832 LPC24XX_PIN(3, 29, LPC24XX_PIN_FUNCTIO9_11, 2)
0833
0834 #define LPC24XX_PIN_PWM_1_CAPTURE_0_P1_28 \
0835 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_10, 2)
0836 #define LPC24XX_PIN_PWM_1_CAPTURE_0_P2_7 \
0837 LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_01, 1)
0838 #define LPC24XX_PIN_PWM_1_CAPTURE_0_P3_23 \
0839 LPC24XX_PIN(3, 23, LPC24XX_PIN_FUNCTION_11, 2)
0840
0841 #define LPC24XX_PIN_PWM_1_CAPTURE_1_P1_29 \
0842 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_10, 2)
0843
0844
0845
0846 #ifdef ARM_MULTILIB_ARCH_V4
0847
0848
0849
0850
0851
0852
0853
0854 #define LPC24XX_PIN_SPI_SCK \
0855 LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_11)
0856 #define LPC24XX_PIN_SPI_SSEL \
0857 LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_11)
0858 #define LPC24XX_PIN_SPI_MISO \
0859 LPC24XX_PIN(0, 17, LPC24XX_PIN_FUNCTION_11)
0860 #define LPC24XX_PIN_SPI_MOSI \
0861 LPC24XX_PIN(0, 18, LPC24XX_PIN_FUNCTION_11)
0862
0863
0864
0865 #endif
0866
0867
0868
0869
0870
0871
0872
0873 #define LPC24XX_PIN_SSP_0_SCK_P0_15 \
0874 LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_10, 2)
0875 #define LPC24XX_PIN_SSP_0_SCK_P1_20 \
0876 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_11, 5)
0877 #define LPC24XX_PIN_SSP_0_SCK_P2_22 \
0878 LPC24XX_PIN(2, 22, LPC24XX_PIN_FUNCTION_11, 2)
0879
0880 #define LPC24XX_PIN_SSP_0_SSEL_P0_16 \
0881 LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_10, 2)
0882 #define LPC24XX_PIN_SSP_0_SSEL_P1_21 \
0883 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_11, 3)
0884 #define LPC24XX_PIN_SSP_0_SSEL_P2_23 \
0885 LPC24XX_PIN(2, 23, LPC24XX_PIN_FUNCTION_11, 2)
0886
0887 #define LPC24XX_PIN_SSP_0_MISO_P0_17 \
0888 LPC24XX_PIN(0, 17, LPC24XX_PIN_FUNCTION_10, 2)
0889 #define LPC24XX_PIN_SSP_0_MISO_P1_23 \
0890 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_11, 5)
0891 #define LPC24XX_PIN_SSP_0_MISO_P2_26 \
0892 LPC24XX_PIN(2, 26, LPC24XX_PIN_FUNCTION_11, 2)
0893
0894 #define LPC24XX_PIN_SSP_0_MOSI_P0_18 \
0895 LPC24XX_PIN(0, 18, LPC24XX_PIN_FUNCTION_10, 2)
0896 #define LPC24XX_PIN_SSP_0_MOSI_P1_24 \
0897 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_11, 5)
0898 #define LPC24XX_PIN_SSP_0_MOSI_P2_27 \
0899 LPC24XX_PIN(2, 27, LPC24XX_PIN_FUNCTION_11, 2)
0900
0901
0902
0903
0904
0905
0906
0907
0908
0909 #define LPC24XX_PIN_SSP_1_SCK_P0_6 \
0910 LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_10, 2)
0911 #define LPC24XX_PIN_SSP_1_SCK_P0_12 \
0912 LPC24XX_PIN(1, 31, LPC24XX_PIN_FUNCTION_10, 2)
0913 #define LPC24XX_PIN_SSP_1_SCK_P4_20 \
0914 LPC24XX_PIN(4, 20, LPC24XX_PIN_FUNCTION_11, 3)
0915
0916 #define LPC24XX_PIN_SSP_1_SSEL_P0_7 \
0917 LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_10, 2)
0918 #define LPC24XX_PIN_SSP_1_SSEL_P0_13 \
0919 LPC24XX_PIN(0, 14, LPC24XX_PIN_FUNCTION_11, 2)
0920 #define LPC24XX_PIN_SSP_1_SSEL_P4_21 \
0921 LPC24XX_PIN(4, 21, LPC24XX_PIN_FUNCTION_11, 3)
0922
0923 #define LPC24XX_PIN_SSP_1_MISO_P0_8 \
0924 LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_10, 2)
0925 #define LPC24XX_PIN_SSP_1_MISO_P0_14 \
0926 LPC24XX_PIN(0, 12, LPC24XX_PIN_FUNCTION_10, 2)
0927 #define LPC24XX_PIN_SSP_1_MISO_P4_22 \
0928 LPC24XX_PIN(4, 22, LPC24XX_PIN_FUNCTION_11, 3)
0929
0930 #define LPC24XX_PIN_SSP_1_MOSI_P0_9 \
0931 LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_10, 2)
0932 #define LPC24XX_PIN_SSP_1_MOSI_P1_31 \
0933 LPC24XX_PIN(0, 13, LPC24XX_PIN_FUNCTION_10, 2)
0934 #define LPC24XX_PIN_SSP_1_MOSI_P4_23 \
0935 LPC24XX_PIN(4, 23, LPC24XX_PIN_FUNCTION_11, 3)
0936
0937
0938
0939 #ifdef ARM_MULTILIB_ARCH_V7M
0940
0941
0942
0943
0944
0945
0946
0947 #define LPC24XX_PIN_SSP_2_SCK_P1_0 \
0948 LPC24XX_PIN(1, 0, LPC24XX_PIN_FUNCTION_00, 4)
0949 #define LPC24XX_PIN_SSP_2_SCK_P5_2 \
0950 LPC24XX_PIN(5, 2, LPC24XX_PIN_FUNCTION_00, 2)
0951
0952 #define LPC24XX_PIN_SSP_2_SSEL_P1_8 \
0953 LPC24XX_PIN(1, 8, LPC24XX_PIN_FUNCTION_00, 4)
0954 #define LPC24XX_PIN_SSP_2_SSEL_P5_3 \
0955 LPC24XX_PIN(5, 3, LPC24XX_PIN_FUNCTION_00, 2)
0956
0957 #define LPC24XX_PIN_SSP_2_MISO_P1_4 \
0958 LPC24XX_PIN(1, 4, LPC24XX_PIN_FUNCTION_00, 4)
0959 #define LPC24XX_PIN_SSP_2_MISO_P5_1 \
0960 LPC24XX_PIN(5, 1, LPC24XX_PIN_FUNCTION_00, 2)
0961
0962 #define LPC24XX_PIN_SSP_2_MOSI_P1_1 \
0963 LPC24XX_PIN(1, 1, LPC24XX_PIN_FUNCTION_00, 4)
0964 #define LPC24XX_PIN_SSP_2_MOSI_P5_0 \
0965 LPC24XX_PIN(5, 0, LPC24XX_PIN_FUNCTION_00, 2)
0966
0967
0968
0969 #endif
0970
0971
0972
0973
0974
0975
0976
0977 #define LPC24XX_PIN_UART_0_TXD \
0978 LPC24XX_PIN(0, 2, LPC24XX_PIN_FUNCTION_01, 1)
0979
0980 #define LPC24XX_PIN_UART_0_RXD \
0981 LPC24XX_PIN(0, 3, LPC24XX_PIN_FUNCTION_01, 1)
0982
0983
0984
0985
0986
0987
0988
0989
0990
0991 #define LPC24XX_PIN_UART_1_TXD_P0_15 \
0992 LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_01, 1)
0993 #define LPC24XX_PIN_UART_1_TXD_P2_0 \
0994 LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_10, 2)
0995 #define LPC24XX_PIN_UART_1_TXD_P3_16 \
0996 LPC24XX_PIN(3, 16, LPC24XX_PIN_FUNCTION_11, 3)
0997
0998 #define LPC24XX_PIN_UART_1_RXD_P0_16 \
0999 LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_01, 1)
1000 #define LPC24XX_PIN_UART_1_RXD_P2_1 \
1001 LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_10, 2)
1002 #define LPC24XX_PIN_UART_1_RXD_P3_17 \
1003 LPC24XX_PIN(3, 17, LPC24XX_PIN_FUNCTION_11, 3)
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013 #define LPC24XX_PIN_UART_2_TXD_P0_10 \
1014 LPC24XX_PIN(0, 10, LPC24XX_PIN_FUNCTION_01, 1)
1015 #define LPC24XX_PIN_UART_2_TXD_P2_8 \
1016 LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_10, 2)
1017 #define LPC24XX_PIN_UART_2_TXD_P4_22 \
1018 LPC24XX_PIN(4, 22, LPC24XX_PIN_FUNCTION_10, 2)
1019
1020 #define LPC24XX_PIN_UART_2_RXD_P0_11 \
1021 LPC24XX_PIN(0, 11, LPC24XX_PIN_FUNCTION_01, 1)
1022 #define LPC24XX_PIN_UART_2_RXD_P2_9 \
1023 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_10, 2)
1024 #define LPC24XX_PIN_UART_2_RXD_P4_23 \
1025 LPC24XX_PIN(4, 23, LPC24XX_PIN_FUNCTION_10, 2)
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035 #define LPC24XX_PIN_UART_3_TXD_P0_0 \
1036 LPC24XX_PIN(0, 0, LPC24XX_PIN_FUNCTION_10, 2)
1037 #define LPC24XX_PIN_UART_3_TXD_P0_25 \
1038 LPC24XX_PIN(0, 25, LPC24XX_PIN_FUNCTION_11, 3)
1039 #define LPC24XX_PIN_UART_3_TXD_P4_28 \
1040 LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_11, 2)
1041
1042 #define LPC24XX_PIN_UART_3_RXD_P0_1 \
1043 LPC24XX_PIN(0, 1, LPC24XX_PIN_FUNCTION_10, 2)
1044 #define LPC24XX_PIN_UART_3_RXD_P0_26 \
1045 LPC24XX_PIN(0, 26, LPC24XX_PIN_FUNCTION_11, 3)
1046 #define LPC24XX_PIN_UART_3_RXD_P4_29 \
1047 LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_11, 2)
1048
1049
1050
1051 #ifdef ARM_MULTILIB_ARCH_V7M
1052
1053
1054
1055
1056
1057
1058
1059 #define LPC24XX_PIN_UART_4_TXD_P0_22 \
1060 LPC24XX_PIN(0, 22, LPC24XX_PIN_FUNCTION_00, 3)
1061 #define LPC24XX_PIN_UART_4_TXD_P1_29 \
1062 LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_00, 5)
1063 #define LPC24XX_PIN_UART_4_TXD_P5_4 \
1064 LPC24XX_PIN(5, 4, LPC24XX_PIN_FUNCTION_00, 4)
1065
1066 #define LPC24XX_PIN_UART_4_RXD_P2_9 \
1067 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_00, 3)
1068 #define LPC24XX_PIN_UART_4_RXD_P5_3 \
1069 LPC24XX_PIN(5, 3, LPC24XX_PIN_FUNCTION_00, 4)
1070
1071 #define LPC24XX_PIN_UART_4_OE_P0_21 \
1072 LPC24XX_PIN(0, 21, LPC24XX_PIN_FUNCTION_00, 3)
1073
1074 #define LPC24XX_PIN_UART_4_SCLK_P0_21 \
1075 LPC24XX_PIN(0, 21, LPC24XX_PIN_FUNCTION_00, 5)
1076
1077 #endif
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087 #define LPC24XX_PIN_USB_D_PLUS_1\
1088 LPC24XX_PIN(0, 29, LPC24XX_PIN_FUNCTION_01, 1)
1089 #define LPC24XX_PIN_USB_D_MINUS_1\
1090 LPC24XX_PIN(0, 30, LPC24XX_PIN_FUNCTION_01, 1)
1091 #define LPC24XX_PIN_USB_UP_LED_1\
1092 LPC24XX_PIN(1, 18, LPC24XX_PIN_FUNCTION_01, 1)
1093 #define LPC24XX_PIN_USB_TX_E_1\
1094 LPC24XX_PIN(1, 19, LPC24XX_PIN_FUNCTION_01, 1)
1095 #define LPC24XX_PIN_USB_PPWR_1\
1096 LPC24XX_PIN(1, 19, LPC24XX_PIN_FUNCTION_10, 2)
1097 #define LPC24XX_PIN_USB_TX_DP_1\
1098 LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 1)
1099 #define LPC24XX_PIN_USB_TX_DM_1\
1100 LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 1)
1101 #define LPC24XX_PIN_USB_RCV_1\
1102 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 1)
1103 #define LPC24XX_PIN_USB_PWRD_1\
1104 LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_10, 2)
1105 #define LPC24XX_PIN_USB_RX_DP_1\
1106 LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 1)
1107 #define LPC24XX_PIN_USB_RX_DM_1\
1108 LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 1)
1109 #define LPC24XX_PIN_USB_LS_1\
1110 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 1)
1111 #define LPC24XX_PIN_USB_HSTEN_1\
1112 LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_10, 2)
1113 #define LPC24XX_PIN_USB_SSPND_1\
1114 LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 1)
1115 #define LPC24XX_PIN_USB_INT_1\
1116 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 1)
1117 #define LPC24XX_PIN_USB_OVRCR_1\
1118 LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_10, 2)
1119 #define LPC24XX_PIN_USB_SCL_1\
1120 LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 1)
1121 #define LPC24XX_PIN_USB_SDA_1 \
1122 LPC24XX_PIN_WITH_TYPE( \
1123 1, 29, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_OPEN_DRAIN \
1124 )
1125 #define LPC24XX_PIN_USB_CONNECT_1\
1126 LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_01, 1)
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136 #define LPC24XX_PIN_USB_PPWR_2\
1137 LPC24XX_PIN(0, 12, LPC24XX_PIN_FUNCTION_01, 1)
1138 #define LPC24XX_PIN_USB_UP_LED_2\
1139 LPC24XX_PIN(0, 13, LPC24XX_PIN_FUNCTION_01, 1)
1140 #define LPC24XX_PIN_USB_HSTEN_2\
1141 LPC24XX_PIN(0, 14, LPC24XX_PIN_FUNCTION_01, 1)
1142 #define LPC24XX_PIN_USB_CONNECT_2\
1143 LPC24XX_PIN(0, 14, LPC24XX_PIN_FUNCTION_01, 3)
1144 #define LPC24XX_PIN_USB_D_PLUS_2\
1145 LPC24XX_PIN(0, 31, LPC24XX_PIN_FUNCTION_01, 1)
1146 #define LPC24XX_PIN_USB_PWRD_2\
1147 LPC24XX_PIN(1, 30, LPC24XX_PIN_FUNCTION_01, 1)
1148 #define LPC24XX_PIN_USB_OVRCR_2\
1149 LPC24XX_PIN(1, 31, LPC24XX_PIN_FUNCTION_01, 1)
1150
1151
1152
1153
1154
1155 #ifdef __cplusplus
1156 }
1157 #endif
1158
1159 #endif