boards: Add stm32h747i_disco, C-M7 target
Add C-M7 target for board stm32h747i_disco. Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
This commit is contained in:
parent
4d7a58069b
commit
afcb1ae71f
8 changed files with 264 additions and 0 deletions
7
boards/arm/stm32h747i_disco/CMakeLists.txt
Normal file
7
boards/arm/stm32h747i_disco/CMakeLists.txt
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
if(CONFIG_PINMUX)
|
||||||
|
zephyr_library()
|
||||||
|
zephyr_library_sources(pinmux.c)
|
||||||
|
zephyr_library_include_directories(${PROJECT_SOURCE_DIR}/drivers)
|
||||||
|
endif()
|
11
boards/arm/stm32h747i_disco/Kconfig.board
Normal file
11
boards/arm/stm32h747i_disco/Kconfig.board
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# Kconfig - STM32H747I Discovery board configuration
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 Linaro Limited
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
config BOARD_STM32H747I_DISCO_M7
|
||||||
|
bool "STM32H747I Discovery Development Board"
|
||||||
|
depends on SOC_STM32H747XX
|
||||||
|
select CPU_CORTEX_M7
|
27
boards/arm/stm32h747i_disco/Kconfig.defconfig
Normal file
27
boards/arm/stm32h747i_disco/Kconfig.defconfig
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# Kconfig - STM32H747I DISCOVERY board configuration
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 Linaro Limited
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
if BOARD_STM32H747I_DISCO_M7
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "stm32h747i_disco_m7" if BOARD_STM32H747I_DISCO_M7
|
||||||
|
|
||||||
|
if UART_CONSOLE
|
||||||
|
|
||||||
|
config UART_1
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # UART_CONSOLE
|
||||||
|
|
||||||
|
if SERIAL
|
||||||
|
|
||||||
|
config UART_8
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # SERIAL
|
||||||
|
|
||||||
|
endif # BOARD_STM32H747I_DISCO_M7
|
37
boards/arm/stm32h747i_disco/pinmux.c
Normal file
37
boards/arm/stm32h747i_disco/pinmux.c
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019 Linaro Limited
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <kernel.h>
|
||||||
|
#include <device.h>
|
||||||
|
#include <init.h>
|
||||||
|
#include <pinmux.h>
|
||||||
|
#include <sys_io.h>
|
||||||
|
|
||||||
|
#include <pinmux/stm32/pinmux_stm32.h>
|
||||||
|
|
||||||
|
/* pin assignments for STM32H747I-DISCO board */
|
||||||
|
static const struct pin_config pinconf[] = {
|
||||||
|
#ifdef CONFIG_UART_1
|
||||||
|
{STM32_PIN_PA9, STM32H7_PINMUX_FUNC_PA9_USART1_TX},
|
||||||
|
{STM32_PIN_PA10, STM32H7_PINMUX_FUNC_PA10_USART1_RX},
|
||||||
|
#endif /* CONFIG_UART_1 */
|
||||||
|
#ifdef CONFIG_UART_8
|
||||||
|
{STM32_PIN_PJ8, STM32H7_PINMUX_FUNC_PJ8_UART8_TX},
|
||||||
|
{STM32_PIN_PJ9, STM32H7_PINMUX_FUNC_PJ9_UART8_RX},
|
||||||
|
#endif /* CONFIG_UART_8 */
|
||||||
|
};
|
||||||
|
|
||||||
|
static int pinmux_stm32_init(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);
|
66
boards/arm/stm32h747i_disco/stm32h747i_disco.dtsi
Normal file
66
boards/arm/stm32h747i_disco/stm32h747i_disco.dtsi
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019 Linaro Limited
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
green_led_1:led_1 {
|
||||||
|
gpios = <&gpioi 12 GPIO_INT_ACTIVE_HIGH>;
|
||||||
|
label = "User LD1";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
orange_led_2:led_2 {
|
||||||
|
gpios = <&gpioi 13 GPIO_INT_ACTIVE_HIGH>;
|
||||||
|
label = "User LD2";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
red_led_3:led_3 {
|
||||||
|
gpios = <&gpioi 14 GPIO_INT_ACTIVE_HIGH>;
|
||||||
|
label = "User LD3";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
blue_led_4:led_4 {
|
||||||
|
gpios = <&gpioi 15 GPIO_INT_ACTIVE_HIGH>;
|
||||||
|
label = "User LD4";
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
wake_up: button {
|
||||||
|
label = "Wakeup";
|
||||||
|
gpios = <&gpioc 13 GPIO_INT_ACTIVE_HIGH>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
joy_center: joystick_center {
|
||||||
|
label = "joystick center";
|
||||||
|
gpios = <&gpiok 2 GPIO_INT_ACTIVE_LOW>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
joy_down: joystick_down {
|
||||||
|
label = "joystick down";
|
||||||
|
gpios = <&gpiok 3 GPIO_INT_ACTIVE_LOW>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
joy_up: joystick_up {
|
||||||
|
label = "joystick up";
|
||||||
|
gpios = <&gpiok 6 GPIO_INT_ACTIVE_LOW>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
joy_left: joystick_left {
|
||||||
|
label = "joystick left";
|
||||||
|
gpios = <&gpiok 4 GPIO_INT_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
joy_right: joystick_right {
|
||||||
|
label = "joystick right";
|
||||||
|
gpios = <&gpiok 5 GPIO_INT_ACTIVE_LOW>;
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
arduino_serial: &uart8 {};
|
56
boards/arm/stm32h747i_disco/stm32h747i_disco_m7.dts
Normal file
56
boards/arm/stm32h747i_disco/stm32h747i_disco_m7.dts
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019 Linaro Limited
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <st/h7/stm32h747Xi_m7.dtsi>
|
||||||
|
#include "stm32h747i_disco.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "STMicroelectronics STM32H747I DISCOVERY board";
|
||||||
|
compatible = "st,stm32h747i-disco", "st,stm32h747";
|
||||||
|
|
||||||
|
/* HW resources are split between CM7 and CM4 */
|
||||||
|
chosen {
|
||||||
|
zephyr,console = &usart1;
|
||||||
|
zephyr,shell-uart = &usart1;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
green_led_1:led_1 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
orange_led_2:led_2 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_keys {
|
||||||
|
wake_up: button {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
led0 = &green_led_1;
|
||||||
|
led1 = &orange_led_2;
|
||||||
|
sw0 = &wake_up;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
&usart1 {
|
||||||
|
current-speed = <115200>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
status = "ok";
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart8 {
|
||||||
|
current-speed = <115200>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
status = "ok";
|
||||||
|
};
|
12
boards/arm/stm32h747i_disco/stm32h747i_disco_m7.yaml
Normal file
12
boards/arm/stm32h747i_disco/stm32h747i_disco_m7.yaml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
identifier: stm32h747i_disco_m7
|
||||||
|
name: STM32H747IDISCOVERY
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
- xtools
|
||||||
|
ram: 512
|
||||||
|
flash: 1024
|
||||||
|
supported:
|
||||||
|
- gpio
|
48
boards/arm/stm32h747i_disco/stm32h747i_disco_m7_defconfig
Normal file
48
boards/arm/stm32h747i_disco/stm32h747i_disco_m7_defconfig
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
CONFIG_ARM=y
|
||||||
|
CONFIG_BOARD_STM32H747I_DISCO_M7=y
|
||||||
|
CONFIG_SOC_SERIES_STM32H7X=y
|
||||||
|
CONFIG_SOC_STM32H747XX=y
|
||||||
|
CONFIG_CORTEX_M_SYSTICK=y
|
||||||
|
CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000
|
||||||
|
|
||||||
|
# enable pinmux
|
||||||
|
CONFIG_PINMUX=y
|
||||||
|
|
||||||
|
# enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
|
||||||
|
# clock configuration
|
||||||
|
CONFIG_CLOCK_CONTROL=y
|
||||||
|
|
||||||
|
# Clock configuration for Cube Clock control driver
|
||||||
|
CONFIG_CLOCK_STM32_HSE_CLOCK=25000000
|
||||||
|
CONFIG_CLOCK_STM32_SYSCLK_SRC_PLL=y
|
||||||
|
|
||||||
|
# use HSE (bypass) as PLL input
|
||||||
|
CONFIG_CLOCK_STM32_PLL_SRC_HSE=y
|
||||||
|
CONFIG_CLOCK_STM32_HSE_BYPASS=y
|
||||||
|
|
||||||
|
# produce 400MHz clock at PLL output
|
||||||
|
CONFIG_CLOCK_STM32_PLL_M_DIVISOR=5
|
||||||
|
CONFIG_CLOCK_STM32_PLL_N_MULTIPLIER=160
|
||||||
|
CONFIG_CLOCK_STM32_PLL_P_DIVISOR=2
|
||||||
|
CONFIG_CLOCK_STM32_PLL_Q_DIVISOR=4
|
||||||
|
CONFIG_CLOCK_STM32_PLL_R_DIVISOR=2
|
||||||
|
|
||||||
|
CONFIG_CLOCK_STM32_D1CPRE=1
|
||||||
|
# HCLK: 200MHz
|
||||||
|
CONFIG_CLOCK_STM32_HPRE=2
|
||||||
|
# APBX: 100MHz
|
||||||
|
CONFIG_CLOCK_STM32_D2PPRE1=2
|
||||||
|
CONFIG_CLOCK_STM32_D2PPRE2=2
|
||||||
|
CONFIG_CLOCK_STM32_D1PPRE=2
|
||||||
|
CONFIG_CLOCK_STM32_D3PPRE=2
|
||||||
|
|
||||||
|
# enable uart driver
|
||||||
|
CONFIG_SERIAL=y
|
||||||
|
|
||||||
|
# console
|
||||||
|
CONFIG_CONSOLE=y
|
||||||
|
CONFIG_UART_CONSOLE=y
|
Loading…
Add table
Add a link
Reference in a new issue