summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author下里巴人 <[email protected]>2024-11-13 08:01:21 +0800
committerGitHub <[email protected]>2024-11-13 08:01:21 +0800
commitbe0161ec625fe4e75ca39eace3b3cf27be3b4b5a (patch)
tree29f6bcab855862f29b517bfd7ef7b297071c1f10
parentf0934630c46a3111cf06ab2777e368fc04050292 (diff)
[bsp][nxp][mcxa153] add more UART channels (#9635)
* [bsp][nxp][mcxa153] add more UART channels
-rw-r--r--bsp/nxp/mcx/mcxa/Libraries/drivers/drv_uart.c41
-rw-r--r--bsp/nxp/mcx/mcxa/frdm-mcxa153/board/Kconfig8
-rw-r--r--bsp/nxp/mcx/mcxa/frdm-mcxa153/board/MCUX_Config/board/pin_mux.c103
3 files changed, 151 insertions, 1 deletions
diff --git a/bsp/nxp/mcx/mcxa/Libraries/drivers/drv_uart.c b/bsp/nxp/mcx/mcxa/Libraries/drivers/drv_uart.c
index 6088bae2e6..e0bb222d4e 100644
--- a/bsp/nxp/mcx/mcxa/Libraries/drivers/drv_uart.c
+++ b/bsp/nxp/mcx/mcxa/Libraries/drivers/drv_uart.c
@@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2024-02-06 yandld The first version for MCX
+ * 2024-11-11 hywing add more UART channels
*/
#include <rtdevice.h>
#include "drv_uart.h"
@@ -35,6 +36,22 @@ void LPUART0_IRQHandler(void)
uart_isr(&serial0);
}
#endif
+#if defined(BSP_USING_UART1)
+struct rt_serial_device serial1;
+
+void LPUART1_IRQHandler(void)
+{
+ uart_isr(&serial1);
+}
+#endif
+#if defined(BSP_USING_UART2)
+struct rt_serial_device serial2;
+
+void LPUART2_IRQHandler(void)
+{
+ uart_isr(&serial2);
+}
+#endif
static const struct mcx_uart uarts[] =
{
@@ -50,6 +67,30 @@ static const struct mcx_uart uarts[] =
"uart0",
},
#endif
+#ifdef BSP_USING_UART1
+ {
+ &serial1,
+ LPUART1,
+ LPUART1_IRQn,
+ kCLOCK_Fro12M,
+ kFRO12M_to_LPUART1,
+ kCLOCK_GateLPUART1,
+ kCLOCK_DivLPUART1,
+ "uart1",
+ },
+#endif
+#ifdef BSP_USING_UART2
+ {
+ &serial2,
+ LPUART2,
+ LPUART2_IRQn,
+ kCLOCK_Fro12M,
+ kFRO12M_to_LPUART2,
+ kCLOCK_GateLPUART2,
+ kCLOCK_DivLPUART2,
+ "uart2",
+ },
+#endif
};
static rt_err_t mcx_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
diff --git a/bsp/nxp/mcx/mcxa/frdm-mcxa153/board/Kconfig b/bsp/nxp/mcx/mcxa/frdm-mcxa153/board/Kconfig
index 7b00dcc5b8..3685b3fb87 100644
--- a/bsp/nxp/mcx/mcxa/frdm-mcxa153/board/Kconfig
+++ b/bsp/nxp/mcx/mcxa/frdm-mcxa153/board/Kconfig
@@ -27,8 +27,14 @@ menu "On-chip Peripheral Drivers"
if BSP_USING_UART
config BSP_USING_UART0
- bool "Enable LPUART as UART"
+ bool "Enable LPUART as UART0"
default y
+ config BSP_USING_UART1
+ bool "Enable LPUART as UART1"
+ default n
+ config BSP_USING_UART2
+ bool "Enable LPUART as UART2"
+ default n
endif
menuconfig BSP_USING_I2C
diff --git a/bsp/nxp/mcx/mcxa/frdm-mcxa153/board/MCUX_Config/board/pin_mux.c b/bsp/nxp/mcx/mcxa/frdm-mcxa153/board/MCUX_Config/board/pin_mux.c
index f493172200..e0c56633e4 100644
--- a/bsp/nxp/mcx/mcxa/frdm-mcxa153/board/MCUX_Config/board/pin_mux.c
+++ b/bsp/nxp/mcx/mcxa/frdm-mcxa153/board/MCUX_Config/board/pin_mux.c
@@ -117,6 +117,109 @@ void BOARD_InitPins(void)
/* PORT0_3 (pin 52) is configured as LPUART0_TXD */
PORT_SetPinConfig(PORT0, 3U, &port0_3_pin52_config);
+#ifdef BSP_USING_UART1
+ const port_pin_config_t port1_8_pin2_config = {/* Internal pull-up resistor is enabled */
+ kPORT_PullUp,
+ /* Low internal pull resistor value is selected. */
+ kPORT_LowPullResistor,
+ /* Fast slew rate is configured */
+ kPORT_FastSlewRate,
+ /* Passive input filter is disabled */
+ kPORT_PassiveFilterDisable,
+ /* Open drain output is disabled */
+ kPORT_OpenDrainDisable,
+ /* Low drive strength is configured */
+ kPORT_LowDriveStrength,
+ /* Normal drive strength is configured */
+ kPORT_NormalDriveStrength,
+ /* Pin is configured as LPUART1_RXD */
+ kPORT_MuxAlt2,
+ /* Digital input enabled */
+ kPORT_InputBufferEnable,
+ /* Digital input is not inverted */
+ kPORT_InputNormal,
+ /* Pin Control Register fields [15:0] are not locked */
+ kPORT_UnlockRegister};
+ /* PORT1_8 (pin 2) is configured as LPUART1_RXD */
+ PORT_SetPinConfig(PORT1, 8U, &port1_8_pin2_config);
+
+ const port_pin_config_t port1_9_pin3_config = {/* Internal pull-up resistor is enabled */
+ kPORT_PullUp,
+ /* Low internal pull resistor value is selected. */
+ kPORT_LowPullResistor,
+ /* Fast slew rate is configured */
+ kPORT_FastSlewRate,
+ /* Passive input filter is disabled */
+ kPORT_PassiveFilterDisable,
+ /* Open drain output is disabled */
+ kPORT_OpenDrainDisable,
+ /* Low drive strength is configured */
+ kPORT_LowDriveStrength,
+ /* Normal drive strength is configured */
+ kPORT_NormalDriveStrength,
+ /* Pin is configured as LPUART1_TXD */
+ kPORT_MuxAlt2,
+ /* Digital input enabled */
+ kPORT_InputBufferEnable,
+ /* Digital input is not inverted */
+ kPORT_InputNormal,
+ /* Pin Control Register fields [15:0] are not locked */
+ kPORT_UnlockRegister};
+ /* PORT1_9 (pin 3) is configured as LPUART1_TXD */
+ PORT_SetPinConfig(PORT1, 9U, &port1_9_pin3_config);
+#endif
+#ifdef BSP_USING_UART2
+ const port_pin_config_t port3_14_pin36_config = {/* Internal pull-up resistor is enabled */
+ kPORT_PullUp,
+ /* Low internal pull resistor value is selected. */
+ kPORT_LowPullResistor,
+ /* Fast slew rate is configured */
+ kPORT_FastSlewRate,
+ /* Passive input filter is disabled */
+ kPORT_PassiveFilterDisable,
+ /* Open drain output is disabled */
+ kPORT_OpenDrainDisable,
+ /* Low drive strength is configured */
+ kPORT_LowDriveStrength,
+ /* Normal drive strength is configured */
+ kPORT_NormalDriveStrength,
+ /* Pin is configured as LPUART2_RXD */
+ kPORT_MuxAlt2,
+ /* Digital input enabled */
+ kPORT_InputBufferEnable,
+ /* Digital input is not inverted */
+ kPORT_InputNormal,
+ /* Pin Control Register fields [15:0] are not locked */
+ kPORT_UnlockRegister};
+ /* PORT3_14 (pin 36) is configured as LPUART2_RXD */
+ PORT_SetPinConfig(PORT3, 14U, &port3_14_pin36_config);
+
+ const port_pin_config_t port3_15_pin35_config = {/* Internal pull-up resistor is enabled */
+ kPORT_PullUp,
+ /* Low internal pull resistor value is selected. */
+ kPORT_LowPullResistor,
+ /* Fast slew rate is configured */
+ kPORT_FastSlewRate,
+ /* Passive input filter is disabled */
+ kPORT_PassiveFilterDisable,
+ /* Open drain output is disabled */
+ kPORT_OpenDrainDisable,
+ /* Low drive strength is configured */
+ kPORT_LowDriveStrength,
+ /* Normal drive strength is configured */
+ kPORT_NormalDriveStrength,
+ /* Pin is configured as LPUART2_TXD */
+ kPORT_MuxAlt2,
+ /* Digital input enabled */
+ kPORT_InputBufferEnable,
+ /* Digital input is not inverted */
+ kPORT_InputNormal,
+ /* Pin Control Register fields [15:0] are not locked */
+ kPORT_UnlockRegister};
+ /* PORT3_15 (pin 35) is configured as LPUART2_TXD */
+ PORT_SetPinConfig(PORT3, 15U, &port3_15_pin35_config);
+#endif
+
#ifdef BSP_USING_PWM0
ctimer_config_t config;
CTIMER_Init(CTIMER1, &config);