From b463a4bf7a4847a9f5a5014cab08f461422592ef Mon Sep 17 00:00:00 2001 From: raiden00pl Date: Wed, 23 Sep 2026 09:31:58 +0200 Subject: [PATCH] boards/arm/stm32h7: add STM32H735G-DK support add STM32H735G-DK support. Assisted-by: Codex:GPT-6 Signed-off-by: raiden00pl --- .../stm32h7/boards/stm32h735g-dk/index.rst | 39 +++ .../stm32h735g-dk/stm32h735g-dk-back.jpg | Bin 0 -> 120694 bytes .../stm32h735g-dk/stm32h735g-dk-front.jpg | Bin 0 -> 76449 bytes boards/Kconfig | 13 + .../arm/stm32h7/stm32h735g-dk/CMakeLists.txt | 23 ++ boards/arm/stm32h7/stm32h735g-dk/Kconfig | 8 + .../stm32h735g-dk/configs/jumbo/defconfig | 61 +++++ .../stm32h735g-dk/configs/lvgl/defconfig | 75 +++++ .../stm32h735g-dk/configs/nsh/defconfig | 45 +++ .../arm/stm32h7/stm32h735g-dk/include/board.h | 259 ++++++++++++++++++ .../stm32h7/stm32h735g-dk/scripts/Make.defs | 37 +++ .../stm32h7/stm32h735g-dk/scripts/flash.ld | 133 +++++++++ .../stm32h7/stm32h735g-dk/src/CMakeLists.txt | 44 +++ .../arm/stm32h7/stm32h735g-dk/src/Make.defs | 47 ++++ .../stm32h735g-dk/src/stm32_autoleds.c | 61 +++++ .../stm32h7/stm32h735g-dk/src/stm32_boot.c | 79 ++++++ .../stm32h7/stm32h735g-dk/src/stm32_bringup.c | 91 ++++++ .../stm32h7/stm32h735g-dk/src/stm32_buttons.c | 107 ++++++++ .../stm32h735g-dk/src/stm32_hyperram.c | 140 ++++++++++ .../arm/stm32h7/stm32h735g-dk/src/stm32_lcd.c | 140 ++++++++++ .../stm32h735g-dk/src/stm32_touchscreen.c | 160 +++++++++++ .../stm32h735g-dk/src/stm32_userleds.c | 130 +++++++++ .../stm32h7/stm32h735g-dk/src/stm32h735g-dk.h | 67 +++++ 23 files changed, 1759 insertions(+) create mode 100644 Documentation/platforms/arm/stm32h7/boards/stm32h735g-dk/index.rst create mode 100644 Documentation/platforms/arm/stm32h7/boards/stm32h735g-dk/stm32h735g-dk-back.jpg create mode 100644 Documentation/platforms/arm/stm32h7/boards/stm32h735g-dk/stm32h735g-dk-front.jpg create mode 100644 boards/arm/stm32h7/stm32h735g-dk/CMakeLists.txt create mode 100644 boards/arm/stm32h7/stm32h735g-dk/Kconfig create mode 100644 boards/arm/stm32h7/stm32h735g-dk/configs/jumbo/defconfig create mode 100644 boards/arm/stm32h7/stm32h735g-dk/configs/lvgl/defconfig create mode 100644 boards/arm/stm32h7/stm32h735g-dk/configs/nsh/defconfig create mode 100644 boards/arm/stm32h7/stm32h735g-dk/include/board.h create mode 100644 boards/arm/stm32h7/stm32h735g-dk/scripts/Make.defs create mode 100644 boards/arm/stm32h7/stm32h735g-dk/scripts/flash.ld create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/CMakeLists.txt create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/Make.defs create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/stm32_autoleds.c create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/stm32_boot.c create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/stm32_bringup.c create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/stm32_buttons.c create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/stm32_hyperram.c create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/stm32_lcd.c create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/stm32_touchscreen.c create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/stm32_userleds.c create mode 100644 boards/arm/stm32h7/stm32h735g-dk/src/stm32h735g-dk.h diff --git a/Documentation/platforms/arm/stm32h7/boards/stm32h735g-dk/index.rst b/Documentation/platforms/arm/stm32h7/boards/stm32h735g-dk/index.rst new file mode 100644 index 00000000000..a49d34868bd --- /dev/null +++ b/Documentation/platforms/arm/stm32h7/boards/stm32h735g-dk/index.rst @@ -0,0 +1,39 @@ +================ +ST STM32H735G-DK +================ + +.. tags:: chip:stm32, chip:stm32h7, chip:stm32h735 + +.. figure:: stm32h735g-dk-front.jpg + :align: center + :alt: STM32H735G-DK Front + + STM32H735G-DK Front + +.. figure:: stm32h735g-dk-back.jpg + :align: center + :alt: STM32H735G-DK Back + + STM32H735G-DK Back + +The STM32H735G-DK Discovery board features an STM32H735IGK6 Cortex-M7 +with 1 MiB flash, 564 KiB RAM and a 480 x 272 touchscreen. + +Configurations +============== + +nsh +--- + +Basic NuttShell configuration with procfs. + +jumbo +----- + +OS tests and LED/button drivers. Run ``ostest`` from NSH. + +lvgl +---- + +LVGL widgets demo with the on-board LCD and GT911 touchscreen. +Run ``lvgldemo widgets &`` from NSH. diff --git a/Documentation/platforms/arm/stm32h7/boards/stm32h735g-dk/stm32h735g-dk-back.jpg b/Documentation/platforms/arm/stm32h7/boards/stm32h735g-dk/stm32h735g-dk-back.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f17b609b0a6ffeb5cd028ac875e4fe67fdb3cbb3 GIT binary patch literal 120694 zcmb5Ubx;(}8$V8mg!Iu}(%m54AtDC{#~}?zA0erLfOH=n0+M&canupgd4zPM#F2uE zpn~H2=jZpG`TqZX?aa>3KD#?Rvpdi0+2^(Yt^fB4kH%QvNFNU$9}f@zU%~rt3r`1+ zgouckh=_!kn3#lwgp{0`oSck|oQ{g>0W~8X6B8pH0|S7ShaJGo#lpbAA;iJO%O@Zp zz{LJYOqgGkhhKpIe~aM%n@UbbPD@Ts%g@Zf%>Vz4|Az5s$p~x-xe4)k@d#+~32E{F z8^vS$w@>2#?e_nI01uy#h?s=*pOFRs|KR`H{tYJhXZ&vykCG4{kAQ}d=3md{5w>D} zHIyt>QV*ctmg)hF6v!~Xi=|8#_h=t9aIKlkv~G+!O*R!D6O*1}X=2Y__6tnoUu>

$jxB*p~|LF7p1@A)HqF-+)-4nf;?`G^M-FB=K~9 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 Z22!D9M6Hb6pu)nE3($(CCID=o|Jj#VX!HO8 literal 0 HcmV?d00001 diff --git a/Documentation/platforms/arm/stm32h7/boards/stm32h735g-dk/stm32h735g-dk-front.jpg b/Documentation/platforms/arm/stm32h7/boards/stm32h735g-dk/stm32h735g-dk-front.jpg new file mode 100644 index 0000000000000000000000000000000000000000..938b8dc5fe3c6b17de37a0fc73affa7318091b16 GIT binary patch literal 76449 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 literal 0 HcmV?d00001 diff --git a/boards/Kconfig b/boards/Kconfig index 11de7871d48..3df775a7ff6 100644 --- a/boards/Kconfig +++ b/boards/Kconfig @@ -2136,6 +2136,15 @@ config ARCH_BOARD_NUCLEO_H745ZI ---help--- STMicro Nucleo H745ZI board based on the STMicro STM32H745ZI MCU. +config ARCH_BOARD_STM32H735G_DK + bool "STM32H735G-DK board" + depends on ARCH_CHIP_STM32H735IG + select ARCH_HAVE_LEDS + select ARCH_HAVE_BUTTONS + select ARCH_HAVE_IRQBUTTONS + ---help--- + STMicro STM32H735G-DK Discovery kit based on the STM32H735IG MCU. + config ARCH_BOARD_STM32H745I_DISCO bool "STM32H745I-DISCO board" depends on ARCH_CHIP_STM32H745XI @@ -4147,6 +4156,7 @@ config ARCH_BOARD default "nucleo-h743zi" if ARCH_BOARD_NUCLEO_H743ZI default "nucleo-h743zi2" if ARCH_BOARD_NUCLEO_H743ZI2 default "nucleo-h745zi" if ARCH_BOARD_NUCLEO_H745ZI + default "stm32h735g-dk" if ARCH_BOARD_STM32H735G_DK default "stm32h745i-disco" if ARCH_BOARD_STM32H745I_DISCO default "stm32h750b-dk" if ARCH_BOARD_STM32H750B_DK default "linum-stm32h753bi" if ARCH_BOARD_LINUM_STM32H753BI @@ -4970,6 +4980,9 @@ endif if ARCH_BOARD_NUCLEO_H745ZI source "boards/arm/stm32h7/nucleo-h745zi/Kconfig" endif +if ARCH_BOARD_STM32H735G_DK +source "boards/arm/stm32h7/stm32h735g-dk/Kconfig" +endif if ARCH_BOARD_STM32H745I_DISCO source "boards/arm/stm32h7/stm32h745i-disco/Kconfig" endif diff --git a/boards/arm/stm32h7/stm32h735g-dk/CMakeLists.txt b/boards/arm/stm32h7/stm32h735g-dk/CMakeLists.txt new file mode 100644 index 00000000000..b3a9f52dedc --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/CMakeLists.txt @@ -0,0 +1,23 @@ +# ############################################################################## +# boards/arm/stm32h7/stm32h735g-dk/CMakeLists.txt +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed to the Apache Software Foundation (ASF) under one or more contributor +# license agreements. See the NOTICE file distributed with this work for +# additional information regarding copyright ownership. The ASF licenses this +# file to you under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +# +# ############################################################################## + +add_subdirectory(src) diff --git a/boards/arm/stm32h7/stm32h735g-dk/Kconfig b/boards/arm/stm32h7/stm32h735g-dk/Kconfig new file mode 100644 index 00000000000..3f42cf6e180 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/Kconfig @@ -0,0 +1,8 @@ +# +# For a description of the syntax of this configuration file, +# see the file kconfig-language.txt in the NuttX tools repository. +# + +if ARCH_BOARD_STM32H735G_DK + +endif # ARCH_BOARD_STM32H735G_DK diff --git a/boards/arm/stm32h7/stm32h735g-dk/configs/jumbo/defconfig b/boards/arm/stm32h7/stm32h735g-dk/configs/jumbo/defconfig new file mode 100644 index 00000000000..af85e8cadde --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/configs/jumbo/defconfig @@ -0,0 +1,61 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_ARCH_LEDS is not set +# CONFIG_STANDARD_SERIAL is not set +CONFIG_ARCH="arm" +CONFIG_ARCH_BOARD="stm32h735g-dk" +CONFIG_ARCH_BOARD_STM32H735G_DK=y +CONFIG_ARCH_BUTTONS=y +CONFIG_ARCH_CHIP="stm32h7" +CONFIG_ARCH_CHIP_STM32=y +CONFIG_ARCH_CHIP_STM32H735IG=y +CONFIG_ARCH_CHIP_STM32H7=y +CONFIG_ARCH_CHIP_STM32H7_CORTEXM7=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_IRQBUTTONS=y +CONFIG_ARCH_STACKDUMP=y +CONFIG_ARMV7M_DCACHE=y +CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y +CONFIG_ARMV7M_DTCM=y +CONFIG_ARMV7M_ICACHE=y +CONFIG_BOARD_LOOPSPERMSEC=66627 +CONFIG_BUILTIN=y +CONFIG_DEBUG_ASSERTIONS=y +CONFIG_DEBUG_ASSERTIONS_EXPRESSION=y +CONFIG_DEBUG_FEATURES=y +CONFIG_DEBUG_FULLOPT=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_FS_PROCFS=y +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=4096 +CONFIG_INPUT=y +CONFIG_INPUT_BUTTONS=y +CONFIG_INPUT_BUTTONS_LOWER=y +CONFIG_INTELHEX_BINARY=y +CONFIG_LINE_MAX=64 +CONFIG_MM_REGIONS=3 +CONFIG_MQ_MAXMSGSIZE=64 +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_READLINE=y +CONFIG_PREALLOC_TIMERS=4 +CONFIG_PTHREAD_MUTEX_TYPES=y +CONFIG_RAM_SIZE=327680 +CONFIG_RAM_START=0x24000000 +CONFIG_RAW_BINARY=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_WAITPID=y +CONFIG_STM32_DTCMEXCLUDE=y +CONFIG_STM32_PWR_DIRECT_SMPS_SUPPLY=y +CONFIG_STM32_USART3=y +CONFIG_SYSTEM_NSH=y +CONFIG_TESTING_OSTEST=y +CONFIG_USART3_SERIAL_CONSOLE=y +CONFIG_USERLED=y +CONFIG_USERLED_LOWER=y diff --git a/boards/arm/stm32h7/stm32h735g-dk/configs/lvgl/defconfig b/boards/arm/stm32h7/stm32h735g-dk/configs/lvgl/defconfig new file mode 100644 index 00000000000..f3d2e634906 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/configs/lvgl/defconfig @@ -0,0 +1,75 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_STANDARD_SERIAL is not set +# CONFIG_STM32_FB_CMAP is not set +# CONFIG_STM32_LTDC_BACKLIGHT is not set +# CONFIG_STM32_LTDC_L1_CHROMAKEYEN is not set +# CONFIG_STM32_LTDC_L2 is not set +CONFIG_ARCH="arm" +CONFIG_ARCH_BOARD="stm32h735g-dk" +CONFIG_ARCH_BOARD_STM32H735G_DK=y +CONFIG_ARCH_CHIP="stm32h7" +CONFIG_ARCH_CHIP_STM32=y +CONFIG_ARCH_CHIP_STM32H735IG=y +CONFIG_ARCH_CHIP_STM32H7=y +CONFIG_ARCH_CHIP_STM32H7_CORTEXM7=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_STACKDUMP=y +CONFIG_ARMV7M_DCACHE=y +CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y +CONFIG_ARMV7M_DTCM=y +CONFIG_ARMV7M_ICACHE=y +CONFIG_BOARD_LOOPSPERMSEC=66627 +CONFIG_BUILTIN=y +CONFIG_DEBUG_ASSERTIONS=y +CONFIG_DEBUG_FEATURES=y +CONFIG_DEBUG_FULLOPT=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_DEV_URANDOM=y +CONFIG_DRIVERS_VIDEO=y +CONFIG_EXAMPLES_FB=y +CONFIG_EXAMPLES_LVGLDEMO=y +CONFIG_EXAMPLES_TOUCHSCREEN=y +CONFIG_FS_PROCFS=y +CONFIG_GRAPHICS_LVGL=y +CONFIG_I2C=y +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=4096 +CONFIG_INPUT=y +CONFIG_INPUT_GT9XX=y +CONFIG_INTELHEX_BINARY=y +CONFIG_LINE_MAX=64 +CONFIG_LV_FONT_MONTSERRAT_20=y +CONFIG_LV_USE_CLIB_MALLOC=y +CONFIG_LV_USE_CLIB_SPRINTF=y +CONFIG_LV_USE_CLIB_STRING=y +CONFIG_LV_USE_DEMO_WIDGETS=y +CONFIG_LV_USE_LOG=y +CONFIG_LV_USE_NUTTX=y +CONFIG_LV_USE_NUTTX_TOUCHSCREEN=y +CONFIG_MM_HEAP_MEMPOOL_THRESHOLD=0 +CONFIG_MM_REGIONS=4 +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_READLINE=y +CONFIG_PREALLOC_TIMERS=4 +CONFIG_RAM_SIZE=327680 +CONFIG_RAM_START=0x24000000 +CONFIG_RAW_BINARY=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_WAITPID=y +CONFIG_STM32_I2C4=y +CONFIG_STM32_LTDC=y +CONFIG_STM32_LTDC_FB_BASE=0x70000000 +CONFIG_STM32_LTDC_FB_SIZE=261120 +CONFIG_STM32_PWR_DIRECT_SMPS_SUPPLY=y +CONFIG_STM32_USART3=y +CONFIG_SYSTEM_NSH=y +CONFIG_USART3_SERIAL_CONSOLE=y +CONFIG_VIDEO_FB=y diff --git a/boards/arm/stm32h7/stm32h735g-dk/configs/nsh/defconfig b/boards/arm/stm32h7/stm32h735g-dk/configs/nsh/defconfig new file mode 100644 index 00000000000..17a79ea3e0d --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/configs/nsh/defconfig @@ -0,0 +1,45 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +# CONFIG_STANDARD_SERIAL is not set +CONFIG_ARCH="arm" +CONFIG_ARCH_BOARD="stm32h735g-dk" +CONFIG_ARCH_BOARD_STM32H735G_DK=y +CONFIG_ARCH_CHIP="stm32h7" +CONFIG_ARCH_CHIP_STM32=y +CONFIG_ARCH_CHIP_STM32H735IG=y +CONFIG_ARCH_CHIP_STM32H7=y +CONFIG_ARCH_CHIP_STM32H7_CORTEXM7=y +CONFIG_ARCH_INTERRUPTSTACK=2048 +CONFIG_ARCH_STACKDUMP=y +CONFIG_ARMV7M_DCACHE=y +CONFIG_ARMV7M_DCACHE_WRITETHROUGH=y +CONFIG_ARMV7M_DTCM=y +CONFIG_ARMV7M_ICACHE=y +CONFIG_BOARD_LOOPSPERMSEC=66627 +CONFIG_BUILTIN=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_FS_PROCFS=y +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INIT_STACKSIZE=4096 +CONFIG_INTELHEX_BINARY=y +CONFIG_LINE_MAX=64 +CONFIG_MM_REGIONS=3 +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_READLINE=y +CONFIG_PREALLOC_TIMERS=4 +CONFIG_RAM_SIZE=327680 +CONFIG_RAM_START=0x24000000 +CONFIG_RAW_BINARY=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_WAITPID=y +CONFIG_STM32_DTCMEXCLUDE=y +CONFIG_STM32_PWR_DIRECT_SMPS_SUPPLY=y +CONFIG_STM32_USART3=y +CONFIG_SYSTEM_NSH=y +CONFIG_USART3_SERIAL_CONSOLE=y diff --git a/boards/arm/stm32h7/stm32h735g-dk/include/board.h b/boards/arm/stm32h7/stm32h735g-dk/include/board.h new file mode 100644 index 00000000000..432064d8567 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/include/board.h @@ -0,0 +1,259 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/include/board.h + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +#ifndef __BOARDS_ARM_STM32H7_STM32H735G_DK_INCLUDE_BOARD_H +#define __BOARDS_ARM_STM32H7_STM32H735G_DK_INCLUDE_BOARD_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#ifndef __ASSEMBLY__ +# include +#endif + +/* Do not include STM32 H7 header files here */ + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* Clocking *****************************************************************/ + +/* The board has a 25 MHz HSE oscillator and a 32.768 kHz LSE crystal. + * PLL1 supplies a 400 MHz CPU clock, 200 MHz AHB and 100 MHz APB clocks. + */ + +/* rcc_reset() leaves the 64 MHz HSI oscillator divided by four. */ + +#define STM32_HSI_FREQUENCY 16000000ul +#define STM32_LSI_FREQUENCY 32000 +#define STM32_HSE_FREQUENCY 25000000ul +#define STM32_LSE_FREQUENCY 32768 + +#define STM32_BOARD_USEHSE +#define STM32_HSEBYP_ENABLE + +#define STM32_PLLCFG_PLLSRC RCC_PLLCKSELR_PLLSRC_HSE + +/* PLL1, wide 4 - 8 MHz input, enable DIVP, DIVQ, DIVR + * + * PLL1_VCO = (25,000,000 / 5) * 160 = 800 MHz + * + * PLL1P = PLL1_VCO/2 = 800 MHz / 2 = 400 MHz + * PLL1Q = PLL1_VCO/4 = 800 MHz / 4 = 200 MHz + * PLL1R = PLL1_VCO/8 = 800 MHz / 8 = 100 MHz + */ + +#define STM32_PLLCFG_PLL1CFG (RCC_PLLCFGR_PLL1VCOSEL_WIDE | \ + RCC_PLLCFGR_PLL1RGE_4_8_MHZ | \ + RCC_PLLCFGR_DIVP1EN | \ + RCC_PLLCFGR_DIVQ1EN | \ + RCC_PLLCFGR_DIVR1EN) +#define STM32_PLLCFG_PLL1M RCC_PLLCKSELR_DIVM1(5) +#define STM32_PLLCFG_PLL1N RCC_PLL1DIVR_N1(160) +#define STM32_PLLCFG_PLL1P RCC_PLL1DIVR_P1(2) +#define STM32_PLLCFG_PLL1Q RCC_PLL1DIVR_Q1(4) +#define STM32_PLLCFG_PLL1R RCC_PLL1DIVR_R1(8) + +#define STM32_VCO1_FREQUENCY ((STM32_HSE_FREQUENCY / 5) * 160) +#define STM32_PLL1P_FREQUENCY (STM32_VCO1_FREQUENCY / 2) +#define STM32_PLL1Q_FREQUENCY (STM32_VCO1_FREQUENCY / 4) + +/* PLL2 is unused. */ + +#define STM32_PLLCFG_PLL2CFG 0 +#define STM32_PLLCFG_PLL2M 0 +#define STM32_PLLCFG_PLL2N 0 +#define STM32_PLLCFG_PLL2P 0 +#define STM32_PLLCFG_PLL2Q 0 +#define STM32_PLLCFG_PLL2R 0 +#ifdef CONFIG_STM32_LTDC +/* PLL3R supplies the LCD pixel clock: 800 MHz / 83 = 9.64 MHz. */ + +# define STM32_PLLCFG_PLL3CFG (RCC_PLLCFGR_PLL3VCOSEL_WIDE | \ + RCC_PLLCFGR_PLL3RGE_4_8_MHZ | \ + RCC_PLLCFGR_DIVR3EN) +# define STM32_PLLCFG_PLL3M RCC_PLLCKSELR_DIVM3(5) +# define STM32_PLLCFG_PLL3N RCC_PLL3DIVR_N3(160) +# define STM32_PLLCFG_PLL3P RCC_PLL3DIVR_P3(2) +# define STM32_PLLCFG_PLL3Q RCC_PLL3DIVR_Q3(2) +# define STM32_PLLCFG_PLL3R RCC_PLL3DIVR_R3(83) +#else +# define STM32_PLLCFG_PLL3CFG 0 +# define STM32_PLLCFG_PLL3M 0 +# define STM32_PLLCFG_PLL3N 0 +# define STM32_PLLCFG_PLL3P 0 +# define STM32_PLLCFG_PLL3Q 0 +# define STM32_PLLCFG_PLL3R 0 +#endif + +/* SYSCLK = PLL1P = 400 MHz + * CPUCLK = SYSCLK / 1 = 400 MHz + */ + +#define STM32_RCC_D1CFGR_D1CPRE (RCC_D1CFGR_D1CPRE_SYSCLK) +#define STM32_SYSCLK_FREQUENCY (STM32_PLL1P_FREQUENCY) +#define STM32_CPUCLK_FREQUENCY (STM32_SYSCLK_FREQUENCY / 1) + +/* Configure Clock Assignments */ + +/* AHB clock (HCLK) is SYSCLK/2 (200 MHz max) + * HCLK1 = HCLK2 = HCLK3 = HCLK4 + */ + +#define STM32_RCC_D1CFGR_HPRE RCC_D1CFGR_HPRE_SYSCLKd2 /* HCLK = SYSCLK / 2 */ +#define STM32_HCLK_FREQUENCY (STM32_SYSCLK_FREQUENCY / 2) /* HCLK in D2, HCLK4 in D3 */ + +/* APB1 clock (PCLK1) is HCLK/2 (100 MHz) */ + +#define STM32_RCC_D2CFGR_D2PPRE1 RCC_D2CFGR_D2PPRE1_HCLKd2 /* PCLK1 = HCLK / 2 */ +#define STM32_PCLK1_FREQUENCY (STM32_HCLK_FREQUENCY/2) + +/* APB2 clock (PCLK2) is HCLK/2 (100 MHz) */ + +#define STM32_RCC_D2CFGR_D2PPRE2 RCC_D2CFGR_D2PPRE2_HCLKd2 /* PCLK2 = HCLK / 2 */ +#define STM32_PCLK2_FREQUENCY (STM32_HCLK_FREQUENCY/2) + +/* APB3 clock (PCLK3) is HCLK/2 (100 MHz) */ + +#define STM32_RCC_D1CFGR_D1PPRE RCC_D1CFGR_D1PPRE_HCLKd2 /* PCLK3 = HCLK / 2 */ + +/* APB4 clock (PCLK4) is HCLK/2 (100 MHz) */ + +#define STM32_RCC_D3CFGR_D3PPRE RCC_D3CFGR_D3PPRE_HCLKd2 /* PCLK4 = HCLK / 2 */ +#define STM32_PCLK4_FREQUENCY (STM32_HCLK_FREQUENCY/2) + +/* Timer clock frequencies */ + +/* Timers driven from APB1 will be twice PCLK1 */ + +#define STM32_TIM2_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_TIM3_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_TIM4_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_TIM5_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_TIM6_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_TIM7_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_TIM12_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_TIM13_CLKIN (2*STM32_PCLK1_FREQUENCY) +#define STM32_TIM14_CLKIN (2*STM32_PCLK1_FREQUENCY) + +/* Timers driven from APB2 will be twice PCLK2 */ + +#define STM32_TIM1_CLKIN (2*STM32_PCLK2_FREQUENCY) +#define STM32_TIM8_CLKIN (2*STM32_PCLK2_FREQUENCY) +#define STM32_TIM15_CLKIN (2*STM32_PCLK2_FREQUENCY) +#define STM32_TIM16_CLKIN (2*STM32_PCLK2_FREQUENCY) +#define STM32_TIM17_CLKIN (2*STM32_PCLK2_FREQUENCY) + +/* Four flash wait states at 200 MHz ACLK. */ + +#define BOARD_FLASH_WAITSTATES 4 + +/* ST-LINK virtual COM port: USART3 TX on PD8, RX on PD9. */ + +#define GPIO_USART3_RX (GPIO_USART3_RX_3 | GPIO_SPEED_100MHz) +#define GPIO_USART3_TX (GPIO_USART3_TX_3 | GPIO_SPEED_100MHz) + +/* I2C4: touchscreen on PF14/PF15. */ + +#define STM32_RCC_D3CCIPR_I2C4SRC RCC_D3CCIPR_I2C4SEL_HSI +#define GPIO_I2C4_SCL (GPIO_I2C4_SCL_2 | GPIO_SPEED_50MHz) +#define GPIO_I2C4_SDA (GPIO_I2C4_SDA_2 | GPIO_SPEED_50MHz) + +/* RK043FN48H 480x272 RGB panel. */ + +#define GPIO_LTDC_B0 (GPIO_LTDC_B0_2 | GPIO_SPEED_100MHz) /* PG14 */ +#define GPIO_LTDC_B1 (GPIO_LTDC_B1_4 | GPIO_SPEED_100MHz) /* PD0 */ +#define GPIO_LTDC_B2 (GPIO_LTDC_B2_2 | GPIO_SPEED_100MHz) /* PD6 */ +#define GPIO_LTDC_B3 (GPIO_LTDC_B3_1 | GPIO_SPEED_100MHz) /* PA8 */ +#define GPIO_LTDC_B4 (GPIO_LTDC_B4_2 | GPIO_SPEED_100MHz) /* PE12 */ +#define GPIO_LTDC_B5 (GPIO_LTDC_B5_1 | GPIO_SPEED_100MHz) /* PA3 */ +#define GPIO_LTDC_B6 (GPIO_LTDC_B6_1 | GPIO_SPEED_100MHz) /* PB8 */ +#define GPIO_LTDC_B7 (GPIO_LTDC_B7_1 | GPIO_SPEED_100MHz) /* PB9 */ +#define GPIO_LTDC_CLK (GPIO_LTDC_CLK_2 | GPIO_SPEED_100MHz) /* PG7 */ +#define GPIO_LTDC_G0 (GPIO_LTDC_G0_1 | GPIO_SPEED_100MHz) /* PB1 */ +#define GPIO_LTDC_G1 (GPIO_LTDC_G1_1 | GPIO_SPEED_100MHz) /* PB0 */ +#define GPIO_LTDC_G2 (GPIO_LTDC_G2_1 | GPIO_SPEED_100MHz) /* PA6 */ +#define GPIO_LTDC_G3 (GPIO_LTDC_G3_2 | GPIO_SPEED_100MHz) /* PE11 */ +#define GPIO_LTDC_G4 (GPIO_LTDC_G4_2 | GPIO_SPEED_100MHz) /* PH15 */ +#define GPIO_LTDC_G5 (GPIO_LTDC_G5_4 | GPIO_SPEED_100MHz) /* PH4 */ +#define GPIO_LTDC_G6 (GPIO_LTDC_G6_1 | GPIO_SPEED_100MHz) /* PC7 */ +#define GPIO_LTDC_G7 (GPIO_LTDC_G7_1 | GPIO_SPEED_100MHz) /* PD3 */ +#define GPIO_LTDC_HSYNC (GPIO_LTDC_HSYNC_1 | GPIO_SPEED_100MHz) /* PC6 */ +#define GPIO_LTDC_R0 (GPIO_LTDC_R0_4 | GPIO_SPEED_100MHz) /* PE0 */ +#define GPIO_LTDC_R1 (GPIO_LTDC_R1_2 | GPIO_SPEED_100MHz) /* PH3 */ +#define GPIO_LTDC_R2 (GPIO_LTDC_R2_3 | GPIO_SPEED_100MHz) /* PH8 */ +#define GPIO_LTDC_R3 (GPIO_LTDC_R3_1 | GPIO_SPEED_100MHz) /* PH9 */ +#define GPIO_LTDC_R4 (GPIO_LTDC_R4_3 | GPIO_SPEED_100MHz) /* PH10 */ +#define GPIO_LTDC_R5 (GPIO_LTDC_R5_4 | GPIO_SPEED_100MHz) /* PH11 */ +#define GPIO_LTDC_R6 (GPIO_LTDC_R6_5 | GPIO_SPEED_100MHz) /* PE1 */ +#define GPIO_LTDC_R7 (GPIO_LTDC_R7_1 | GPIO_SPEED_100MHz) /* PE15 */ +#define GPIO_LTDC_VSYNC (GPIO_LTDC_VSYNC_1 | GPIO_SPEED_100MHz) /* PA4 */ + +/* The panel uses HSYNC/VSYNC mode. Hold DE low as in the ST BSP. */ + +#define GPIO_LTDC_DE (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \ + GPIO_OUTPUT_CLEAR | GPIO_PORTE | GPIO_PIN13) + +#define BOARD_LTDC_WIDTH 480 +#define BOARD_LTDC_HEIGHT 272 +#define BOARD_LTDC_OUTPUT_BPP 24 +#define BOARD_LTDC_HFP 32 +#define BOARD_LTDC_HBP 13 +#define BOARD_LTDC_VFP 2 +#define BOARD_LTDC_VBP 2 +#define BOARD_LTDC_HSYNC 41 +#define BOARD_LTDC_VSYNC 10 +#define BOARD_LTDC_GCR_PCPOL 0 +#define BOARD_LTDC_GCR_DEPOL 0 +#define BOARD_LTDC_GCR_VSPOL 0 +#define BOARD_LTDC_GCR_HSPOL 0 + +/* User LEDs: LD1 green (PC3), LD2 red (PC2), both active low. */ + +#define BOARD_LED_GREEN 0 +#define BOARD_LED_RED 1 +#define BOARD_NLEDS 2 +#define BOARD_LED_GREEN_BIT (1 << BOARD_LED_GREEN) +#define BOARD_LED_RED_BIT (1 << BOARD_LED_RED) + +/* Green indicates successful startup; red blinks on a fatal error. */ + +#define LED_STARTED 0 +#define LED_HEAPALLOCATE 0 +#define LED_IRQSENABLED 0 +#define LED_STACKCREATED 1 +#define LED_INIRQ 2 +#define LED_SIGNAL 2 +#define LED_ASSERTION 2 +#define LED_PANIC 3 +#define LED_IDLE 2 + +/* User button B2 on PC13. */ + +#define BUTTON_USER 0 +#define BUTTON_USER_BIT (1 << BUTTON_USER) + +#endif /* __BOARDS_ARM_STM32H7_STM32H735G_DK_INCLUDE_BOARD_H */ diff --git a/boards/arm/stm32h7/stm32h735g-dk/scripts/Make.defs b/boards/arm/stm32h7/stm32h735g-dk/scripts/Make.defs new file mode 100644 index 00000000000..d2d4a6c4b9e --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/scripts/Make.defs @@ -0,0 +1,37 @@ +############################################################################ +# boards/arm/stm32h7/stm32h735g-dk/scripts/Make.defs +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +############################################################################ + +include $(TOPDIR)/.config +include $(TOPDIR)/tools/Config.mk +include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs + +LDSCRIPT = flash.ld +ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT) + +CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) +CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) +CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) +AFLAGS := $(CFLAGS) -D__ASSEMBLY__ + +NXFLATLDFLAGS1 = -r -d -warn-common +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections +LDNXFLATFLAGS = -e main -s 2048 diff --git a/boards/arm/stm32h7/stm32h735g-dk/scripts/flash.ld b/boards/arm/stm32h7/stm32h735g-dk/scripts/flash.ld new file mode 100644 index 00000000000..c7c976f9fa6 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/scripts/flash.ld @@ -0,0 +1,133 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/scripts/flash.ld + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/* Boot from the 1 MiB internal flash at 0x08000000. Use the default + * option-byte memory split: 64 KiB ITCM and 320 KiB AXI SRAM. SRAM1/2 + * provide a contiguous 32 KiB region; SRAM4 provides another 16 KiB. + * The LCD framebuffer uses memory-mapped HyperRAM separately from the heap. + */ + +MEMORY +{ + itcm (rwx) : ORIGIN = 0x00000000, LENGTH = 64K + flash (rx) : ORIGIN = 0x08000000, LENGTH = 1024K + dtcm1 (rwx) : ORIGIN = 0x20000000, LENGTH = 64K + dtcm2 (rwx) : ORIGIN = 0x20010000, LENGTH = 64K + sram (rwx) : ORIGIN = 0x24000000, LENGTH = 320K + sram1 (rwx) : ORIGIN = 0x30000000, LENGTH = 16K + sram2 (rwx) : ORIGIN = 0x30004000, LENGTH = 16K + sram4 (rwx) : ORIGIN = 0x38000000, LENGTH = 16K + bbram (rwx) : ORIGIN = 0x38800000, LENGTH = 4K +} + +OUTPUT_ARCH(arm) +EXTERN(_vectors) +ENTRY(_stext) +SECTIONS +{ + .text : + { + _stext = ABSOLUTE(.); + *(.vectors) + *(.text .text.*) + *(.fixup) + *(.gnu.warning) + *(.rodata .rodata.*) + *(.gnu.linkonce.t.*) + *(.glue_7) + *(.glue_7t) + *(.got) + *(.gcc_except_table) + *(.gnu.linkonce.r.*) + _etext = ABSOLUTE(.); + } > flash + + .init_section : + { + _sinit = ABSOLUTE(.); + KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) + KEEP(*(.init_array EXCLUDE_FILE(*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o) .ctors)) + _einit = ABSOLUTE(.); + } > flash + + .ARM.extab : + { + *(.ARM.extab*) + } > flash + + __exidx_start = ABSOLUTE(.); + .ARM.exidx : + { + *(.ARM.exidx*) + } > flash + __exidx_end = ABSOLUTE(.); + + _eronly = ABSOLUTE(.); + + .data : + { + _sdata = ABSOLUTE(.); + *(.data .data.*) + *(.gnu.linkonce.d.*) + CONSTRUCTORS + . = ALIGN(4); + _edata = ABSOLUTE(.); + } > sram AT > flash + + .bss : + { + _sbss = ABSOLUTE(.); + *(.bss .bss.*) + *(.gnu.linkonce.b.*) + *(COMMON) + . = ALIGN(8); + _ebss = ABSOLUTE(.); + } > sram + + /* Emit the D3 power domain section for locating BDMA data + * + * Static data with locate_data(".sram4") will be located + * at start of SRAM4; the rest of SRAM4 will be added to the heap. + */ + + .sram4_reserve (NOLOAD) : + { + *(.sram4) + . = ALIGN(4); + _sram4_heap_start = ABSOLUTE(.); + } > sram4 + + /* Stabs debugging sections. */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_info 0 : { *(.debug_info) } + .debug_line 0 : { *(.debug_line) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_aranges 0 : { *(.debug_aranges) } +} diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/CMakeLists.txt b/boards/arm/stm32h7/stm32h735g-dk/src/CMakeLists.txt new file mode 100644 index 00000000000..991a3c05594 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/CMakeLists.txt @@ -0,0 +1,44 @@ +# ############################################################################## +# boards/arm/stm32h7/stm32h735g-dk/src/CMakeLists.txt +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed to the Apache Software Foundation (ASF) under one or more contributor +# license agreements. See the NOTICE file distributed with this work for +# additional information regarding copyright ownership. The ASF licenses this +# file to you under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +# +# ############################################################################## + +set(SRCS stm32_boot.c stm32_bringup.c) + +if(CONFIG_ARCH_LEDS) + list(APPEND SRCS stm32_autoleds.c) +else() + list(APPEND SRCS stm32_userleds.c) +endif() + +if(CONFIG_ARCH_BUTTONS) + list(APPEND SRCS stm32_buttons.c) +endif() + +if(CONFIG_STM32_LTDC) + list(APPEND SRCS stm32_lcd.c stm32_hyperram.c) +endif() + +if(CONFIG_INPUT_GT9XX) + list(APPEND SRCS stm32_touchscreen.c) +endif() + +target_sources(board PRIVATE ${SRCS}) +set_property(GLOBAL PROPERTY LD_SCRIPT "${NUTTX_BOARD_DIR}/scripts/flash.ld") diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/Make.defs b/boards/arm/stm32h7/stm32h735g-dk/src/Make.defs new file mode 100644 index 00000000000..aff7f78e042 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/Make.defs @@ -0,0 +1,47 @@ +############################################################################ +# boards/arm/stm32h7/stm32h735g-dk/src/Make.defs +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. The +# ASF licenses this file to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance with the +# License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +############################################################################ + +include $(TOPDIR)/Make.defs + +CSRCS = stm32_boot.c stm32_bringup.c + +ifeq ($(CONFIG_ARCH_LEDS),y) +CSRCS += stm32_autoleds.c +else +CSRCS += stm32_userleds.c +endif + +ifeq ($(CONFIG_ARCH_BUTTONS),y) +CSRCS += stm32_buttons.c +endif + +ifeq ($(CONFIG_STM32_LTDC),y) +CSRCS += stm32_lcd.c stm32_hyperram.c +endif + +ifeq ($(CONFIG_INPUT_GT9XX),y) +CSRCS += stm32_touchscreen.c +endif + +DEPPATH += --dep-path board +VPATH += :board +CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/stm32_autoleds.c b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_autoleds.c new file mode 100644 index 00000000000..f139bcf1213 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_autoleds.c @@ -0,0 +1,61 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/src/stm32_autoleds.c + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include +#include +#include + +#include "stm32h735g-dk.h" + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +void board_autoled_initialize(void) +{ + stm32_configgpio(GPIO_LED_GREEN); + stm32_configgpio(GPIO_LED_RED); +} + +void board_autoled_on(int led) +{ + if (led == LED_STACKCREATED) + { + stm32_gpiowrite(GPIO_LED_GREEN, false); + } + else if (led == LED_PANIC) + { + stm32_gpiowrite(GPIO_LED_RED, false); + } +} + +void board_autoled_off(int led) +{ + if (led == LED_PANIC) + { + stm32_gpiowrite(GPIO_LED_RED, true); + } +} diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/stm32_boot.c b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_boot.c new file mode 100644 index 00000000000..be141405459 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_boot.c @@ -0,0 +1,79 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/src/stm32_boot.c + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include + +#include +#include + +#include "arm_internal.h" +#include "stm32_start.h" +#include "stm32h735g-dk.h" + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: stm32_boardinitialize + * + * Description: + * All STM32 architectures must provide the following entry point. This + * entry point is called early in the initialization -- after all memory + * has been configured and mapped but before any devices have been + * initialized. + * + ****************************************************************************/ + +void stm32_boardinitialize(void) +{ +#ifdef CONFIG_ARCH_LEDS + board_autoled_initialize(); +#endif +} + +/**************************************************************************** + * Name: board_late_initialize + * + * Description: + * If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional + * initialization call will be performed in the boot-up sequence to a + * function called board_late_initialize(). board_late_initialize() will + * be called immediately after up_initialize() is called and just before + * the initial application is started. This additional initialization + * phase may be used, for example, to initialize board-specific device + * drivers. + * + ****************************************************************************/ + +#ifdef CONFIG_BOARD_LATE_INITIALIZE +void board_late_initialize(void) +{ + stm32_bringup(); +} +#endif diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/stm32_bringup.c b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_bringup.c new file mode 100644 index 00000000000..92113053132 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_bringup.c @@ -0,0 +1,91 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/src/stm32_bringup.c + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include + +#include "stm32h735g-dk.h" + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +int stm32_bringup(void) +{ + int ret = OK; + +#ifdef CONFIG_FS_PROCFS + ret = nx_mount(NULL, "/proc", "procfs", 0, NULL); + if (ret < 0) + { + syslog(LOG_ERR, "ERROR: Failed to mount procfs: %d\n", ret); + return ret; + } +#endif + +#ifdef CONFIG_USERLED_LOWER + ret = userled_lower_initialize("/dev/userleds"); + if (ret < 0) + { + syslog(LOG_ERR, "ERROR: Failed to register LEDs: %d\n", ret); + return ret; + } +#endif + +#ifdef CONFIG_INPUT_BUTTONS_LOWER + ret = btn_lower_initialize("/dev/buttons"); + if (ret < 0) + { + syslog(LOG_ERR, "ERROR: Failed to register buttons: %d\n", ret); + return ret; + } +#endif + +#ifdef CONFIG_INPUT_GT9XX + ret = stm32_tsc_setup(0); + if (ret < 0) + { + syslog(LOG_ERR, "ERROR: Failed to register touchscreen: %d\n", ret); + return ret; + } +#endif + +#ifdef CONFIG_VIDEO_FB + ret = fb_register(0, 0); + if (ret < 0) + { + syslog(LOG_ERR, "ERROR: Failed to register framebuffer: %d\n", ret); + } +#endif + + return ret; +} diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/stm32_buttons.c b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_buttons.c new file mode 100644 index 00000000000..12e587863ff --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_buttons.c @@ -0,0 +1,107 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/src/stm32_buttons.c + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +#include +#include + +#include "stm32_gpio.h" +#include "stm32h735g-dk.h" +#include + +#ifdef CONFIG_ARCH_BUTTONS + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_button_initialize + * + * Description: + * board_button_initialize() must be called to initialize button resources. + * After that, board_buttons() may be called to collect the current state + * of all buttons or board_button_irq() may be called to register button + * interrupt handlers. + * + ****************************************************************************/ + +uint32_t board_button_initialize(void) +{ + stm32_configgpio(GPIO_BTN_USER); + return 1; +} + +/**************************************************************************** + * Name: board_buttons + ****************************************************************************/ + +uint32_t board_buttons(void) +{ + return stm32_gpioread(GPIO_BTN_USER) ? 1 : 0; +} + +/**************************************************************************** + * Button support. + * + * Description: + * board_button_initialize() must be called to initialize button resources. + * After that, board_buttons() may be called to collect the current state + * of all buttons or board_button_irq() may be called to register button + * interrupt handlers. + * + * After board_button_initialize() has been called, board_buttons() may be + * called to collect the state of all buttons. board_buttons() returns a + * 32-bit bit set with each bit associated with a button. See the + * BUTTON_*_BIT definitions in board.h for the meaning of each bit. + * + * board_button_irq() may be called to register an interrupt handler that + * will be called when a button is depressed or released. The ID value is + * a button enumeration value that uniquely identifies a button resource. + * See the BUTTON_* definitions in board.h for the meaning of enumeration + * value. + * + ****************************************************************************/ + +#ifdef CONFIG_ARCH_IRQBUTTONS +int board_button_irq(int id, xcpt_t irqhandler, void *arg) +{ + int ret = -EINVAL; + + if (id == BUTTON_USER) + { + ret = stm32_gpiosetevent(GPIO_BTN_USER, true, true, true, + irqhandler, arg); + } + + return ret; +} +#endif +#endif /* CONFIG_ARCH_BUTTONS */ diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/stm32_hyperram.c b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_hyperram.c new file mode 100644 index 00000000000..4c3ac7e7537 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_hyperram.c @@ -0,0 +1,140 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/src/stm32_hyperram.c + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include +#include + +#include "arm_internal.h" +#include "stm32_gpio.h" +#include "hardware/stm32_octospi.h" +#include "hardware/stm32_rcc.h" +#include "stm32h735g-dk.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define HYPERRAM_GPIO (GPIO_ALT | GPIO_PUSHPULL | GPIO_SPEED_100MHz) + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static const uint32_t g_hyperram_pins[] = +{ + HYPERRAM_GPIO | GPIO_AF3 | GPIO_PULLUP | GPIO_PORTG | GPIO_PIN12, /* NCS */ + HYPERRAM_GPIO | GPIO_AF9 | GPIO_PORTF | GPIO_PIN4, /* CLK */ + HYPERRAM_GPIO | GPIO_AF9 | GPIO_PORTF | GPIO_PIN12, /* RWDS */ + HYPERRAM_GPIO | GPIO_AF9 | GPIO_PORTF | GPIO_PIN0, /* D0 */ + HYPERRAM_GPIO | GPIO_AF9 | GPIO_PORTF | GPIO_PIN1, /* D1 */ + HYPERRAM_GPIO | GPIO_AF9 | GPIO_PORTF | GPIO_PIN2, /* D2 */ + HYPERRAM_GPIO | GPIO_AF9 | GPIO_PORTF | GPIO_PIN3, /* D3 */ + HYPERRAM_GPIO | GPIO_AF9 | GPIO_PORTG | GPIO_PIN0, /* D4 */ + HYPERRAM_GPIO | GPIO_AF9 | GPIO_PORTG | GPIO_PIN1, /* D5 */ + HYPERRAM_GPIO | GPIO_AF3 | GPIO_PORTG | GPIO_PIN10, /* D6 */ + HYPERRAM_GPIO | GPIO_AF9 | GPIO_PORTG | GPIO_PIN11 /* D7 */ +}; + +static bool g_hyperram_initialized; + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: stm32_hyperram_initialize + * + * Description: + * Map the S70KL1281 HyperRAM at 0x70000000 for the LCD framebuffer. Keep + * its reset configuration (six-clock fixed latency); use linear bursts. + * The HyperRAM RESET# signal is connected to the board reset. + * + ****************************************************************************/ + +int stm32_hyperram_initialize(void) +{ + uint32_t ccr; + unsigned int i; + + if (g_hyperram_initialized) + { + return OK; + } + + for (i = 0; i < nitems(g_hyperram_pins); i++) + { + stm32_configgpio(g_hyperram_pins[i]); + } + + /* OCTOSPI kernel clock is HCLK (200 MHz), divided by four for 50 MHz. + * The clock mux is shared with OCTOSPI1; neither NOR nor QSPI is used. + */ + + modifyreg32(STM32_RCC_D1CCIPR, RCC_D1CCIPR_QSPISEL_MASK, + RCC_D1CCIPR_QSPISEL_HCLK); + modifyreg32(STM32_RCC_AHB3ENR, 0, + RCC_AHB3ENR_OSPI2EN | RCC_AHB3ENR_IOMNGREN); + modifyreg32(STM32_RCC_AHB3RSTR, 0, RCC_AHB3RSTR_OSPI2RST); + modifyreg32(STM32_RCC_AHB3RSTR, RCC_AHB3RSTR_OSPI2RST, 0); + + putreg32(OCTOSPIM_PCR_CLKEN | OCTOSPIM_PCR_CLKSRC_OSPI2 | + OCTOSPIM_PCR_DQSEN | OCTOSPIM_PCR_DQSSRC_OSPI2 | + OCTOSPIM_PCR_NCSEN | OCTOSPIM_PCR_NCSSRC_OSPI2 | + OCTOSPIM_PCR_IOLEN | OCTOSPIM_PCR_IOLSRC_OSPI2 | + OCTOSPIM_PCR_IOHEN | OCTOSPIM_PCR_IOHSRC_OSPI2, + STM32_OCTOSPIM_P2CR); + + /* 16 MiB device, four-cycle CS high time, no delay-block calibration. + * Split transactions at each 8 MiB die boundary and every four us to + * allow the HyperRAM to refresh. + */ + + putreg32(OCTOSPI_DCR1_MTYP_HYPERBUS | OCTOSPI_DCR1_DEVSIZE(24) | + OCTOSPI_DCR1_CSHT(4), + STM32_OCTOSPI2_DCR1); + putreg32(OCTOSPI_DCR2_PRESCALER(4), STM32_OCTOSPI2_DCR2); + putreg32(OCTOSPI_DCR3_CSBOUND(23), STM32_OCTOSPI2_DCR3); + putreg32(200, STM32_OCTOSPI2_DCR4); + putreg32(OCTOSPI_TCR_DHQC, STM32_OCTOSPI2_TCR); + putreg32(OCTOSPI_HLCR_LM | OCTOSPI_HLCR_TACC(6) | + OCTOSPI_HLCR_TRWR(4), STM32_OCTOSPI2_HLCR); + + ccr = OCTOSPI_CCR_DQSE | OCTOSPI_CCR_DDTR | + OCTOSPI_CCR_DMODE_8LINES | OCTOSPI_CCR_ADSIZE_32BITS | + OCTOSPI_CCR_ADDTR | OCTOSPI_CCR_ADMODE_8LINES; + putreg32(ccr, STM32_OCTOSPI2_CCR); + putreg32(ccr, STM32_OCTOSPI2_WCCR); + putreg32(OCTOSPI_CR_EN | OCTOSPI_CR_FTHRES(4) | + OCTOSPI_CR_FMODE_MEMORYMAP, STM32_OCTOSPI2_CR); + + g_hyperram_initialized = true; + return OK; +} diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/stm32_lcd.c b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_lcd.c new file mode 100644 index 00000000000..29680d5e216 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_lcd.c @@ -0,0 +1,140 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/src/stm32_lcd.c + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +#include +#include +#include +#include + +#include "stm32_gpio.h" +#include "stm32_ltdc.h" + +#include "stm32h735g-dk.h" + +#ifdef CONFIG_STM32_LTDC + +#if CONFIG_STM32_LTDC_FB_BASE < 0x70000000 || \ + CONFIG_STM32_LTDC_FB_BASE + CONFIG_STM32_LTDC_FB_SIZE > 0x71000000 +# error "The LCD framebuffer must reside in HyperRAM" +#endif + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: up_fbinitialize + * + * Description: + * Initialize the framebuffer video hardware associated with the display. + * + * Input Parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * + * Returned Value: + * Zero is returned on success; a negated errno value is returned on any + * failure. + * + ****************************************************************************/ + +int up_fbinitialize(int display) +{ + int ret; + + ret = stm32_hyperram_initialize(); + if (ret < 0) + { + return ret; + } + + /* Custom LCD display with RGB interface */ + + stm32_configgpio(GPIO_LCD_DISP); + stm32_configgpio(GPIO_LCD_BL); + + ret = stm32_ltdcinitialize(); + if (ret == OK) + { + stm32_gpiowrite(GPIO_LCD_DISP, true); + stm32_gpiowrite(GPIO_LCD_BL, true); + } + + return ret; +} + +/**************************************************************************** + * Name: up_fbgetvplane + * + * Description: + * Return a a reference to the framebuffer object for the specified video + * plane of the specified plane. + * Many OSDs support multiple planes of video. + * + * Input Parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * vplane - Identifies the plane being queried. + * + * Returned Value: + * A non-NULL pointer to the frame buffer access structure is returned on + * success; NULL is returned on any failure. + * + ****************************************************************************/ + +struct fb_vtable_s *up_fbgetvplane(int display, int vplane) +{ + return stm32_ltdcgetvplane(vplane); +} + +/**************************************************************************** + * Name: up_fbuninitialize + * + * Description: + * Uninitialize the framebuffer support for the specified display. + * + * Input Parameters: + * display - In the case of hardware with multiple displays, this + * specifies the display. Normally this is zero. + * + * Returned Value: + * None + * + ****************************************************************************/ + +void up_fbuninitialize(int display) +{ + stm32_gpiowrite(GPIO_LCD_DISP, false); + stm32_gpiowrite(GPIO_LCD_BL, false); + + stm32_ltdcuninitialize(); +} +#endif /* CONFIG_STM32_LTDC */ diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/stm32_touchscreen.c b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_touchscreen.c new file mode 100644 index 00000000000..d62dab81707 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_touchscreen.c @@ -0,0 +1,160 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/src/stm32_touchscreen.c + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include + +#include "stm32_gpio.h" +#include "stm32_i2c.h" +#include "stm32h735g-dk.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#ifndef CONFIG_STM32_I2C4 +# error "The touchscreen requires CONFIG_STM32_I2C4" +#endif + +#define TOUCH_I2C_PORT 4 +#define TOUCH_I2C_FREQUENCY 100000 +#define GT911_I2C_ADDRESS 0x5d + +/* The GT911 needs ~200 ms after power-on to report its ID */ + +#define GT911_PROBE_RETRIES 50 +#define GT911_PROBE_DELAY 10000 + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static xcpt_t g_touch_handler; +static void *g_touch_arg; + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +static int stm32_gt911_attach(const struct gt9xx_board_s *state, + xcpt_t handler, void *arg) +{ + g_touch_handler = handler; + g_touch_arg = arg; + return OK; +} + +static void stm32_gt911_enable(const struct gt9xx_board_s *state, + bool enable) +{ + stm32_gpiosetevent(GPIO_TOUCH_INT, false, true, true, + enable ? g_touch_handler : NULL, + enable ? g_touch_arg : NULL); +} + +static int stm32_gt911_power(const struct gt9xx_board_s *state, bool on) +{ + /* The touch panel supply and reset are not controlled by GPIOs. */ + + return OK; +} + +static const struct gt9xx_board_s g_gt911_config = +{ + .irq_attach = stm32_gt911_attach, + .irq_enable = stm32_gt911_enable, + .set_power = stm32_gt911_power +}; + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: stm32_tsc_setup + * + * Description: + * Register the GT911 touchscreen on I2C4. + * + ****************************************************************************/ + +int stm32_tsc_setup(int minor) +{ + struct i2c_master_s *i2c; + struct i2c_config_s config = + { + .frequency = TOUCH_I2C_FREQUENCY, + .address = GT911_I2C_ADDRESS, + .addrlen = 7 + }; + + uint8_t reg[2]; + uint8_t id[4]; + char devpath[16]; + int ret; + int i; + + stm32_configgpio(GPIO_TOUCH_INT); + i2c = stm32_i2cbus_initialize(TOUCH_I2C_PORT); + if (i2c == NULL) + { + return -ENODEV; + } + + for (i = 0; i < GT911_PROBE_RETRIES; i++) + { + reg[0] = 0x81; + reg[1] = 0x40; + ret = i2c_writeread(i2c, &config, reg, 2, id, sizeof(id)); + if (ret >= 0 && id[0] == '9' && id[1] == '1' && id[2] == '1') + { + break; + } + + nxsig_usleep(GT911_PROBE_DELAY); + } + + if (i == GT911_PROBE_RETRIES) + { + stm32_i2cbus_uninitialize(i2c); + return -ENODEV; + } + + snprintf(devpath, sizeof(devpath), "/dev/input%d", minor); + ret = gt9xx_register(devpath, i2c, GT911_I2C_ADDRESS, &g_gt911_config); + if (ret < 0) + { + stm32_i2cbus_uninitialize(i2c); + } + + return ret; +} diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/stm32_userleds.c b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_userleds.c new file mode 100644 index 00000000000..0386666a06d --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/stm32_userleds.c @@ -0,0 +1,130 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/src/stm32_userleds.c + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include + +#include +#include + +#include +#include + +#include "stm32_gpio.h" + +#include "stm32h735g-dk.h" + +#ifndef CONFIG_ARCH_LEDS + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define ARRAYSIZE(x) (sizeof((x)) / sizeof((x)[0])) + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +/* This array maps an LED number to GPIO pin configuration and is indexed by + * BOARD_LED_ + */ + +static const uint32_t g_ledcfg[BOARD_NLEDS] = +{ + GPIO_LED_GREEN, + GPIO_LED_RED, +}; + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +/**************************************************************************** + * Name: board_userled_initialize + * + * Description: + * If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board + * LEDs. If CONFIG_ARCH_LEDS is not defined, then the + * board_userled_initialize() is available to initialize the LED from user + * application logic. + * + ****************************************************************************/ + +uint32_t board_userled_initialize(void) +{ + int i; + + /* Configure LD1 and LD2 GPIOs for output */ + + for (i = 0; i < ARRAYSIZE(g_ledcfg); i++) + { + stm32_configgpio(g_ledcfg[i]); + } + + return BOARD_NLEDS; +} + +/**************************************************************************** + * Name: board_userled + * + * Description: + * If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board + * LEDs. If CONFIG_ARCH_LEDS is not defined, then the board_userled() is + * available to control the LED from user application logic. + * + ****************************************************************************/ + +void board_userled(int led, bool ledon) +{ + if ((unsigned)led < ARRAYSIZE(g_ledcfg)) + { + stm32_gpiowrite(g_ledcfg[led], !ledon); + } +} + +/**************************************************************************** + * Name: board_userled_all + * + * Description: + * If CONFIG_ARCH_LEDS is defined, then NuttX will control the on-board + * LEDs. If CONFIG_ARCH_LEDS is not defined, then the board_userled_all() + * is available to control the LED from user application logic. + * + ****************************************************************************/ + +void board_userled_all(uint32_t ledset) +{ + int i; + + /* Configure LD1 and LD2 GPIOs for output */ + + for (i = 0; i < ARRAYSIZE(g_ledcfg); i++) + { + stm32_gpiowrite(g_ledcfg[i], (ledset & (1 << i)) == 0); + } +} + +#endif /* !CONFIG_ARCH_LEDS */ diff --git a/boards/arm/stm32h7/stm32h735g-dk/src/stm32h735g-dk.h b/boards/arm/stm32h7/stm32h735g-dk/src/stm32h735g-dk.h new file mode 100644 index 00000000000..3bf521893f7 --- /dev/null +++ b/boards/arm/stm32h7/stm32h735g-dk/src/stm32h735g-dk.h @@ -0,0 +1,67 @@ +/**************************************************************************** + * boards/arm/stm32h7/stm32h735g-dk/src/stm32h735g-dk.h + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +#ifndef __BOARDS_ARM_STM32H7_STM32H735G_DK_SRC_STM32H735G_DK_H +#define __BOARDS_ARM_STM32H7_STM32H735G_DK_SRC_STM32H735G_DK_H + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include +#include "stm32_gpio.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +#define GPIO_LED_GREEN (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \ + GPIO_OUTPUT_SET | GPIO_PORTC | GPIO_PIN3) +#define GPIO_LED_RED (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \ + GPIO_OUTPUT_SET | GPIO_PORTC | GPIO_PIN2) +#define GPIO_BTN_USER (GPIO_INPUT | GPIO_FLOAT | GPIO_EXTI | \ + GPIO_PORTC | GPIO_PIN13) + +/* Display control pins */ + +#define GPIO_LCD_DISP (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \ + GPIO_OUTPUT_CLEAR | GPIO_PORTD | GPIO_PIN10) +#define GPIO_LCD_BL (GPIO_OUTPUT | GPIO_PUSHPULL | GPIO_SPEED_2MHz | \ + GPIO_OUTPUT_CLEAR | GPIO_PORTG | GPIO_PIN15) +#define GPIO_TOUCH_INT (GPIO_INPUT | GPIO_FLOAT | GPIO_EXTI | \ + GPIO_PORTG | GPIO_PIN2) + +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ + +#ifdef CONFIG_STM32_LTDC +int stm32_hyperram_initialize(void); +#endif + +int stm32_bringup(void); + +#ifdef CONFIG_INPUT_GT9XX +int stm32_tsc_setup(int minor); +#endif + +#endif /* __BOARDS_ARM_STM32H7_STM32H735G_DK_SRC_STM32H735G_DK_H */