RTEMS 6.3
Loading...
Searching...
No Matches

Input and output module. More...

Data Structures

union  lpc24xx_pin_range
struct  lpc24xx_pin_range::[struct].fields

Macros

#define LPC24XX_IO_PORT_COUNT   5U
#define LPC24XX_IO_INDEX_MAX   (LPC24XX_IO_PORT_COUNT * 32U)
#define LPC24XX_IO_INDEX_BY_PORT(port, bit)
#define LPC24XX_IO_PORT(index)
#define LPC24XX_IO_PORT_BIT(index)
#define LPC24XX_MODULE_COUNT   (LPC24XX_MODULE_USB + 1)
#define LPC24XX_MODULE_CLOCK_MASK   0x3U
#define LPC24XX_PIN(p, i, f0, f1)
#define LPC24XX_PIN_WITH_TYPE(p, i, f0, f1, t)
#define LPC24XX_PIN_RANGE(p, i, j, f0, f1)
#define LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, f0, f1, t)
#define LPC24XX_PIN_TERMINAL   { { 0x7, 0x1f, 0x7, 0xf, 0x1 } }

Enumerations

enum  lpc24xx_module {
  LPC24XX_MODULE_ADC , LPC24XX_MODULE_CAN_0 , LPC24XX_MODULE_CAN_1 , LPC24XX_MODULE_DAC ,
  LPC24XX_MODULE_EMC , LPC24XX_MODULE_ETHERNET , LPC24XX_MODULE_GPDMA , LPC24XX_MODULE_GPIO ,
  LPC24XX_MODULE_I2C_0 , LPC24XX_MODULE_I2C_1 , LPC24XX_MODULE_I2C_2 , LPC24XX_MODULE_I2S ,
  LPC24XX_MODULE_LCD , LPC24XX_MODULE_MCI , LPC24XX_MODULE_PCB , LPC24XX_MODULE_PWM_0 ,
  LPC24XX_MODULE_PWM_1 , LPC24XX_MODULE_RTC , LPC24XX_MODULE_SSP_0 , LPC24XX_MODULE_SSP_1 ,
  LPC24XX_MODULE_SYSCON , LPC24XX_MODULE_TIMER_0 , LPC24XX_MODULE_TIMER_1 , LPC24XX_MODULE_TIMER_2 ,
  LPC24XX_MODULE_TIMER_3 , LPC24XX_MODULE_UART_0 , LPC24XX_MODULE_UART_1 , LPC24XX_MODULE_UART_2 ,
  LPC24XX_MODULE_UART_3 , LPC24XX_MODULE_USB
}
enum  lpc24xx_module_clock {
  LPC24XX_MODULE_PCLK_DEFAULT = 0x4U , LPC24XX_MODULE_CCLK = 0x1U , LPC24XX_MODULE_CCLK_2 = 0x2U , LPC24XX_MODULE_CCLK_4 = 0x0U ,
  LPC24XX_MODULE_CCLK_6 = 0x3U , LPC24XX_MODULE_CCLK_8 = 0x3U
}
enum  lpc24xx_gpio_settings {
  LPC24XX_GPIO_DEFAULT = 0x0U , LPC24XX_GPIO_RESISTOR_PULL_UP = 0x0U , LPC24XX_GPIO_RESISTOR_NONE = 0x1U , LPC24XX_GPIO_RESISTOR_PULL_DOWN = 0x2U ,
  LPC24XX_GPIO_INPUT = 0x0U , LPC24XX_GPIO_OUTPUT = 0x8000U
}
enum  lpc24xx_pin_action { LPC24XX_PIN_SET_FUNCTION , LPC24XX_PIN_CHECK_FUNCTION , LPC24XX_PIN_SET_INPUT , LPC24XX_PIN_CHECK_INPUT }
enum  lpc24xx_pin_function { LPC24XX_PIN_FUNCTION_00 , LPC24XX_PIN_FUNCTION_01 , LPC24XX_PIN_FUNCTION_10 , LPC24XX_PIN_FUNCTION_11 }
enum  lpc17xx_pin_type {
  LPC17XX_PIN_TYPE_DEFAULT , LPC17XX_PIN_TYPE_ADC , LPC17XX_PIN_TYPE_DAC , LPC17XX_PIN_TYPE_I2C ,
  LPC17XX_PIN_TYPE_I2C_FAST_PLUS , LPC17XX_PIN_TYPE_OPEN_DRAIN , LPC17XX_PIN_TYPE_FAST_SLEW_RATE
}

Functions

rtems_status_code lpc24xx_module_enable (lpc24xx_module module, lpc24xx_module_clock clock)
rtems_status_code lpc24xx_module_disable (lpc24xx_module module)
bool lpc24xx_module_is_enabled (lpc24xx_module module)
rtems_status_code lpc24xx_gpio_config (unsigned index, lpc24xx_gpio_settings settings)
rtems_status_code lpc24xx_pin_config (const lpc24xx_pin_range *pins, lpc24xx_pin_action action)
 Performs the action with the pins.

ADC Pins

#define LPC24XX_PIN_ADC_CHANNEL_0   LPC24XX_PIN_WITH_TYPE(0, 23, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
#define LPC24XX_PIN_ADC_CHANNEL_1   LPC24XX_PIN_WITH_TYPE(0, 24, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
#define LPC24XX_PIN_ADC_CHANNEL_2   LPC24XX_PIN_WITH_TYPE(0, 25, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
#define LPC24XX_PIN_ADC_CHANNEL_3   LPC24XX_PIN_WITH_TYPE(0, 26, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_ADC)
#define LPC24XX_PIN_ADC_CHANNEL_4   LPC24XX_PIN_WITH_TYPE(1, 30, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
#define LPC24XX_PIN_ADC_CHANNEL_5   LPC24XX_PIN_WITH_TYPE(1, 31, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
#define LPC24XX_PIN_ADC_CHANNEL_6   LPC24XX_PIN_WITH_TYPE(0, 12, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)
#define LPC24XX_PIN_ADC_CHANNEL_7   LPC24XX_PIN_WITH_TYPE(0, 13, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_ADC)

CAN 0 Pins

#define LPC24XX_PIN_CAN_0_RD_P0_0   LPC24XX_PIN(0, 0, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_CAN_0_RD_P0_21   LPC24XX_PIN(0, 21, LPC24XX_PIN_FUNCTION_11, 4)
#define LPC24XX_PIN_CAN_0_TD_P0_1   LPC24XX_PIN(0, 1, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_CAN_0_TD_P0_22   LPC24XX_PIN(0, 22, LPC24XX_PIN_FUNCTION_11, 4)

CAN 1 Pins

#define LPC24XX_PIN_CAN_1_RD_P0_4   LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_CAN_1_RD_P2_7   LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_CAN_1_TD_P0_5   LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_CAN_1_TD_P2_8   LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_01, 1)

DAC Pins

#define LPC24XX_PIN_DAC   LPC24XX_PIN_WITH_TYPE(0, 26, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_DAC)

Ethernet Pins

#define LPC24XX_PIN_ETHERNET_MII   LPC24XX_PIN_RANGE(1, 0, 17, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_ETHERNET_RMII_0   LPC24XX_PIN_RANGE(1, 0, 1, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_ETHERNET_RMII_1   LPC24XX_PIN(1, 4, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_ETHERNET_RMII_2   LPC24XX_PIN_RANGE(1, 8, 10, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_ETHERNET_RMII_3   LPC24XX_PIN_RANGE(1, 14, 17, LPC24XX_PIN_FUNCTION_01, 1)

External Interrupt Pins

#define LPC24XX_PIN_EINT_0   LPC24XX_PIN(2, 10, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_EINT_1   LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_EINT_2   LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_EINT_3   LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 1)

External Memory Controller (EMC) Pins

#define LPC24XX_PIN_EMC(p, i)
#define LPC24XX_PIN_EMC_RANGE(p, i, j)
#define LPC24XX_PIN_EMC_CS_0   LPC24XX_PIN_EMC(4, 30)
#define LPC24XX_PIN_EMC_CS_1   LPC24XX_PIN_EMC(4, 31)
#define LPC24XX_PIN_EMC_CS_2   LPC24XX_PIN_EMC(2, 14)
#define LPC24XX_PIN_EMC_CS_3   LPC24XX_PIN_EMC(2, 15)
#define LPC24XX_PIN_EMC_DYCS_0   LPC24XX_PIN_EMC(2, 20)
#define LPC24XX_PIN_EMC_DYCS_1   LPC24XX_PIN_EMC(2, 21)
#define LPC24XX_PIN_EMC_DYCS_2   LPC24XX_PIN_EMC(2, 22)
#define LPC24XX_PIN_EMC_DYCS_3   LPC24XX_PIN_EMC(2, 23)
#define LPC24XX_PIN_EMC_OE   LPC24XX_PIN_EMC(4, 24)
#define LPC24XX_PIN_EMC_WE   LPC24XX_PIN_EMC(4, 25)
#define LPC24XX_PIN_EMC_CAS   LPC24XX_PIN_EMC(2, 16)
#define LPC24XX_PIN_EMC_RAS   LPC24XX_PIN_EMC(2, 17)
#define LPC24XX_PIN_EMC_CLK_0   LPC24XX_PIN_EMC(2, 18)
#define LPC24XX_PIN_EMC_CLK_1   LPC24XX_PIN_EMC(2, 19)
#define LPC24XX_PIN_EMC_CKE_0   LPC24XX_PIN_EMC(2, 24)
#define LPC24XX_PIN_EMC_CKE_1   LPC24XX_PIN_EMC(2, 25)
#define LPC24XX_PIN_EMC_CKE_2   LPC24XX_PIN_EMC(2, 26)
#define LPC24XX_PIN_EMC_CKE_3   LPC24XX_PIN_EMC(2, 27)
#define LPC24XX_PIN_EMC_DQM_0   LPC24XX_PIN_EMC(2, 28)
#define LPC24XX_PIN_EMC_DQM_1   LPC24XX_PIN_EMC(2, 29)
#define LPC24XX_PIN_EMC_DQM_2   LPC24XX_PIN_EMC(2, 30)
#define LPC24XX_PIN_EMC_DQM_3   LPC24XX_PIN_EMC(2, 31)
#define LPC24XX_PIN_EMC_BLS0   LPC24XX_PIN_EMC(4, 26)
#define LPC24XX_PIN_EMC_BLS1   LPC24XX_PIN_EMC(4, 27)
#define LPC24XX_PIN_EMC_BLS2   LPC24XX_PIN_EMC(4, 28)
#define LPC24XX_PIN_EMC_BLS3   LPC24XX_PIN_EMC(4, 29)
#define LPC24XX_PIN_EMC_D_0_15   LPC24XX_PIN_EMC_RANGE(3, 0, 15)
#define LPC24XX_PIN_EMC_D_15_31   LPC24XX_PIN_EMC_RANGE(3, 15, 31)
#define LPC24XX_PIN_EMC_D_0_31   LPC24XX_PIN_EMC_RANGE(3, 0, 31)
#define LPC24XX_PIN_EMC_A_0_12   LPC24XX_PIN_EMC_RANGE(4, 0, 12)
#define LPC24XX_PIN_EMC_A_0_13   LPC24XX_PIN_EMC_RANGE(4, 0, 13)
#define LPC24XX_PIN_EMC_A_0_14   LPC24XX_PIN_EMC_RANGE(4, 0, 14)
#define LPC24XX_PIN_EMC_A_0_15   LPC24XX_PIN_EMC_RANGE(4, 0, 15)
#define LPC24XX_PIN_EMC_A_0_16
#define LPC24XX_PIN_EMC_A_0_17
#define LPC24XX_PIN_EMC_A_0_18
#define LPC24XX_PIN_EMC_A_0_19
#define LPC24XX_PIN_EMC_A_0_20
#define LPC24XX_PIN_EMC_A_0_21
#define LPC24XX_PIN_EMC_A_0_22
#define LPC24XX_PIN_EMC_A_0_23
#define LPC24XX_PIN_EMC_A_0_24
#define LPC24XX_PIN_EMC_A_0_25

I2C 0 Pins

#define LPC24XX_PIN_I2C_0_SDA   LPC24XX_PIN_WITH_TYPE(0, 27, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_0_SCL   LPC24XX_PIN_WITH_TYPE(0, 28, LPC24XX_PIN_FUNCTION_01, 1, LPC17XX_PIN_TYPE_I2C)

I2C 1 Pins

#define LPC24XX_PIN_I2C_1_SDA_P0_0   LPC24XX_PIN_WITH_TYPE(0, 0, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_1_SDA_P0_19   LPC24XX_PIN_WITH_TYPE(0, 19, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_1_SDA_P2_14   LPC24XX_PIN_WITH_TYPE(2, 14, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_1_SCL_P0_1   LPC24XX_PIN_WITH_TYPE(0, 1, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_1_SCL_P0_20   LPC24XX_PIN_WITH_TYPE(0, 20, LPC24XX_PIN_FUNCTION_11, 3, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_1_SCL_P2_15   LPC24XX_PIN_WITH_TYPE(2, 15, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)

I2C 2 Pins

#define LPC24XX_PIN_I2C_2_SDA_P0_10   LPC24XX_PIN_WITH_TYPE(0, 10, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_2_SDA_P2_30   LPC24XX_PIN_WITH_TYPE(2, 30, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_2_SDA_P4_20   LPC24XX_PIN_WITH_TYPE(4, 20, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_2_SCL_P0_11   LPC24XX_PIN_WITH_TYPE(0, 11, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_2_SCL_P2_31   LPC24XX_PIN_WITH_TYPE(2, 31, LPC24XX_PIN_FUNCTION_11, 2, LPC17XX_PIN_TYPE_I2C)
#define LPC24XX_PIN_I2C_2_SCL_P4_21   LPC24XX_PIN_WITH_TYPE(4, 21, LPC24XX_PIN_FUNCTION_10, 2, LPC17XX_PIN_TYPE_I2C)

I2S Pins

#define LPC24XX_PIN_I2S_RX_CLK_P0_4   LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_I2S_RX_CLK_P0_23   LPC24XX_PIN(0, 23, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_I2S_RX_WS_P0_5   LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_I2S_RX_WS_P0_24   LPC24XX_PIN(0, 24, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_I2S_RX_SDA_P0_6   LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_I2S_RX_SDA_P0_25   LPC24XX_PIN(0, 25, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_I2S_TX_CLK_P0_7   LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_I2S_TX_CLK_P2_11   LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_I2S_TX_WS_P0_8   LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_I2S_TX_WS_P2_12   LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_I2S_TX_SDA_P0_9   LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_I2S_TX_SDA_P2_13   LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_11, 3)

LCD Pins

#define LPC24XX_PIN_LCD_PWR   LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_11, 7)
#define LPC24XX_PIN_LCD_LE   LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_11, 7)
#define LPC24XX_PIN_LCD_DCLK   LPC24XX_PIN(2, 2, LPC24XX_PIN_FUNCTION_11, 7)
#define LPC24XX_PIN_LCD_FP   LPC24XX_PIN(2, 3, LPC24XX_PIN_FUNCTION_11, 7)
#define LPC24XX_PIN_LCD_ENAB_M   LPC24XX_PIN(2, 4, LPC24XX_PIN_FUNCTION_11, 7)
#define LPC24XX_PIN_LCD_LP   LPC24XX_PIN(2, 5, LPC24XX_PIN_FUNCTION_11, 7)
#define LPC24XX_PIN_LCD_CLKIN   LPC24XX_PIN(2, 11, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_0_P0_4   LPC24XX_PIN(0, 4, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_0_P2_6   LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_11, 6)
#define LPC24XX_PIN_LCD_VD_1_P0_5   LPC24XX_PIN(0, 5, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_1_P2_7   LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_11, 6)
#define LPC24XX_PIN_LCD_VD_2_P2_8   LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_11, 6)
#define LPC24XX_PIN_LCD_VD_2_P4_28   LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 7)
#define LPC24XX_PIN_LCD_VD_3_P2_9   LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_11, 6)
#define LPC24XX_PIN_LCD_VD_3_P2_12   LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 5)
#define LPC24XX_PIN_LCD_VD_3_P4_29   LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 7)
#define LPC24XX_PIN_LCD_VD_4_P2_6   LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_11, 7)
#define LPC24XX_PIN_LCD_VD_4_P2_12   LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 4)
#define LPC24XX_PIN_LCD_VD_5_P2_7   LPC24XX_PIN(2, 7, LPC24XX_PIN_FUNCTION_11, 7)
#define LPC24XX_PIN_LCD_VD_5_P2_13   LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 5)
#define LPC24XX_PIN_LCD_VD_6_P1_20   LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_6_P2_8   LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_11, 7)
#define LPC24XX_PIN_LCD_VD_6_P4_28   LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 5)
#define LPC24XX_PIN_LCD_VD_7_P1_21   LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_7_P2_9   LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_11, 7)
#define LPC24XX_PIN_LCD_VD_7_P4_29   LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 5)
#define LPC24XX_PIN_LCD_VD_8_P0_6   LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_8_P1_22   LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_8_P2_12   LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_9_P0_7   LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_9_P1_23   LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_9_P2_13   LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_10_P1_20   LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_10_P1_24   LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_10_P4_28   LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_10, 6)
#define LPC24XX_PIN_LCD_VD_11_P1_21   LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_11_P1_25   LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_11_P4_29   LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_10, 6)
#define LPC24XX_PIN_LCD_VD_12_P1_22   LPC24XX_PIN(1, 22, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_12_P1_26   LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_13_P1_23   LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_13_P1_27   LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_14_P1_24   LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_14_P1_28   LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_15_P1_25   LPC24XX_PIN(1, 25, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_15_P1_29   LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_01, 6)
#define LPC24XX_PIN_LCD_VD_16_P0_8   LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_17_P0_9   LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_18_P2_12   LPC24XX_PIN(2, 12, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_19_P2_13   LPC24XX_PIN(2, 13, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_20_P1_26   LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_21_P1_27   LPC24XX_PIN(1, 27, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_22_P1_28   LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_01, 7)
#define LPC24XX_PIN_LCD_VD_23_P1_29   LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_01, 7)

PWM 0 Pins

#define LPC24XX_PIN_PWM_0_CHANNEL_1_P1_2   LPC24XX_PIN(1, 2, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_PWM_0_CHANNEL_1_P3_16   LPC24XX_PIN(3, 16, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_0_CHANNEL_2_P1_3   LPC24XX_PIN(1, 3, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_PWM_0_CHANNEL_2_P3_17   LPC24XX_PIN(3, 17, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_0_CHANNEL_3_P1_5   LPC24XX_PIN(1, 5, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_PWM_0_CHANNEL_3_P3_18   LPC24XX_PIN(3, 18, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_0_CHANNEL_4_P1_6   LPC24XX_PIN(1, 6, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_PWM_0_CHANNEL_4_P3_19   LPC24XX_PIN(3, 19, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_0_CHANNEL_5_P1_7   LPC24XX_PIN(1, 7, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_PWM_0_CHANNEL_5_P3_20   LPC24XX_PIN(3, 20, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_0_CHANNEL_6_P1_11   LPC24XX_PIN(1, 11, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_PWM_0_CHANNEL_6_P3_21   LPC24XX_PIN(3, 21, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_0_CAPTURE_0_P1_12   LPC24XX_PIN(1, 12, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_PWM_0_CAPTURE_0_P3_22   LPC24XX_PIN(3, 22, LPC24XX_PIN_FUNCTION_10, 2)

PWM 1 Pins

#define LPC24XX_PIN_PWM_1_CHANNEL_1_P1_18   LPC24XX_PIN(1, 18, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_1_P2_0   LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_PWM_1_CHANNEL_1_P3_24   LPC24XX_PIN(3, 24, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_2_P1_20   LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_2_P2_1   LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_PWM_1_CHANNEL_2_P3_25   LPC24XX_PIN(3, 25, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_3_P1_21   LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_3_P2_2   LPC24XX_PIN(2, 2, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_PWM_1_CHANNEL_3_P3_26   LPC24XX_PIN(3, 26, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_4_P1_23   LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_4_P2_3   LPC24XX_PIN(2, 3, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_PWM_1_CHANNEL_4_P3_27   LPC24XX_PIN(3, 27, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_5_P1_24   LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_5_P2_4   LPC24XX_PIN(2, 4, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_PWM_1_CHANNEL_5_P3_28   LPC24XX_PIN(3, 28, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_6_P1_26   LPC24XX_PIN(1, 26, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_1_CHANNEL_6_P2_5   LPC24XX_PIN(2, 5, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_PWM_1_CHANNEL_6_P3_29   LPC24XX_PIN(3, 29, LPC24XX_PIN_FUNCTIO9_11, 2)
#define LPC24XX_PIN_PWM_1_CAPTURE_0_P1_28   LPC24XX_PIN(1, 28, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_PWM_1_CAPTURE_0_P2_7   LPC24XX_PIN(2, 6, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_PWM_1_CAPTURE_0_P3_23   LPC24XX_PIN(3, 23, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_PWM_1_CAPTURE_1_P1_29   LPC24XX_PIN(1, 29, LPC24XX_PIN_FUNCTION_10, 2)

SSP 0 Pins

#define LPC24XX_PIN_SSP_0_SCK_P0_15   LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_0_SCK_P1_20   LPC24XX_PIN(1, 20, LPC24XX_PIN_FUNCTION_11, 5)
#define LPC24XX_PIN_SSP_0_SCK_P2_22   LPC24XX_PIN(2, 22, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_SSP_0_SSEL_P0_16   LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_0_SSEL_P1_21   LPC24XX_PIN(1, 21, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_SSP_0_SSEL_P2_23   LPC24XX_PIN(2, 23, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_SSP_0_MISO_P0_17   LPC24XX_PIN(0, 17, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_0_MISO_P1_23   LPC24XX_PIN(1, 23, LPC24XX_PIN_FUNCTION_11, 5)
#define LPC24XX_PIN_SSP_0_MISO_P2_26   LPC24XX_PIN(2, 26, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_SSP_0_MOSI_P0_18   LPC24XX_PIN(0, 18, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_0_MOSI_P1_24   LPC24XX_PIN(1, 24, LPC24XX_PIN_FUNCTION_11, 5)
#define LPC24XX_PIN_SSP_0_MOSI_P2_27   LPC24XX_PIN(2, 27, LPC24XX_PIN_FUNCTION_11, 2)

SSP 1 Pins

#define LPC24XX_PIN_SSP_1_SCK_P0_6   LPC24XX_PIN(0, 7, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_1_SCK_P0_12   LPC24XX_PIN(1, 31, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_1_SCK_P4_20   LPC24XX_PIN(4, 20, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_SSP_1_SSEL_P0_7   LPC24XX_PIN(0, 6, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_1_SSEL_P0_13   LPC24XX_PIN(0, 14, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_SSP_1_SSEL_P4_21   LPC24XX_PIN(4, 21, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_SSP_1_MISO_P0_8   LPC24XX_PIN(0, 8, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_1_MISO_P0_14   LPC24XX_PIN(0, 12, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_1_MISO_P4_22   LPC24XX_PIN(4, 22, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_SSP_1_MOSI_P0_9   LPC24XX_PIN(0, 9, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_1_MOSI_P1_31   LPC24XX_PIN(0, 13, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_SSP_1_MOSI_P4_23   LPC24XX_PIN(4, 23, LPC24XX_PIN_FUNCTION_11, 3)

UART 0 Pins

#define LPC24XX_PIN_UART_0_TXD   LPC24XX_PIN(0, 2, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_UART_0_RXD   LPC24XX_PIN(0, 3, LPC24XX_PIN_FUNCTION_01, 1)

UART 1 Pins

#define LPC24XX_PIN_UART_1_TXD_P0_15   LPC24XX_PIN(0, 15, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_UART_1_TXD_P2_0   LPC24XX_PIN(2, 0, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_UART_1_TXD_P3_16   LPC24XX_PIN(3, 16, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_UART_1_RXD_P0_16   LPC24XX_PIN(0, 16, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_UART_1_RXD_P2_1   LPC24XX_PIN(2, 1, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_UART_1_RXD_P3_17   LPC24XX_PIN(3, 17, LPC24XX_PIN_FUNCTION_11, 3)

UART 2 Pins

#define LPC24XX_PIN_UART_2_TXD_P0_10   LPC24XX_PIN(0, 10, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_UART_2_TXD_P2_8   LPC24XX_PIN(2, 8, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_UART_2_TXD_P4_22   LPC24XX_PIN(4, 22, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_UART_2_RXD_P0_11   LPC24XX_PIN(0, 11, LPC24XX_PIN_FUNCTION_01, 1)
#define LPC24XX_PIN_UART_2_RXD_P2_9   LPC24XX_PIN(2, 9, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_UART_2_RXD_P4_23   LPC24XX_PIN(4, 23, LPC24XX_PIN_FUNCTION_10, 2)

UART 3 Pins

#define LPC24XX_PIN_UART_3_TXD_P0_0   LPC24XX_PIN(0, 0, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_UART_3_TXD_P0_25   LPC24XX_PIN(0, 25, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_UART_3_TXD_P4_28   LPC24XX_PIN(4, 28, LPC24XX_PIN_FUNCTION_11, 2)
#define LPC24XX_PIN_UART_3_RXD_P0_1   LPC24XX_PIN(0, 1, LPC24XX_PIN_FUNCTION_10, 2)
#define LPC24XX_PIN_UART_3_RXD_P0_26   LPC24XX_PIN(0, 26, LPC24XX_PIN_FUNCTION_11, 3)
#define LPC24XX_PIN_UART_3_RXD_P4_29   LPC24XX_PIN(4, 29, LPC24XX_PIN_FUNCTION_11, 2)

Detailed Description

Input and output module.

Macro Definition Documentation

◆ LPC24XX_IO_INDEX_BY_PORT

#define LPC24XX_IO_INDEX_BY_PORT ( port,
bit )
Value:
(((port) << 5U) + (bit))

◆ LPC24XX_IO_PORT

#define LPC24XX_IO_PORT ( index)
Value:
((index) >> 5U)

◆ LPC24XX_IO_PORT_BIT

#define LPC24XX_IO_PORT_BIT ( index)
Value:
((index) & 0x1fU)

◆ LPC24XX_PIN

#define LPC24XX_PIN ( p,
i,
f0,
f1 )
Value:
{ { p, i, f1, 0, 0 } }
unsigned p
Definition tte.h:17

◆ LPC24XX_PIN_EMC

#define LPC24XX_PIN_EMC ( p,
i )
Value:
LPC24XX_PIN_WITH_TYPE(p, i, LPC24XX_PIN_FUNCTION_01, 1, \
LPC17XX_PIN_TYPE_FAST_SLEW_RATE)

◆ LPC24XX_PIN_EMC_A_0_16

#define LPC24XX_PIN_EMC_A_0_16
Value:
LPC24XX_PIN_EMC_A_0_15, \
LPC24XX_PIN_EMC(4, 16)

◆ LPC24XX_PIN_EMC_A_0_17

#define LPC24XX_PIN_EMC_A_0_17
Value:
LPC24XX_PIN_EMC_A_0_15, \
LPC24XX_PIN_EMC_RANGE(4, 16, 17)

◆ LPC24XX_PIN_EMC_A_0_18

#define LPC24XX_PIN_EMC_A_0_18
Value:
LPC24XX_PIN_EMC_A_0_15, \
LPC24XX_PIN_EMC_RANGE(4, 16, 18)

◆ LPC24XX_PIN_EMC_A_0_19

#define LPC24XX_PIN_EMC_A_0_19
Value:
LPC24XX_PIN_EMC_A_0_15, \
LPC24XX_PIN_EMC_RANGE(4, 16, 19)

◆ LPC24XX_PIN_EMC_A_0_20

#define LPC24XX_PIN_EMC_A_0_20
Value:
LPC24XX_PIN_EMC_A_0_15, \
LPC24XX_PIN_EMC_RANGE(4, 16, 20)

◆ LPC24XX_PIN_EMC_A_0_21

#define LPC24XX_PIN_EMC_A_0_21
Value:
LPC24XX_PIN_EMC_A_0_15, \
LPC24XX_PIN_EMC_RANGE(4, 16, 21)

◆ LPC24XX_PIN_EMC_A_0_22

#define LPC24XX_PIN_EMC_A_0_22
Value:
LPC24XX_PIN_EMC_A_0_15, \
LPC24XX_PIN_EMC_RANGE(4, 16, 22)

◆ LPC24XX_PIN_EMC_A_0_23

#define LPC24XX_PIN_EMC_A_0_23
Value:
LPC24XX_PIN_EMC_A_0_15, \
LPC24XX_PIN_EMC_RANGE(4, 16, 23)

◆ LPC24XX_PIN_EMC_A_0_24

#define LPC24XX_PIN_EMC_A_0_24
Value:
LPC24XX_PIN_EMC_A_0_23, \
LPC24XX_PIN_EMC(5, 24)

◆ LPC24XX_PIN_EMC_A_0_25

#define LPC24XX_PIN_EMC_A_0_25
Value:
LPC24XX_PIN_EMC_A_0_23, \
LPC24XX_PIN_EMC_RANGE(5, 24, 25)

◆ LPC24XX_PIN_EMC_RANGE

#define LPC24XX_PIN_EMC_RANGE ( p,
i,
j )
Value:
LPC24XX_PIN_RANGE_WITH_TYPE(p, i, j, LPC24XX_PIN_FUNCTION_01, 1, \
LPC17XX_PIN_TYPE_FAST_SLEW_RATE)

◆ LPC24XX_PIN_RANGE

#define LPC24XX_PIN_RANGE ( p,
i,
j,
f0,
f1 )
Value:
{ { p, i, f1, 0, 0 } }, { { p, j, f1, 0, 1 } }

◆ LPC24XX_PIN_RANGE_WITH_TYPE

#define LPC24XX_PIN_RANGE_WITH_TYPE ( p,
i,
j,
f0,
f1,
t )
Value:
{ { p, i, f1, t, 0 } }, { { p, j, f1, t, 1 } }

◆ LPC24XX_PIN_WITH_TYPE

#define LPC24XX_PIN_WITH_TYPE ( p,
i,
f0,
f1,
t )
Value:
{ { p, i, f1, t, 0 } }

Enumeration Type Documentation

◆ lpc24xx_pin_action

Enumerator
LPC24XX_PIN_SET_FUNCTION 

Sets the pin function.

LPC24XX_PIN_CHECK_FUNCTION 

Checks if all pins are configured with the specified function.

LPC24XX_PIN_SET_INPUT 

Configures the pins as input.

LPC24XX_PIN_CHECK_INPUT 

Checks if all pins are configured as input.

Function Documentation

◆ lpc24xx_pin_config()

rtems_status_code lpc24xx_pin_config ( const lpc24xx_pin_range * pins,
lpc24xx_pin_action action )

Performs the action with the pins.

#include <assert.h>
#include <bsp/io.h>
void example(void)
{
static const lpc24xx_pin_range pins [] = {
LPC24XX_PIN_I2S_RX_CLK_P0_4,
LPC24XX_PIN_I2S_RX_WS_P0_5,
LPC24XX_PIN_I2S_RX_SDA_P0_6,
LPC24XX_PIN_I2S_TX_CLK_P0_7,
LPC24XX_PIN_I2S_TX_WS_P0_8,
LPC24XX_PIN_I2S_TX_SDA_P0_9,
LPC24XX_PIN_TERMINAL
};
sc = lpc24xx_module_enable(LPC24XX_MODULE_I2S, LPC24XX_MODULE_CCLK_8);
assert(sc == RTEMS_SUCCESSFUL);
assert(sc == RTEMS_SUCCESSFUL);
}
This header file provides the interfaces of the Assert Handler.
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition status.h:85
@ RTEMS_SUCCESSFUL
This status code indicates successful completion of a requested operation.
Definition status.h:90
rtems_status_code lpc24xx_pin_config(const lpc24xx_pin_range *pins, lpc24xx_pin_action action)
Performs the action with the pins.
Definition io.c:530
@ LPC24XX_PIN_SET_FUNCTION
Sets the pin function.
Definition io.h:219
Definition io.h:237
Return values
RTEMS_SUCCESSFULSuccessful operation.
RTEMS_IO_ERRORCheck failed.
RTEMS_NOT_DEFINEDInvalid action.