boards: nucleo_l496zg: Add UART for console
Used LPUART 1 for console subsys. Also, added USART2 and USART3.
Signed-off-by: Ioannis Konstantelias <ikonstadel@gmail.com>
diff --git a/boards/arm/nucleo_l496zg/Kconfig.defconfig b/boards/arm/nucleo_l496zg/Kconfig.defconfig
index a96a2a1..fbd5ec1 100644
--- a/boards/arm/nucleo_l496zg/Kconfig.defconfig
+++ b/boards/arm/nucleo_l496zg/Kconfig.defconfig
@@ -10,4 +10,18 @@
config BOARD
default "nucleo_l496zg"
+if UART_CONSOLE
+
+config LPUART_1
+ default y
+
+endif # UART_CONSOLE
+
+if SERIAL
+
+config LPUART_1
+ default y
+
+endif # SERIAL
+
endif # BOARD_NUCLEO_L496ZG
diff --git a/boards/arm/nucleo_l496zg/nucleo_l496zg.dts b/boards/arm/nucleo_l496zg/nucleo_l496zg.dts
index 42211b5..0a70ef5 100644
--- a/boards/arm/nucleo_l496zg/nucleo_l496zg.dts
+++ b/boards/arm/nucleo_l496zg/nucleo_l496zg.dts
@@ -12,6 +12,7 @@
compatible = "st,stm32l496zg-nucleo", "st,stm32l496";
chosen {
+ zephyr,console = &lpuart1;
zephyr,sram = &sram0;
zephyr,flash = &flash0;
};
@@ -47,3 +48,26 @@
sw0 = &user_button;
};
};
+
+arduino_serial: &lpuart1 {};
+
+&usart2 {
+ current-speed = <115200>;
+ pinctrl-0 = <&usart2_pins_d>;
+ pinctrl-names = "default";
+ status = "ok";
+};
+
+&usart3 {
+ current-speed = <115200>;
+ pinctrl-0 = <&usart3_pins_b>;
+ pinctrl-names = "default";
+ status = "ok";
+};
+
+&lpuart1 {
+ current-speed = <115200>;
+ pinctrl-0 = <&lpuart1_pins_a>;
+ pinctrl-names = "default";
+ status = "ok";
+};
diff --git a/boards/arm/nucleo_l496zg/nucleo_l496zg_defconfig b/boards/arm/nucleo_l496zg/nucleo_l496zg_defconfig
index ca3cf2e..f9f3556 100644
--- a/boards/arm/nucleo_l496zg/nucleo_l496zg_defconfig
+++ b/boards/arm/nucleo_l496zg/nucleo_l496zg_defconfig
@@ -6,7 +6,7 @@
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=80000000
# enable uart driver
-CONFIG_SERIAL=n
+CONFIG_SERIAL=y
# enable pinmux
CONFIG_PINMUX=y
@@ -31,8 +31,8 @@
CONFIG_CLOCK_STM32_APB2_PRESCALER=1
# console
-CONFIG_CONSOLE=n
-CONFIG_UART_CONSOLE=n
+CONFIG_CONSOLE=y
+CONFIG_UART_CONSOLE=y
#enable pwm
CONFIG_PWM=n
diff --git a/boards/arm/nucleo_l496zg/pinmux.c b/boards/arm/nucleo_l496zg/pinmux.c
index 9b9bf69..d068d6e 100644
--- a/boards/arm/nucleo_l496zg/pinmux.c
+++ b/boards/arm/nucleo_l496zg/pinmux.c
@@ -14,6 +14,14 @@
/* pin assignments for NUCLEO-L496ZG board */
static const struct pin_config pinconf[] = {
+#ifdef CONFIG_UART_2
+ {STM32_PIN_PD5, STM32L4X_PINMUX_FUNC_PD5_USART2_TX},
+ {STM32_PIN_PD6, STM32L4X_PINMUX_FUNC_PD6_USART2_RX},
+#endif /* CONFIG_UART_2 */
+#ifdef CONFIG_LPUART_1
+ {STM32_PIN_PG7, STM32L4X_PINMUX_FUNC_PG7_LPUART1_TX},
+ {STM32_PIN_PG8, STM32L4X_PINMUX_FUNC_PG8_LPUART1_RX},
+#endif /* CONFIG_LPUART_1 */
};
static int pinmux_stm32_init(struct device *port)
diff --git a/dts/arm/st/l4/stm32l4-pinctrl.dtsi b/dts/arm/st/l4/stm32l4-pinctrl.dtsi
index a7d57d3..c10d8c5 100644
--- a/dts/arm/st/l4/stm32l4-pinctrl.dtsi
+++ b/dts/arm/st/l4/stm32l4-pinctrl.dtsi
@@ -1,5 +1,6 @@
/*
* Copyright (c) 2017 Linaro Limited
+ * Copyright (c) 2018 Centaur Analytics, Inc
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -57,6 +58,12 @@
tx = <STM32_PIN_PB10 (STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_NOPULL)>;
};
};
+ usart3_pins_b: usart3_b {
+ rx_tx {
+ rx = <STM32_PIN_PD9 (STM32_PINMUX_ALT_FUNC_7 | STM32_PUPDR_NO_PULL)>;
+ tx = <STM32_PIN_PD8 (STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_NOPULL)>;
+ };
+ };
uart4_pins_a: uart4_a {
rx_tx {
rx = <STM32_PIN_PA1 (STM32_PINMUX_ALT_FUNC_7 | STM32_PUPDR_NO_PULL)>;