forked from xuos/xiuos
support uart3 and uart4 on xidatong-arm32 board
This commit is contained in:
parent
5de4b9eec0
commit
e4f2c3e5aa
|
@ -1095,6 +1095,37 @@ void BOARD_InitUartPins(void)
|
||||||
0x10B0u);
|
0x10B0u);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef BSP_USING_LPUART3
|
||||||
|
IOMUXC_SetPinMux(
|
||||||
|
IOMUXC_GPIO_AD_B1_06_LPUART3_TX,
|
||||||
|
0U);
|
||||||
|
IOMUXC_SetPinMux(
|
||||||
|
IOMUXC_GPIO_AD_B1_07_LPUART3_RX,
|
||||||
|
0U);
|
||||||
|
IOMUXC_SetPinConfig(
|
||||||
|
IOMUXC_GPIO_AD_B1_06_LPUART3_TX,
|
||||||
|
0x10B0u);
|
||||||
|
IOMUXC_SetPinConfig(
|
||||||
|
IOMUXC_GPIO_AD_B1_07_LPUART3_RX,
|
||||||
|
0x10B0u);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef BSP_USING_LPUART4
|
||||||
|
IOMUXC_SetPinMux(
|
||||||
|
IOMUXC_GPIO_SD_B1_00_LPUART4_TX,
|
||||||
|
0U);
|
||||||
|
IOMUXC_SetPinMux(
|
||||||
|
IOMUXC_GPIO_SD_B1_01_LPUART4_RX,
|
||||||
|
0U);
|
||||||
|
IOMUXC_SetPinConfig(
|
||||||
|
IOMUXC_GPIO_SD_B1_00_LPUART4_TX,
|
||||||
|
0x10B0u);
|
||||||
|
IOMUXC_SetPinConfig(
|
||||||
|
IOMUXC_GPIO_SD_B1_01_LPUART4_RX,
|
||||||
|
0x10B0u);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef BSP_USING_LPUART8
|
#ifdef BSP_USING_LPUART8
|
||||||
IOMUXC_SetPinMux(
|
IOMUXC_SetPinMux(
|
||||||
IOMUXC_GPIO_AD_B1_10_LPUART8_TX,
|
IOMUXC_GPIO_AD_B1_10_LPUART8_TX,
|
||||||
|
|
|
@ -28,6 +28,36 @@ config BSP_USING_LPUART2
|
||||||
default "uart2_dev2"
|
default "uart2_dev2"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
config BSP_USING_LPUART3
|
||||||
|
bool "Enable LPUART3"
|
||||||
|
default y
|
||||||
|
if BSP_USING_LPUART3
|
||||||
|
config SERIAL_BUS_NAME_3
|
||||||
|
string "serial bus 3 name"
|
||||||
|
default "uart3"
|
||||||
|
config SERIAL_DRV_NAME_3
|
||||||
|
string "serial bus 3 driver name"
|
||||||
|
default "uart3_drv"
|
||||||
|
config SERIAL_3_DEVICE_NAME_0
|
||||||
|
string "serial bus 3 device name"
|
||||||
|
default "uart3_dev3"
|
||||||
|
endif
|
||||||
|
|
||||||
|
config BSP_USING_LPUART4
|
||||||
|
bool "Enable LPUART4"
|
||||||
|
default n
|
||||||
|
if BSP_USING_LPUART4
|
||||||
|
config SERIAL_BUS_NAME_4
|
||||||
|
string "serial bus 4 name"
|
||||||
|
default "uart4"
|
||||||
|
config SERIAL_DRV_NAME_4
|
||||||
|
string "serial bus 4 driver name"
|
||||||
|
default "uart4_drv"
|
||||||
|
config SERIAL_4_DEVICE_NAME_0
|
||||||
|
string "serial bus 4 device name"
|
||||||
|
default "uart4_dev4"
|
||||||
|
endif
|
||||||
|
|
||||||
config BSP_USING_LPUART8
|
config BSP_USING_LPUART8
|
||||||
bool "Enable LPUART8"
|
bool "Enable LPUART8"
|
||||||
default n
|
default n
|
||||||
|
|
|
@ -66,6 +66,40 @@ void LPUART2_IRQHandler(int irqn, void *arg)
|
||||||
DECLARE_HW_IRQ(UART2_IRQn, LPUART2_IRQHandler, NONE);
|
DECLARE_HW_IRQ(UART2_IRQn, LPUART2_IRQHandler, NONE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef BSP_USING_LPUART3
|
||||||
|
struct SerialBus serial_bus_3;
|
||||||
|
struct SerialDriver serial_driver_3;
|
||||||
|
struct SerialHardwareDevice serial_device_3;
|
||||||
|
|
||||||
|
void LPUART3_IRQHandler(int irqn, void* arg)
|
||||||
|
{
|
||||||
|
|
||||||
|
DisableIRQ(LPUART3_IRQn);
|
||||||
|
|
||||||
|
UartIsr(&serial_bus_3, &serial_driver_3, &serial_device_3);
|
||||||
|
EnableIRQ(LPUART3_IRQn);
|
||||||
|
|
||||||
|
}
|
||||||
|
DECLARE_HW_IRQ(LPUART3_IRQn, LPUART3_IRQHandler, NONE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef BSP_USING_LPUART4
|
||||||
|
struct SerialBus serial_bus_4;
|
||||||
|
struct SerialDriver serial_driver_4;
|
||||||
|
struct SerialHardwareDevice serial_device_4;
|
||||||
|
|
||||||
|
void LPUART4_IRQHandler(int irqn, void* arg)
|
||||||
|
{
|
||||||
|
|
||||||
|
DisableIRQ(LPUART4_IRQn);
|
||||||
|
|
||||||
|
UartIsr(&serial_bus_4, &serial_driver_4, &serial_device_4);
|
||||||
|
EnableIRQ(LPUART4_IRQn);
|
||||||
|
|
||||||
|
}
|
||||||
|
DECLARE_HW_IRQ(LPUART4_IRQn, LPUART4_IRQHandler, NONE);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef BSP_USING_LPUART8
|
#ifdef BSP_USING_LPUART8
|
||||||
struct SerialBus serial_bus_8;
|
struct SerialBus serial_bus_8;
|
||||||
struct SerialDriver serial_driver_8;
|
struct SerialDriver serial_driver_8;
|
||||||
|
@ -443,6 +477,72 @@ int Imxrt1052HwUartInit(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef BSP_USING_LPUART3
|
||||||
|
static struct SerialCfgParam serial_cfg_3;
|
||||||
|
memset(&serial_cfg_3, 0, sizeof(struct SerialCfgParam));
|
||||||
|
|
||||||
|
static struct SerialDevParam serial_dev_param_3;
|
||||||
|
memset(&serial_dev_param_3, 0, sizeof(struct SerialDevParam));
|
||||||
|
|
||||||
|
serial_driver_3.drv_done = &drv_done;
|
||||||
|
serial_driver_3.configure = &SerialDrvConfigure;
|
||||||
|
serial_device_3.hwdev_done = &hwdev_done;
|
||||||
|
|
||||||
|
serial_cfg_3.data_cfg = data_cfg_init;
|
||||||
|
|
||||||
|
serial_cfg_3.hw_cfg.private_data = (void*)LPUART3;
|
||||||
|
serial_cfg_3.hw_cfg.serial_irq_interrupt = LPUART3_IRQn;
|
||||||
|
serial_driver_3.private_data = (void*)&serial_cfg_3;
|
||||||
|
|
||||||
|
serial_dev_param_3.serial_work_mode = SIGN_OPER_INT_RX;
|
||||||
|
serial_device_3.haldev.private_data = (void*)&serial_dev_param_3;
|
||||||
|
|
||||||
|
ret = BoardSerialBusInit(&serial_bus_3, &serial_driver_3, SERIAL_BUS_NAME_3, SERIAL_DRV_NAME_3);
|
||||||
|
if (EOK != ret) {
|
||||||
|
KPrintf("Imxrt1052HwUartInit uart error ret %u\n", ret);
|
||||||
|
return ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = BoardSerialDevBend(&serial_device_3, (void*)&serial_cfg_3, SERIAL_BUS_NAME_3, SERIAL_3_DEVICE_NAME_0);
|
||||||
|
if (EOK != ret) {
|
||||||
|
KPrintf("Imxrt1052HwUartInit uart error ret %u\n", ret);
|
||||||
|
return ERROR;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef BSP_USING_LPUART4
|
||||||
|
static struct SerialCfgParam serial_cfg_4;
|
||||||
|
memset(&serial_cfg_4, 0, sizeof(struct SerialCfgParam));
|
||||||
|
|
||||||
|
static struct SerialDevParam serial_dev_param_4;
|
||||||
|
memset(&serial_dev_param_4, 0, sizeof(struct SerialDevParam));
|
||||||
|
|
||||||
|
serial_driver_4.drv_done = &drv_done;
|
||||||
|
serial_driver_4.configure = &SerialDrvConfigure;
|
||||||
|
serial_device_4.hwdev_done = &hwdev_done;
|
||||||
|
|
||||||
|
serial_cfg_4.data_cfg = data_cfg_init;
|
||||||
|
|
||||||
|
serial_cfg_4.hw_cfg.private_data = (void*)LPUART4;
|
||||||
|
serial_cfg_4.hw_cfg.serial_irq_interrupt = LPUART4_IRQn;
|
||||||
|
serial_driver_4.private_data = (void*)&serial_cfg_4;
|
||||||
|
|
||||||
|
serial_dev_param_4.serial_work_mode = SIGN_OPER_INT_RX;
|
||||||
|
serial_device_4.haldev.private_data = (void*)&serial_dev_param_4;
|
||||||
|
|
||||||
|
ret = BoardSerialBusInit(&serial_bus_4, &serial_driver_4, SERIAL_BUS_NAME_4, SERIAL_DRV_NAME_4);
|
||||||
|
if (EOK != ret) {
|
||||||
|
KPrintf("Imxrt1052HwUartInit uart error ret %u\n", ret);
|
||||||
|
return ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = BoardSerialDevBend(&serial_device_4, (void*)&serial_cfg_4, SERIAL_BUS_NAME_4, SERIAL_4_DEVICE_NAME_0);
|
||||||
|
if (EOK != ret) {
|
||||||
|
KPrintf("Imxrt1052HwUartInit uart error ret %u\n", ret);
|
||||||
|
return ERROR;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef BSP_USING_LPUART8
|
#ifdef BSP_USING_LPUART8
|
||||||
static struct SerialCfgParam serial_cfg_8;
|
static struct SerialCfgParam serial_cfg_8;
|
||||||
memset(&serial_cfg_8, 0, sizeof(struct SerialCfgParam));
|
memset(&serial_cfg_8, 0, sizeof(struct SerialCfgParam));
|
||||||
|
|
Loading…
Reference in New Issue