From 26a8f3765bfda0a2ad913f4dee503d49ef28f6de Mon Sep 17 00:00:00 2001 From: Yestin Sun Date: Sat, 10 Oct 2020 18:22:14 -0700 Subject: [PATCH] boards: stm32l562e_dk: add support for stm32l562e_dk Add support for the STM32L562E-DK Discovery board (based on the nucleo_l552ze_q board). Tested with hello_world, basic/blinky, basic/button. Signed-off-by: Yestin Sun --- boards/arm/stm32l562e_dk/CMakeLists.txt | 7 + boards/arm/stm32l562e_dk/Kconfig.board | 8 + boards/arm/stm32l562e_dk/Kconfig.defconfig | 11 + .../stm32l562e_dk/arduino_r3_connector.dtsi | 36 +++ boards/arm/stm32l562e_dk/board.cmake | 7 + .../stm32l562e_dk/doc/img/stm32l562e_dk.jpg | Bin 0 -> 61294 bytes boards/arm/stm32l562e_dk/doc/index.rst | 273 ++++++++++++++++++ boards/arm/stm32l562e_dk/pinmux.c | 29 ++ boards/arm/stm32l562e_dk/stm32l562e_dk.dts | 28 ++ boards/arm/stm32l562e_dk/stm32l562e_dk.yaml | 11 + .../stm32l562e_dk/stm32l562e_dk_common.dtsi | 37 +++ .../arm/stm32l562e_dk/stm32l562e_dk_defconfig | 42 +++ 12 files changed, 489 insertions(+) create mode 100644 boards/arm/stm32l562e_dk/CMakeLists.txt create mode 100644 boards/arm/stm32l562e_dk/Kconfig.board create mode 100644 boards/arm/stm32l562e_dk/Kconfig.defconfig create mode 100644 boards/arm/stm32l562e_dk/arduino_r3_connector.dtsi create mode 100644 boards/arm/stm32l562e_dk/board.cmake create mode 100644 boards/arm/stm32l562e_dk/doc/img/stm32l562e_dk.jpg create mode 100644 boards/arm/stm32l562e_dk/doc/index.rst create mode 100644 boards/arm/stm32l562e_dk/pinmux.c create mode 100644 boards/arm/stm32l562e_dk/stm32l562e_dk.dts create mode 100644 boards/arm/stm32l562e_dk/stm32l562e_dk.yaml create mode 100644 boards/arm/stm32l562e_dk/stm32l562e_dk_common.dtsi create mode 100644 boards/arm/stm32l562e_dk/stm32l562e_dk_defconfig diff --git a/boards/arm/stm32l562e_dk/CMakeLists.txt b/boards/arm/stm32l562e_dk/CMakeLists.txt new file mode 100644 index 00000000000..d1b8108cfed --- /dev/null +++ b/boards/arm/stm32l562e_dk/CMakeLists.txt @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: Apache-2.0 + +if(CONFIG_PINMUX) +zephyr_library() +zephyr_library_sources(pinmux.c) +zephyr_library_include_directories(${ZEPHYR_BASE}/drivers) +endif() diff --git a/boards/arm/stm32l562e_dk/Kconfig.board b/boards/arm/stm32l562e_dk/Kconfig.board new file mode 100644 index 00000000000..44cabce93d3 --- /dev/null +++ b/boards/arm/stm32l562e_dk/Kconfig.board @@ -0,0 +1,8 @@ +# STM32L562E-DK Discovery board configuration + +# Copyright (c) 2020 Yestin Sun +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_STM32L562E_DK + bool "STM32L562E-DK Discovery Development Board" + depends on SOC_STM32L562XX diff --git a/boards/arm/stm32l562e_dk/Kconfig.defconfig b/boards/arm/stm32l562e_dk/Kconfig.defconfig new file mode 100644 index 00000000000..1a631d7c510 --- /dev/null +++ b/boards/arm/stm32l562e_dk/Kconfig.defconfig @@ -0,0 +1,11 @@ +# STM32L562E-DK Discovery board configuration + +# Copyright (c) 2020 Yestin Sun +# SPDX-License-Identifier: Apache-2.0 + +if BOARD_STM32L562E_DK + +config BOARD + default "stm32l562e_dk" + +endif # BOARD_STM32L562E_DK diff --git a/boards/arm/stm32l562e_dk/arduino_r3_connector.dtsi b/boards/arm/stm32l562e_dk/arduino_r3_connector.dtsi new file mode 100644 index 00000000000..87ee9535e22 --- /dev/null +++ b/boards/arm/stm32l562e_dk/arduino_r3_connector.dtsi @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2020 Yestin Sun + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + arduino_header: connector { + compatible = "arduino-header-r3"; + #gpio-cells = <2>; + gpio-map-mask = <0xffffffff 0xffffffc0>; + gpio-map-pass-thru = <0 0x3f>; + gpio-map = <0 0 &gpioa 0 0>, /* A0 */ + <1 0 &gpioa 1 0>, /* A1 */ + <2 0 &gpioa 4 0>, /* A2 */ + <3 0 &gpioa 5 0>, /* A3 */ + <4 0 &gpioc 4 0>, /* A4 */ + <5 0 &gpioc 5 0>, /* A5 */ + <6 0 &gpiob 10 0>, /* D0 */ + <7 0 &gpiob 11 0>, /* D1 */ + <8 0 &gpiod 11 0>, /* D2 */ + <9 0 &gpiod 12 0>, /* D3 */ + <10 0 &gpiof 4 0>, /* D4 */ + <11 0 &gpiod 13 0>, /* D5 */ + <12 0 &gpiob 8 0>, /* D6 */ + <13 0 &gpioc 6 0>, /* D7 */ + <14 0 &gpiog 0 0>, /* D8 */ + <15 0 &gpiob 9 0>, /* D9 */ + <16 0 &gpioe 0 0>, /* D10 */ + <17 0 &gpiob 5 0>, /* D11 */ + <18 0 &gpiob 4 0>, /* D12 */ + <19 0 &gpiog 9 0>, /* D13 */ + <20 0 &gpiob 7 0>, /* D14 */ + <21 0 &gpiob 6 0>; /* D15 */ + }; +}; diff --git a/boards/arm/stm32l562e_dk/board.cmake b/boards/arm/stm32l562e_dk/board.cmake new file mode 100644 index 00000000000..4e000bdbf82 --- /dev/null +++ b/boards/arm/stm32l562e_dk/board.cmake @@ -0,0 +1,7 @@ +set_ifndef(BOARD_DEBUG_RUNNER pyocd) +set_ifndef(BOARD_FLASH_RUNNER pyocd) + +board_runner_args(pyocd "--target=stm32l562qeixq") + +include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) +include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) diff --git a/boards/arm/stm32l562e_dk/doc/img/stm32l562e_dk.jpg b/boards/arm/stm32l562e_dk/doc/img/stm32l562e_dk.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4a89f61212b887238e36e3d89fb862d3a9391103 GIT binary patch literal 61294 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 Hpb!7qM5k +#include +#include +#include +#include + +#include + +/* pin assignments for STM32L562E-DK Discovery board */ +static const struct pin_config pinconf[] = { +}; + +static int pinmux_stm32_init(const struct device *port) +{ + ARG_UNUSED(port); + + stm32_setup_pins(pinconf, ARRAY_SIZE(pinconf)); + + return 0; +} + +SYS_INIT(pinmux_stm32_init, PRE_KERNEL_1, + CONFIG_PINMUX_STM32_DEVICE_INITIALIZATION_PRIORITY); diff --git a/boards/arm/stm32l562e_dk/stm32l562e_dk.dts b/boards/arm/stm32l562e_dk/stm32l562e_dk.dts new file mode 100644 index 00000000000..f18d240a455 --- /dev/null +++ b/boards/arm/stm32l562e_dk/stm32l562e_dk.dts @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2020 Yestin Sun + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include "stm32l562e_dk_common.dtsi" + +/ { + model = "STMicroelectronics STM32L562E-DK Discovery board"; + compatible = "st,stm32l562e-dk"; + + #address-cells = <1>; + #size-cells = <1>; + + chosen { + zephyr,console = &usart1; + zephyr,shell-uart = &usart1; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + }; + + aliases { + led0 = &green_led_10; + sw0 = &user_button; + }; +}; diff --git a/boards/arm/stm32l562e_dk/stm32l562e_dk.yaml b/boards/arm/stm32l562e_dk/stm32l562e_dk.yaml new file mode 100644 index 00000000000..ae75f43d042 --- /dev/null +++ b/boards/arm/stm32l562e_dk/stm32l562e_dk.yaml @@ -0,0 +1,11 @@ +identifier: stm32l562e_dk +name: ST STM32L562E-DK Discovery +type: mcu +arch: arm +toolchain: + - zephyr + - gnuarmemb +supported: + - gpio +ram: 192 +flash: 512 diff --git a/boards/arm/stm32l562e_dk/stm32l562e_dk_common.dtsi b/boards/arm/stm32l562e_dk/stm32l562e_dk_common.dtsi new file mode 100644 index 00000000000..105520544a5 --- /dev/null +++ b/boards/arm/stm32l562e_dk/stm32l562e_dk_common.dtsi @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2020 Yestin Sun + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include "arduino_r3_connector.dtsi" + +/ { + leds { + compatible = "gpio-leds"; + red_led_9: led_9 { + gpios = <&gpiod 3 GPIO_ACTIVE_HIGH>; + label = "User LD9"; + }; + green_led_10: led_10 { + gpios = <&gpiog 12 GPIO_ACTIVE_HIGH>; + label = "User LD10"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + user_button: button { + label = "User"; + gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&usart1 { + pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>; + current-speed = <115200>; + status = "okay"; +}; diff --git a/boards/arm/stm32l562e_dk/stm32l562e_dk_defconfig b/boards/arm/stm32l562e_dk/stm32l562e_dk_defconfig new file mode 100644 index 00000000000..c2579e2a6ef --- /dev/null +++ b/boards/arm/stm32l562e_dk/stm32l562e_dk_defconfig @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SOC_SERIES_STM32L5X=y +CONFIG_SOC_STM32L562XX=y +# 110MHz system clock +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=110000000 + +# enable uart driver +CONFIG_SERIAL=y + +# enable pinmux +CONFIG_PINMUX=y + +# enable GPIO +CONFIG_GPIO=y + +# clock configuration +CONFIG_CLOCK_CONTROL=y +# SYSCLK selection +CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL=y +# PLL configuration +CONFIG_CLOCK_STM32_PLL_SRC_MSI=y +CONFIG_CLOCK_STM32_MSI_RANGE=6 +# produce 110MHz clock at PLL output +CONFIG_CLOCK_STM32_PLL_M_DIVISOR=1 +CONFIG_CLOCK_STM32_PLL_N_MULTIPLIER=55 +CONFIG_CLOCK_STM32_PLL_P_DIVISOR=7 +CONFIG_CLOCK_STM32_PLL_Q_DIVISOR=2 +CONFIG_CLOCK_STM32_PLL_R_DIVISOR=2 +CONFIG_CLOCK_STM32_AHB_PRESCALER=1 +CONFIG_CLOCK_STM32_APB1_PRESCALER=1 +CONFIG_CLOCK_STM32_APB2_PRESCALER=1 + +# console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable MPU +CONFIG_ARM_MPU=y + +# Enable HW stack protection +CONFIG_HW_STACK_PROTECTION=y