diff --git a/APP_Framework/Framework/connection/4g/ec200t/Kconfig b/APP_Framework/Framework/connection/4g/ec200t/Kconfig index 71f692f27..c5ac4a37f 100644 --- a/APP_Framework/Framework/connection/4g/ec200t/Kconfig +++ b/APP_Framework/Framework/connection/4g/ec200t/Kconfig @@ -3,13 +3,19 @@ config ADAPTER_4G_EC200T default "ec200t" if ADD_XIZI_FETURES - config ADAPTER_EC200T_PWRKEY - int "EC200T PWRKEY pin number" - default "97" + config ADAPTER_EC200T_USING_PWRKEY + bool "EC200T using PWRKEY pin number" + default n - config ADAPTER_EC200T_PIN_DRIVER - string "EC200T device pin driver path" - default "/dev/pin_dev" + if ADAPTER_EC200T_USING_PWRKEY + config ADAPTER_EC200T_PWRKEY + int "EC200T PWRKEY pin number" + default "97" + + config ADAPTER_EC200T_PIN_DRIVER + string "EC200T device pin driver path" + default "/dev/pin_dev" + endif config ADAPTER_EC200T_DRIVER_EXTUART bool "Using extra uart to support 4G" diff --git a/APP_Framework/Framework/connection/4g/ec200t/ec200t.c b/APP_Framework/Framework/connection/4g/ec200t/ec200t.c index cdf55707a..44ce40d63 100644 --- a/APP_Framework/Framework/connection/4g/ec200t/ec200t.c +++ b/APP_Framework/Framework/connection/4g/ec200t/ec200t.c @@ -43,6 +43,7 @@ static void Ec200tPowerSet(void){ return; } #else static void Ec200tPowerSet(void) { +#ifdef ADAPTER_EC200T_USING_PWRKEY int pin_fd; pin_fd = PrivOpen(ADAPTER_EC200T_PIN_DRIVER, O_RDWR); if (pin_fd < 0) { @@ -73,6 +74,7 @@ static void Ec200tPowerSet(void) PrivClose(pin_fd); PrivTaskDelay(10000); +#endif } #endif diff --git a/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c b/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c index 63eed88b2..be6b733b1 100755 --- a/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c +++ b/Ubiquitous/XiZi/board/xidatong/third_party_driver/common/pin_mux.c @@ -995,6 +995,21 @@ void BOARD_InitUartPins(void) IOMUXC_GPIO_AD_B1_03_LPUART2_RX, 0x10B0u); #endif + +#ifdef BSP_USING_LPUART8 + IOMUXC_SetPinMux( + IOMUXC_GPIO_AD_B1_10_LPUART8_TX, + 0U); + IOMUXC_SetPinMux( + IOMUXC_GPIO_AD_B1_11_LPUART8_RX, + 0U); + IOMUXC_SetPinConfig( + IOMUXC_GPIO_AD_B1_10_LPUART8_TX, + 0x10B0u); + IOMUXC_SetPinConfig( + IOMUXC_GPIO_AD_B1_11_LPUART8_RX, + 0x10B0u); +#endif } /*********************************************************************************************************************** diff --git a/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/Kconfig b/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/Kconfig index 93c86b33f..148c78116 100644 --- a/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/Kconfig +++ b/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/Kconfig @@ -1,29 +1,44 @@ config BSP_USING_LPUART1 -bool "Enable LPUART1" -default y -if BSP_USING_LPUART1 - config SERIAL_BUS_NAME_1 - string "serial bus 1 name" - default "uart1" - config SERIAL_DRV_NAME_1 - string "serial bus 1 driver name" - default "uart1_drv" - config SERIAL_1_DEVICE_NAME_0 - string "serial bus 1 device name" - default "uart1_dev1" -endif + bool "Enable LPUART1" + default y + if BSP_USING_LPUART1 + config SERIAL_BUS_NAME_1 + string "serial bus 1 name" + default "uart1" + config SERIAL_DRV_NAME_1 + string "serial bus 1 driver name" + default "uart1_drv" + config SERIAL_1_DEVICE_NAME_0 + string "serial bus 1 device name" + default "uart1_dev1" + endif config BSP_USING_LPUART2 -bool "Enable LPUART2" -default y -if BSP_USING_LPUART2 - config SERIAL_BUS_NAME_2 - string "serial bus 2 name" - default "uart2" - config SERIAL_DRV_NAME_2 - string "serial bus 2 driver name" - default "uart2_drv" - config SERIAL_2_DEVICE_NAME_0 - string "serial bus 2 device name" - default "uart2_dev2" -endif + bool "Enable LPUART2" + default y + if BSP_USING_LPUART2 + config SERIAL_BUS_NAME_2 + string "serial bus 2 name" + default "uart2" + config SERIAL_DRV_NAME_2 + string "serial bus 2 driver name" + default "uart2_drv" + config SERIAL_2_DEVICE_NAME_0 + string "serial bus 2 device name" + default "uart2_dev2" + endif + +config BSP_USING_LPUART8 + bool "Enable LPUART8" + default n + if BSP_USING_LPUART8 + config SERIAL_BUS_NAME_8 + string "serial bus 8 name" + default "uart8" + config SERIAL_DRV_NAME_8 + string "serial bus 8 driver name" + default "uart8_drv" + config SERIAL_8_DEVICE_NAME_0 + string "serial bus 8 device name" + default "uart8_dev8" + endif diff --git a/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/connect_uart.c b/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/connect_uart.c index 6ce8b6695..01edbe363 100644 --- a/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/connect_uart.c +++ b/Ubiquitous/XiZi/board/xidatong/third_party_driver/uart/connect_uart.c @@ -43,7 +43,7 @@ void LPUART1_IRQHandler(int irqn, void *arg) DisableIRQ(UART1_IRQn); UartIsr(&serial_bus_1, &serial_driver_1, &serial_device_1); - EnableIRQ(UART1_IRQn); + EnableIRQ(UART1_IRQn); } DECLARE_HW_IRQ(UART1_IRQn, LPUART1_IRQHandler, NONE); @@ -66,6 +66,23 @@ void LPUART2_IRQHandler(int irqn, void *arg) DECLARE_HW_IRQ(UART2_IRQn, LPUART2_IRQHandler, NONE); #endif +#ifdef BSP_USING_LPUART8 +struct SerialBus serial_bus_8; +struct SerialDriver serial_driver_8; +struct SerialHardwareDevice serial_device_8; + +void LPUART8_IRQHandler(int irqn, void *arg) +{ + + DisableIRQ(LPUART8_IRQn); + + UartIsr(&serial_bus_8, &serial_driver_8, &serial_device_8); + EnableIRQ(LPUART8_IRQn); + +} +DECLARE_HW_IRQ(LPUART8_IRQn, LPUART8_IRQHandler, NONE); +#endif + static void SerialCfgParamCheck(struct SerialCfgParam *serial_cfg_default, struct SerialCfgParam *serial_cfg_new) { struct SerialDataCfg *data_cfg_default = &serial_cfg_default->data_cfg; @@ -426,5 +443,38 @@ int Imxrt1052HwUartInit(void) } #endif +#ifdef BSP_USING_LPUART8 + static struct SerialCfgParam serial_cfg_8; + memset(&serial_cfg_8, 0, sizeof(struct SerialCfgParam)); + + static struct SerialDevParam serial_dev_param_8; + memset(&serial_dev_param_8, 0, sizeof(struct SerialDevParam)); + + serial_driver_8.drv_done = &drv_done; + serial_driver_8.configure = &SerialDrvConfigure; + serial_device_8.hwdev_done = &hwdev_done; + + serial_cfg_8.data_cfg = data_cfg_init; + + serial_cfg_8.hw_cfg.private_data = (void *)LPUART8; + serial_cfg_8.hw_cfg.serial_irq_interrupt = LPUART8_IRQn; + serial_driver_8.private_data = (void *)&serial_cfg_8; + + serial_dev_param_8.serial_work_mode = SIGN_OPER_INT_RX; + serial_device_8.haldev.private_data = (void *)&serial_dev_param_8; + + ret = BoardSerialBusInit(&serial_bus_8, &serial_driver_8, SERIAL_BUS_NAME_8, SERIAL_DRV_NAME_8); + if (EOK != ret) { + KPrintf("Imxrt1052HwUartInit uart error ret %u\n", ret); + return ERROR; + } + + ret = BoardSerialDevBend(&serial_device_8, (void *)&serial_cfg_8, SERIAL_BUS_NAME_8, SERIAL_8_DEVICE_NAME_0); + if (EOK != ret) { + KPrintf("Imxrt1052HwUartInit uart error ret %u\n", ret); + return ERROR; + } +#endif + return ret; }