From b94677b063e9cd372ef194622692fef3c9f7821e Mon Sep 17 00:00:00 2001 From: Maureen Helm Date: Mon, 17 May 2021 16:51:33 -0500 Subject: [PATCH] boards: arm: Enable arduino serial port on mimxrt1064_evk Configures lpuart3 pinmuxes. This instance is attached to the Arduino serial header pins and can be used for Bluetooth serial HCI with a frdm_kw41z or other BLE controller shield. Signed-off-by: Maureen Helm --- boards/arm/mimxrt1064_evk/doc/index.rst | 4 ++++ boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts | 4 ++++ boards/arm/mimxrt1064_evk/mimxrt1064_evk.yaml | 1 + boards/arm/mimxrt1064_evk/pinmux.c | 16 ++++++++++++++++ 4 files changed, 25 insertions(+) diff --git a/boards/arm/mimxrt1064_evk/doc/index.rst b/boards/arm/mimxrt1064_evk/doc/index.rst index 81202773b80..63547099c48 100644 --- a/boards/arm/mimxrt1064_evk/doc/index.rst +++ b/boards/arm/mimxrt1064_evk/doc/index.rst @@ -151,6 +151,10 @@ The MIMXRT1064 SoC has four pairs of pinmux/gpio controllers. +---------------+-----------------+---------------------------+ | GPIO_AD_B0_13 | LPUART1_RX | UART Console | +---------------+-----------------+---------------------------+ +| GPIO_AD_B1_06 | LPUART3_TX | UART Arduino | ++---------------+-----------------+---------------------------+ +| GPIO_AD_B1_07 | LPUART3_RX | UART Arduino | ++---------------+-----------------+---------------------------+ | WAKEUP | GPIO | SW0 | +---------------+-----------------+---------------------------+ | GPIO_B0_00 | LCD_CLK | LCD Display | diff --git a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts index 6b879e186a6..a644a0fea9d 100644 --- a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts +++ b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.dts @@ -198,6 +198,10 @@ arduino_i2c: &lpi2c1 {}; current-speed = <115200>; }; +arduino_serial: &lpuart3 { + current-speed = <115200>; +}; + &enet { status = "okay"; ptp { diff --git a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.yaml b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.yaml index b5ace3a8170..50403b58a24 100644 --- a/boards/arm/mimxrt1064_evk/mimxrt1064_evk.yaml +++ b/boards/arm/mimxrt1064_evk/mimxrt1064_evk.yaml @@ -16,6 +16,7 @@ ram: 32768 flash: 4096 supported: - arduino_gpio + - arduino_serial - counter - display - gpio diff --git a/boards/arm/mimxrt1064_evk/pinmux.c b/boards/arm/mimxrt1064_evk/pinmux.c index eee52236295..484a9a9ca69 100644 --- a/boards/arm/mimxrt1064_evk/pinmux.c +++ b/boards/arm/mimxrt1064_evk/pinmux.c @@ -130,6 +130,22 @@ static int mimxrt1064_evk_init(const struct device *dev) IOMUXC_SW_PAD_CTL_PAD_DSE(6)); #endif +#if DT_NODE_HAS_STATUS(DT_NODELABEL(lpuart3), okay) && CONFIG_SERIAL + /* LPUART3 TX/RX */ + IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B1_06_LPUART3_TX, 0); + IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B1_07_LPUART3_RX, 0); + + IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B1_06_LPUART3_TX, + IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | + IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | + IOMUXC_SW_PAD_CTL_PAD_DSE(6)); + + IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B1_07_LPUART3_RX, + IOMUXC_SW_PAD_CTL_PAD_PKE_MASK | + IOMUXC_SW_PAD_CTL_PAD_SPEED(2) | + IOMUXC_SW_PAD_CTL_PAD_DSE(6)); +#endif + #if DT_NODE_HAS_STATUS(DT_NODELABEL(lcdif), okay) && CONFIG_DISPLAY IOMUXC_SetPinMux(IOMUXC_GPIO_B0_00_LCD_CLK, 0); IOMUXC_SetPinMux(IOMUXC_GPIO_B0_01_LCD_ENABLE, 0);