This is an automated email from the ASF dual-hosted git repository.
xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 0f8032d0c51 boards/arm/stm32f7: switch board common to
boards/arm/common/stm32
0f8032d0c51 is described below
commit 0f8032d0c5127f6c8d1e781f1bb1299ef2089a73
Author: raiden00pl <[email protected]>
AuthorDate: Sun May 31 17:01:08 2026 +0200
boards/arm/stm32f7: switch board common to boards/arm/common/stm32
switch stm32f7 board common to boards/arm/common/stm32.
Move the STM32F7-only board-common features into the shared directory
so they are available to every STM32 family:
- bmi270, cs4344, can_setup, cansock_setup, reset, romfs_initialize and
spitest
- the duplicate stm32_bh1750 is removed (already present in common).
Signed-off-by: raiden00pl <[email protected]>
---
boards/Kconfig | 5 +-
boards/arm/common/stm32/Kconfig | 176 ++++++++++++++++++++
.../common => common/stm32}/include/stm32_bmi270.h | 8 +-
.../stm32}/include/stm32_can_setup.h | 8 +-
.../stm32}/include/stm32_cansock_setup.h | 8 +-
.../common => common/stm32}/include/stm32_cs4344.h | 8 +-
.../common => common/stm32}/include/stm32_romfs.h | 8 +-
.../stm32}/include/stm32_spitest.h | 8 +-
boards/arm/common/stm32/src/CMakeLists.txt | 29 ++++
boards/arm/common/stm32/src/Make.defs | 29 ++++
.../common => common/stm32}/src/stm32_bmi270.c | 2 +-
.../common => common/stm32}/src/stm32_can_setup.c | 25 +--
.../stm32}/src/stm32_cansock_setup.c | 2 +-
.../common => common/stm32}/src/stm32_cs4344.c | 2 +-
.../common => common/stm32}/src/stm32_reset.c | 2 +-
.../stm32}/src/stm32_romfs_initialize.c | 2 +-
.../common => common/stm32}/src/stm32_spitest.c | 2 +-
boards/arm/stm32f7/common/CMakeLists.txt | 5 +-
boards/arm/stm32f7/common/Kconfig | 180 ---------------------
boards/arm/stm32f7/common/Makefile | 8 +-
boards/arm/stm32f7/common/include/stm32_bh1750.h | 82 ----------
boards/arm/stm32f7/common/src/CMakeLists.txt | 58 -------
boards/arm/stm32f7/common/src/Make.defs | 62 -------
boards/arm/stm32f7/common/src/stm32_bh1750.c | 89 ----------
24 files changed, 280 insertions(+), 528 deletions(-)
diff --git a/boards/Kconfig b/boards/Kconfig
index 58bc9c313f7..55089c56ece 100644
--- a/boards/Kconfig
+++ b/boards/Kconfig
@@ -5257,10 +5257,7 @@ endif
if ARCH_CHIP_SAMV7
source "boards/arm/samv7/common/Kconfig"
endif
-if ARCH_CHIP_STM32F7
-source "boards/arm/stm32f7/common/Kconfig"
-endif
-if ARCH_CHIP_STM32C0 || ARCH_CHIP_STM32F0 || ARCH_CHIP_STM32F1 ||
ARCH_CHIP_STM32F2 || ARCH_CHIP_STM32F3 || ARCH_CHIP_STM32F4 ||
ARCH_CHIP_STM32G0 || ARCH_CHIP_STM32G4 || ARCH_CHIP_STM32L0 || ARCH_CHIP_STM32L1
+if ARCH_CHIP_STM32C0 || ARCH_CHIP_STM32F0 || ARCH_CHIP_STM32F1 ||
ARCH_CHIP_STM32F2 || ARCH_CHIP_STM32F3 || ARCH_CHIP_STM32F4 ||
ARCH_CHIP_STM32F7 || ARCH_CHIP_STM32G0 || ARCH_CHIP_STM32G4 ||
ARCH_CHIP_STM32L0 || ARCH_CHIP_STM32L1
source "boards/arm/common/stm32/Kconfig"
endif
if ARCH_CHIP_RP2040
diff --git a/boards/arm/common/stm32/Kconfig b/boards/arm/common/stm32/Kconfig
index 3e611724880..1c025f51839 100644
--- a/boards/arm/common/stm32/Kconfig
+++ b/boards/arm/common/stm32/Kconfig
@@ -69,3 +69,179 @@ config BOARD_STM32_HALL3PHASE_SAMPLES
default 10
endif # SENSORS_HALL3PHASE
+
+config STM32_ROMFS
+ bool "Automount baked-in ROMFS image"
+ default n
+ depends on FS_ROMFS
+ ---help---
+ Select STM32_ROMFS_IMAGEFILE, STM32_ROMFS_DEV_MINOR,
STM32_ROMFS_MOUNTPOINT
+
+config STM32_ROMFS_DEV_MINOR
+ int "Minor for the block device backing the data"
+ depends on STM32_ROMFS
+ default 64
+
+config STM32_ROMFS_MOUNTPOINT
+ string "Mountpoint of the custom romfs image"
+ depends on STM32_ROMFS
+ default "/rom"
+
+config STM32_ROMFS_IMAGEFILE
+ string "ROMFS image file to include into build"
+ depends on STM32_ROMFS
+ default "../../../rom.img"
+
+config STM32_SPI_TEST
+ bool "Enable SPI test"
+ default n
+ ---help---
+ Enable Spi test - initialize and configure SPI to send
+ STM32_SPI_TEST_MESSAGE text. The text is sent on the
+ selected SPI Buses with the configured parameters.
+ Note the CS lines will not be asserted.
+
+if STM32_SPI_TEST
+
+config STM32_SPI_TEST_MESSAGE
+ string "Text to Send on SPI Bus(es)"
+ default "Hello World"
+ depends on STM32_SPI_TEST
+ ---help---
+ Text to sent on SPI bus(es)
+
+config STM32_SPI1_TEST
+ bool "Test SPI bus 1"
+ default n
+ depends on STM32_SPI_TEST
+ ---help---
+ Enable Spi test - on SPI BUS 1
+
+if STM32_SPI1_TEST
+
+config STM32_SPI1_TEST_FREQ
+ int "SPI 1 Clock Freq in Hz"
+ default 1000000
+ depends on STM32_SPI1_TEST
+ ---help---
+ Sets SPI 1 Clock Freq
+
+config STM32_SPI1_TEST_BITS
+ int "SPI 1 number of bits"
+ default 8
+ depends on STM32_SPI1_TEST
+ ---help---
+ Sets SPI 1 bit length
+
+choice
+ prompt "SPI BUS 1 Clock Mode"
+ default STM32_SPI1_TEST_MODE3
+ ---help---
+ Sets SPI 1 clock mode
+
+config STM32_SPI1_TEST_MODE0
+ bool "CPOL=0 CPHA=0"
+
+config STM32_SPI1_TEST_MODE1
+ bool "CPOL=0 CPHA=1"
+
+config STM32_SPI1_TEST_MODE2
+ bool "CPOL=1 CPHA=0"
+
+config STM32_SPI1_TEST_MODE3
+ bool "CPOL=1 CPHA=1"
+
+endchoice # "SPI BUS 1 Clock Mode"
+
+endif # STM32_SPI1_TEST
+
+config STM32_SPI2_TEST
+ bool "Test SPI bus 2"
+ default n
+ depends on STM32_SPI_TEST
+ ---help---
+ Enable Spi test - on SPI BUS 2
+
+if STM32_SPI2_TEST
+
+config STM32_SPI2_TEST_FREQ
+ int "SPI 2 Clock Freq in Hz"
+ default 12000000
+ depends on STM32_SPI2_TEST
+ ---help---
+ Sets SPI 2 Clock Freq
+
+config STM32_SPI2_TEST_BITS
+ int "SPI 2 number of bits"
+ default 8
+ depends on STM32_SPI2_TEST
+ ---help---
+ Sets SPI 2 bit length
+
+choice
+ prompt "SPI BUS 2 Clock Mode"
+ default STM32_SPI2_TEST_MODE3
+ ---help---
+ Sets SPI 2 clock mode
+
+config STM32_SPI2_TEST_MODE0
+ bool "CPOL=0 CPHA=0"
+
+config STM32_SPI2_TEST_MODE1
+ bool "CPOL=0 CPHA=1"
+
+config STM32_SPI2_TEST_MODE2
+ bool "CPOL=1 CPHA=0"
+
+config STM32_SPI2_TEST_MODE3
+ bool "CPOL=1 CPHA=1"
+
+endchoice # "SPI BUS 2 Clock Mode"
+
+endif # STM32_SPI2_TEST
+
+config STM32_SPI3_TEST
+ bool "Test SPI bus 3"
+ default n
+ depends on STM32_SPI_TEST
+ ---help---
+ Enable Spi test - on SPI BUS 3
+
+if STM32_SPI3_TEST
+
+config STM32_SPI3_TEST_FREQ
+ int "SPI 3 Clock Freq in Hz"
+ default 40000000
+ depends on STM32_SPI3_TEST
+ ---help---
+ Sets SPI 3 Clock Freq
+
+config STM32_SPI3_TEST_BITS
+ int "SPI 3 number of bits"
+ default 8
+ depends on STM32_SPI3_TEST
+ ---help---
+ Sets SPI 3 bit length
+
+choice
+ prompt "SPI BUS 3 Clock Mode"
+ default STM32_SPI3_TEST_MODE3
+ ---help---
+ Sets SPI 3 clock mode
+
+config STM32_SPI3_TEST_MODE0
+ bool "CPOL=0 CPHA=0"
+
+config STM32_SPI3_TEST_MODE1
+ bool "CPOL=0 CPHA=1"
+
+config STM32_SPI3_TEST_MODE2
+ bool "CPOL=1 CPHA=0"
+
+config STM32_SPI3_TEST_MODE3
+ bool "CPOL=1 CPHA=1"
+
+endchoice # "SPI BUS 3 Clock Mode"
+
+endif # STM32_SPI3_TEST
+endif # STM32_SPI_TEST
diff --git a/boards/arm/stm32f7/common/include/stm32_bmi270.h
b/boards/arm/common/stm32/include/stm32_bmi270.h
similarity index 92%
rename from boards/arm/stm32f7/common/include/stm32_bmi270.h
rename to boards/arm/common/stm32/include/stm32_bmi270.h
index 50d4be70ae7..8b3d23c9a06 100644
--- a/boards/arm/stm32f7/common/include/stm32_bmi270.h
+++ b/boards/arm/common/stm32/include/stm32_bmi270.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/include/stm32_bmi270.h
+ * boards/arm/common/stm32/include/stm32_bmi270.h
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -20,8 +20,8 @@
*
****************************************************************************/
-#ifndef __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_BMI270_H
-#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_BMI270_H
+#ifndef __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_BMI270_H
+#define __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_BMI270_H
/****************************************************************************
* Included Files
@@ -79,4 +79,4 @@ int board_bmi270_initialize(int devno, int busno);
}
#endif
-#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_BMI270_H */
+#endif /* __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_BMI270_H */
diff --git a/boards/arm/stm32f7/common/include/stm32_can_setup.h
b/boards/arm/common/stm32/include/stm32_can_setup.h
similarity index 91%
rename from boards/arm/stm32f7/common/include/stm32_can_setup.h
rename to boards/arm/common/stm32/include/stm32_can_setup.h
index d0632d611df..9cd211d05b9 100644
--- a/boards/arm/stm32f7/common/include/stm32_can_setup.h
+++ b/boards/arm/common/stm32/include/stm32_can_setup.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/include/stm32_can_setup.h
+ * boards/arm/common/stm32/include/stm32_can_setup.h
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -20,8 +20,8 @@
*
****************************************************************************/
-#ifndef __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CAN_SETUP_H
-#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CAN_SETUP_H
+#ifndef __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_CAN_SETUP_H
+#define __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_CAN_SETUP_H
/****************************************************************************
* Included Files
@@ -70,4 +70,4 @@ int stm32_can_setup(void);
}
#endif
-#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CAN_SETUP_H */
+#endif /* __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_CAN_SETUP_H */
diff --git a/boards/arm/stm32f7/common/include/stm32_cansock_setup.h
b/boards/arm/common/stm32/include/stm32_cansock_setup.h
similarity index 90%
rename from boards/arm/stm32f7/common/include/stm32_cansock_setup.h
rename to boards/arm/common/stm32/include/stm32_cansock_setup.h
index 5dcab9fd7b5..77a41b66574 100644
--- a/boards/arm/stm32f7/common/include/stm32_cansock_setup.h
+++ b/boards/arm/common/stm32/include/stm32_cansock_setup.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/include/stm32_cansock_setup.h
+ * boards/arm/common/stm32/include/stm32_cansock_setup.h
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -20,8 +20,8 @@
*
****************************************************************************/
-#ifndef __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CANSOCK_SETUP_H
-#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CANSOCK_SETUP_H
+#ifndef __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_CANSOCK_SETUP_H
+#define __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_CANSOCK_SETUP_H
/****************************************************************************
* Included Files
@@ -70,4 +70,4 @@ int stm32_cansock_setup(void);
}
#endif
-#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CANSOCK_SETUP_H */
+#endif /* __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_CANSOCK_SETUP_H */
diff --git a/boards/arm/stm32f7/common/include/stm32_cs4344.h
b/boards/arm/common/stm32/include/stm32_cs4344.h
similarity index 92%
rename from boards/arm/stm32f7/common/include/stm32_cs4344.h
rename to boards/arm/common/stm32/include/stm32_cs4344.h
index 5050fb7345f..eb84188d038 100644
--- a/boards/arm/stm32f7/common/include/stm32_cs4344.h
+++ b/boards/arm/common/stm32/include/stm32_cs4344.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/include/stm32_cs4344.h
+ * boards/arm/common/stm32/include/stm32_cs4344.h
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -20,8 +20,8 @@
*
****************************************************************************/
-#ifndef __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CS4344_H
-#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CS4344_H
+#ifndef __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_CS4344_H
+#define __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_CS4344_H
/****************************************************************************
* Included Files
@@ -81,4 +81,4 @@ int board_cs4344_initialize(int devno, int port);
}
#endif
-#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CS4344_H */
+#endif /* __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_CS4344_H */
diff --git a/boards/arm/stm32f7/common/include/stm32_romfs.h
b/boards/arm/common/stm32/include/stm32_romfs.h
similarity index 93%
rename from boards/arm/stm32f7/common/include/stm32_romfs.h
rename to boards/arm/common/stm32/include/stm32_romfs.h
index 577b3a7f4ff..cbb982ebb5c 100644
--- a/boards/arm/stm32f7/common/include/stm32_romfs.h
+++ b/boards/arm/common/stm32/include/stm32_romfs.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/include/stm32_romfs.h
+ * boards/arm/common/stm32/include/stm32_romfs.h
*
* SPDX-License-Identifier: BSD-3-Clause
* SPDX-FileCopyrightText: 2017 Tomasz Wozniak. All rights reserved.
@@ -34,8 +34,8 @@
*
****************************************************************************/
-#ifndef __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_ROMFS_H
-#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_ROMFS_H
+#ifndef __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_ROMFS_H
+#define __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_ROMFS_H
/****************************************************************************
* Included Files
@@ -74,4 +74,4 @@ int stm32_romfs_initialize(void);
#endif /* CONFIG_STM32_ROMFS */
-#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_ROMFS_H */
+#endif /* __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_ROMFS_H */
diff --git a/boards/arm/stm32f7/common/include/stm32_spitest.h
b/boards/arm/common/stm32/include/stm32_spitest.h
similarity index 91%
rename from boards/arm/stm32f7/common/include/stm32_spitest.h
rename to boards/arm/common/stm32/include/stm32_spitest.h
index 860042f9469..29efe4880af 100644
--- a/boards/arm/stm32f7/common/include/stm32_spitest.h
+++ b/boards/arm/common/stm32/include/stm32_spitest.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/include/stm32_spitest.h
+ * boards/arm/common/stm32/include/stm32_spitest.h
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -20,8 +20,8 @@
*
****************************************************************************/
-#ifndef __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_SPITEST_H
-#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_SPITEST_H
+#ifndef __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_SPITEST_H
+#define __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_SPITEST_H
/****************************************************************************
* Included Files
@@ -73,4 +73,4 @@ int stm32_spidev_bus_test(void);
}
#endif
-#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_SPITEST_H */
+#endif /* __BOARDS_ARM_COMMON_STM32_INCLUDE_STM32_SPITEST_H */
diff --git a/boards/arm/common/stm32/src/CMakeLists.txt
b/boards/arm/common/stm32/src/CMakeLists.txt
index 1f9b3837368..7f557894370 100644
--- a/boards/arm/common/stm32/src/CMakeLists.txt
+++ b/boards/arm/common/stm32/src/CMakeLists.txt
@@ -180,4 +180,33 @@ if(CONFIG_INPUT_MPR121_KEYPAD)
list(APPEND SRCS stm32_mpr121.c)
endif()
+if(CONFIG_SENSORS_BMI270_I2C)
+ list(APPEND SRCS stm32_bmi270.c)
+endif()
+
+if(CONFIG_AUDIO_CS4344)
+ list(APPEND SRCS stm32_cs4344.c)
+endif()
+
+if(CONFIG_STM32_CAN)
+ if(CONFIG_STM32_CAN_CHARDRIVER)
+ list(APPEND SRCS stm32_can_setup.c)
+ endif()
+ if(CONFIG_STM32_CAN_SOCKET)
+ list(APPEND SRCS stm32_cansock_setup.c)
+ endif()
+endif()
+
+if(CONFIG_BOARDCTL_RESET)
+ list(APPEND SRCS stm32_reset.c)
+endif()
+
+if(CONFIG_STM32_ROMFS)
+ list(APPEND SRCS stm32_romfs_initialize.c)
+endif()
+
+if(CONFIG_STM32_SPI_TEST)
+ list(APPEND SRCS stm32_spitest.c)
+endif()
+
target_sources(board PRIVATE ${SRCS})
diff --git a/boards/arm/common/stm32/src/Make.defs
b/boards/arm/common/stm32/src/Make.defs
index 9470fe63aac..95482c11489 100644
--- a/boards/arm/common/stm32/src/Make.defs
+++ b/boards/arm/common/stm32/src/Make.defs
@@ -192,6 +192,35 @@ ifeq ($(CONFIG_INPUT_KMATRIX_I2C),y)
CSRCS += stm32_kmatrix_i2c.c
endif
+ifeq ($(CONFIG_SENSORS_BMI270_I2C),y)
+ CSRCS += stm32_bmi270.c
+endif
+
+ifeq ($(CONFIG_AUDIO_CS4344),y)
+ CSRCS += stm32_cs4344.c
+endif
+
+ifeq ($(CONFIG_STM32_CAN),y)
+ ifeq ($(CONFIG_STM32_CAN_CHARDRIVER),y)
+ CSRCS += stm32_can_setup.c
+ endif
+ ifeq ($(CONFIG_STM32_CAN_SOCKET),y)
+ CSRCS += stm32_cansock_setup.c
+ endif
+endif
+
+ifeq ($(CONFIG_BOARDCTL_RESET),y)
+ CSRCS += stm32_reset.c
+endif
+
+ifeq ($(CONFIG_STM32_ROMFS),y)
+ CSRCS += stm32_romfs_initialize.c
+endif
+
+ifeq ($(CONFIG_STM32_SPI_TEST),y)
+ CSRCS += stm32_spitest.c
+endif
+
DEPPATH += --dep-path $(STM32_BOARD_COMMON_DIR)$(DELIM)src
VPATH += :$(STM32_BOARD_COMMON_DIR)$(DELIM)src
CFLAGS += ${INCDIR_PREFIX}$(STM32_BOARD_COMMON_DIR)$(DELIM)include
diff --git a/boards/arm/stm32f7/common/src/stm32_bmi270.c
b/boards/arm/common/stm32/src/stm32_bmi270.c
similarity index 98%
rename from boards/arm/stm32f7/common/src/stm32_bmi270.c
rename to boards/arm/common/stm32/src/stm32_bmi270.c
index 8ebe848cb39..8c0ac8fcdc0 100644
--- a/boards/arm/stm32f7/common/src/stm32_bmi270.c
+++ b/boards/arm/common/stm32/src/stm32_bmi270.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/src/stm32_bmi270.c
+ * boards/arm/common/stm32/src/stm32_bmi270.c
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/boards/arm/stm32f7/common/src/stm32_can_setup.c
b/boards/arm/common/stm32/src/stm32_can_setup.c
similarity index 84%
rename from boards/arm/stm32f7/common/src/stm32_can_setup.c
rename to boards/arm/common/stm32/src/stm32_can_setup.c
index 2eedf06992e..2b3e3c476ee 100644
--- a/boards/arm/stm32f7/common/src/stm32_can_setup.c
+++ b/boards/arm/common/stm32/src/stm32_can_setup.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/src/stm32_can_setup.c
+ * boards/arm/common/stm32/src/stm32_can_setup.c
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -60,11 +60,10 @@
int stm32_can_setup(void)
{
-#if defined(CONFIG_STM32_CAN1)
struct can_dev_s *can;
int ret;
- /* Call stm32f7can_initialize() to get an instance of the CAN interface */
+ /* Register the first enabled CAN interface at "/dev/can0" */
can = stm32_caninitialize(CAN_PORT);
if (can == NULL)
@@ -73,8 +72,6 @@ int stm32_can_setup(void)
return -ENODEV;
}
- /* Register the CAN driver at "/dev/can0" */
-
ret = can_register("/dev/can0", can);
if (ret < 0)
{
@@ -82,35 +79,25 @@ int stm32_can_setup(void)
return ret;
}
- return OK;
-#endif
-
-#if defined(CONFIG_STM32_CAN2)
- struct can_dev_s *can;
- int ret;
-
- /* Call stm32f7can_initialize() to get an instance of the CAN interface */
+#if defined(CONFIG_STM32_CAN1) && defined(CONFIG_STM32_CAN2)
+ /* Both CAN1 and CAN2 are enabled: register CAN2 at "/dev/can1" */
- can = stm32_caninitialize(CAN_PORT);
+ can = stm32_caninitialize(2);
if (can == NULL)
{
canerr("ERROR: Failed to get CAN interface\n");
return -ENODEV;
}
- /* Register the CAN driver at "/dev/can1" */
-
ret = can_register("/dev/can1", can);
if (ret < 0)
{
canerr("ERROR: can_register failed: %d\n", ret);
return ret;
}
+#endif
return OK;
-#else
- return -ENODEV;
-#endif
}
#endif /* CONFIG_CAN */
diff --git a/boards/arm/stm32f7/common/src/stm32_cansock_setup.c
b/boards/arm/common/stm32/src/stm32_cansock_setup.c
similarity index 97%
rename from boards/arm/stm32f7/common/src/stm32_cansock_setup.c
rename to boards/arm/common/stm32/src/stm32_cansock_setup.c
index 58dbf738cfe..aad7a7df26d 100644
--- a/boards/arm/stm32f7/common/src/stm32_cansock_setup.c
+++ b/boards/arm/common/stm32/src/stm32_cansock_setup.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/src/stm32_cansock_setup.c
+ * boards/arm/common/stm32/src/stm32_cansock_setup.c
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/boards/arm/stm32f7/common/src/stm32_cs4344.c
b/boards/arm/common/stm32/src/stm32_cs4344.c
similarity index 99%
rename from boards/arm/stm32f7/common/src/stm32_cs4344.c
rename to boards/arm/common/stm32/src/stm32_cs4344.c
index 88debb7a9c5..64f8ee946a8 100644
--- a/boards/arm/stm32f7/common/src/stm32_cs4344.c
+++ b/boards/arm/common/stm32/src/stm32_cs4344.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/src/stm32_cs4344.c
+ * boards/arm/common/stm32/src/stm32_cs4344.c
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/boards/arm/stm32f7/common/src/stm32_reset.c
b/boards/arm/common/stm32/src/stm32_reset.c
similarity index 98%
rename from boards/arm/stm32f7/common/src/stm32_reset.c
rename to boards/arm/common/stm32/src/stm32_reset.c
index 1eaa28fe9c7..ea664e88615 100644
--- a/boards/arm/stm32f7/common/src/stm32_reset.c
+++ b/boards/arm/common/stm32/src/stm32_reset.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/src/stm32_reset.c
+ * boards/arm/common/stm32/src/stm32_reset.c
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/boards/arm/stm32f7/common/src/stm32_romfs_initialize.c
b/boards/arm/common/stm32/src/stm32_romfs_initialize.c
similarity index 98%
rename from boards/arm/stm32f7/common/src/stm32_romfs_initialize.c
rename to boards/arm/common/stm32/src/stm32_romfs_initialize.c
index 1d105e29b0e..37690d7c9c7 100644
--- a/boards/arm/stm32f7/common/src/stm32_romfs_initialize.c
+++ b/boards/arm/common/stm32/src/stm32_romfs_initialize.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/src/stm32_romfs_initialize.c
+ * boards/arm/common/stm32/src/stm32_romfs_initialize.c
*
* SPDX-License-Identifier: BSD-3-Clause
* SPDX-FileCopyrightText: Tomasz Wozniak. All rights reserved.
diff --git a/boards/arm/stm32f7/common/src/stm32_spitest.c
b/boards/arm/common/stm32/src/stm32_spitest.c
similarity index 99%
rename from boards/arm/stm32f7/common/src/stm32_spitest.c
rename to boards/arm/common/stm32/src/stm32_spitest.c
index 5ae8b71833a..d1e048bb7ca 100644
--- a/boards/arm/stm32f7/common/src/stm32_spitest.c
+++ b/boards/arm/common/stm32/src/stm32_spitest.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * boards/arm/stm32f7/common/src/stm32_spitest.c
+ * boards/arm/common/stm32/src/stm32_spitest.c
*
* SPDX-License-Identifier: Apache-2.0
*
diff --git a/boards/arm/stm32f7/common/CMakeLists.txt
b/boards/arm/stm32f7/common/CMakeLists.txt
index 91bb41fe7fe..35eb394831f 100644
--- a/boards/arm/stm32f7/common/CMakeLists.txt
+++ b/boards/arm/stm32f7/common/CMakeLists.txt
@@ -20,5 +20,6 @@
#
#
##############################################################################
-add_subdirectory(src)
-target_include_directories(board PRIVATE include)
+if(CONFIG_ARCH_BOARD_COMMON)
+ add_subdirectory(${NUTTX_DIR}/boards/arm/common/stm32 stm32_common)
+endif()
diff --git a/boards/arm/stm32f7/common/Kconfig
b/boards/arm/stm32f7/common/Kconfig
deleted file mode 100644
index 8be75fe6173..00000000000
--- a/boards/arm/stm32f7/common/Kconfig
+++ /dev/null
@@ -1,180 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see the file kconfig-language.txt in the NuttX tools repository.
-#
-
-config STM32_ROMFS
- bool "Automount baked-in ROMFS image"
- default n
- depends on FS_ROMFS
- ---help---
- Select STM32_ROMFS_IMAGEFILE, STM32_ROMFS_DEV_MINOR,
STM32_ROMFS_MOUNTPOINT
-
-config STM32_ROMFS_DEV_MINOR
- int "Minor for the block device backing the data"
- depends on STM32_ROMFS
- default 64
-
-config STM32_ROMFS_MOUNTPOINT
- string "Mountpoint of the custom romfs image"
- depends on STM32_ROMFS
- default "/rom"
-
-config STM32_ROMFS_IMAGEFILE
- string "ROMFS image file to include into build"
- depends on STM32_ROMFS
- default "../../../rom.img"
-
-config STM32_SPI_TEST
- bool "Enable SPI test"
- default n
- ---help---
- Enable Spi test - initialize and configure SPI to send
- STM32_SPI_TEST_MESSAGE text. The text is sent on the
- selected SPI Buses with the configured parameters.
- Note the CS lines will not be asserted.
-
-if STM32_SPI_TEST
-
-config STM32_SPI_TEST_MESSAGE
- string "Text to Send on SPI Bus(es)"
- default "Hello World"
- depends on STM32_SPI_TEST
- ---help---
- Text to sent on SPI bus(es)
-
-config STM32_SPI1_TEST
- bool "Test SPI bus 1"
- default n
- depends on STM32_SPI_TEST
- ---help---
- Enable Spi test - on SPI BUS 1
-
-if STM32_SPI1_TEST
-
-config STM32_SPI1_TEST_FREQ
- int "SPI 1 Clock Freq in Hz"
- default 1000000
- depends on STM32_SPI1_TEST
- ---help---
- Sets SPI 1 Clock Freq
-
-config STM32_SPI1_TEST_BITS
- int "SPI 1 number of bits"
- default 8
- depends on STM32_SPI1_TEST
- ---help---
- Sets SPI 1 bit length
-
-choice
- prompt "SPI BUS 1 Clock Mode"
- default STM32_SPI1_TEST_MODE3
- ---help---
- Sets SPI 1 clock mode
-
-config STM32_SPI1_TEST_MODE0
- bool "CPOL=0 CPHA=0"
-
-config STM32_SPI1_TEST_MODE1
- bool "CPOL=0 CPHA=1"
-
-config STM32_SPI1_TEST_MODE2
- bool "CPOL=1 CPHA=0"
-
-config STM32_SPI1_TEST_MODE3
- bool "CPOL=1 CPHA=1"
-
-endchoice # "SPI BUS 1 Clock Mode"
-
-endif # STM32_SPI1_TEST
-
-config STM32_SPI2_TEST
- bool "Test SPI bus 2"
- default n
- depends on STM32_SPI_TEST
- ---help---
- Enable Spi test - on SPI BUS 2
-
-if STM32_SPI2_TEST
-
-config STM32_SPI2_TEST_FREQ
- int "SPI 2 Clock Freq in Hz"
- default 12000000
- depends on STM32_SPI2_TEST
- ---help---
- Sets SPI 2 Clock Freq
-
-config STM32_SPI2_TEST_BITS
- int "SPI 2 number of bits"
- default 8
- depends on STM32_SPI2_TEST
- ---help---
- Sets SPI 2 bit length
-
-choice
- prompt "SPI BUS 2 Clock Mode"
- default STM32_SPI2_TEST_MODE3
- ---help---
- Sets SPI 2 clock mode
-
-config STM32_SPI2_TEST_MODE0
- bool "CPOL=0 CPHA=0"
-
-config STM32_SPI2_TEST_MODE1
- bool "CPOL=0 CPHA=1"
-
-config STM32_SPI2_TEST_MODE2
- bool "CPOL=1 CPHA=0"
-
-config STM32_SPI2_TEST_MODE3
- bool "CPOL=1 CPHA=1"
-
-endchoice # "SPI BUS 2 Clock Mode"
-
-endif # STM32_SPI2_TEST
-
-config STM32_SPI3_TEST
- bool "Test SPI bus 3"
- default n
- depends on STM32_SPI_TEST
- ---help---
- Enable Spi test - on SPI BUS 3
-
-if STM32_SPI3_TEST
-
-config STM32_SPI3_TEST_FREQ
- int "SPI 3 Clock Freq in Hz"
- default 40000000
- depends on STM32_SPI3_TEST
- ---help---
- Sets SPI 3 Clock Freq
-
-config STM32_SPI3_TEST_BITS
- int "SPI 3 number of bits"
- default 8
- depends on STM32_SPI3_TEST
- ---help---
- Sets SPI 3 bit length
-
-choice
- prompt "SPI BUS 3 Clock Mode"
- default STM32_SPI3_TEST_MODE3
- ---help---
- Sets SPI 3 clock mode
-
-config STM32_SPI3_TEST_MODE0
- bool "CPOL=0 CPHA=0"
-
-config STM32_SPI3_TEST_MODE1
- bool "CPOL=0 CPHA=1"
-
-config STM32_SPI3_TEST_MODE2
- bool "CPOL=1 CPHA=0"
-
-config STM32_SPI3_TEST_MODE3
- bool "CPOL=1 CPHA=1"
-
-endchoice # "SPI BUS 3 Clock Mode"
-
-endif # STM32_SPI3_TEST
-endif # STM32_SPI_TEST
diff --git a/boards/arm/stm32f7/common/Makefile
b/boards/arm/stm32f7/common/Makefile
index 7e0b3fe6cf5..76614a94d52 100644
--- a/boards/arm/stm32f7/common/Makefile
+++ b/boards/arm/stm32f7/common/Makefile
@@ -22,14 +22,18 @@
include $(TOPDIR)/Make.defs
+STM32_BOARD_COMMON_DIR :=
$(TOPDIR)$(DELIM)boards$(DELIM)arm$(DELIM)common$(DELIM)stm32
+STM32_COMMON_SRCDIR :=
$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)common$(DELIM)stm32
+
include board/Make.defs
-include src/Make.defs
+include $(STM32_BOARD_COMMON_DIR)$(DELIM)src$(DELIM)Make.defs
DEPPATH += --dep-path board
-DEPPATH += --dep-path src
include $(TOPDIR)/boards/Board.mk
ARCHSRCDIR = $(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src
BOARDDIR = $(ARCHSRCDIR)$(DELIM)board
CFLAGS += ${INCDIR_PREFIX}$(BOARDDIR)$(DELIM)include
+
+CFLAGS += ${INCDIR_PREFIX}$(STM32_COMMON_SRCDIR)
diff --git a/boards/arm/stm32f7/common/include/stm32_bh1750.h
b/boards/arm/stm32f7/common/include/stm32_bh1750.h
deleted file mode 100644
index 0b2dd373d22..00000000000
--- a/boards/arm/stm32f7/common/include/stm32_bh1750.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
- * boards/arm/stm32f7/common/include/stm32_bh1750.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_STM32F7_COMMON_INCLUDE_STM32_BH1750_H
-#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_BH1750_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-#ifdef __cplusplus
-#define EXTERN extern "C"
-extern "C"
-{
-#else
-#define EXTERN extern
-#endif
-
-/****************************************************************************
- * Inline Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_bh1750_initialize
- *
- * Description:
- * Initialize and register the BH1750FVI Ambient Light driver.
- *
- * Input Parameters:
- * devno - The device number, used to build the device path as /dev/lightN
- * busno - The I2C bus number
- *
- * Returned Value:
- * Zero (OK) on success; a negated errno value on failure.
- *
- ****************************************************************************/
-
-int board_bh1750_initialize(int devno, int busno);
-
-#undef EXTERN
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_BH1750_H */
diff --git a/boards/arm/stm32f7/common/src/CMakeLists.txt
b/boards/arm/stm32f7/common/src/CMakeLists.txt
deleted file mode 100644
index d4b612a0f4b..00000000000
--- a/boards/arm/stm32f7/common/src/CMakeLists.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-#
##############################################################################
-# boards/arm/stm32f7/common/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)
-
-if(CONFIG_SENSORS_BH1750FVI)
- list(APPEND SRCS stm32_bh1750.c)
-endif()
-
-if(CONFIG_SENSORS_BMI270_I2C)
- list(APPEND SRCS stm32_bmi270.c)
-endif()
-
-if(CONFIG_AUDIO_CS4344)
- list(APPEND SRCS stm32_cs4344.c)
-endif()
-
-if(CONFIG_STM32_CAN)
- if(CONFIG_STM32_CAN_CHARDRIVER)
- list(APPEND SRCS stm32_can_setup.c)
- endif()
- if(CONFIG_STM32_CAN_SOCKET)
- list(APPEND SRCS stm32_cansock_setup.c)
- endif()
-endif()
-
-if(CONFIG_STM32_ROMFS)
- list(APPEND SRCS stm32_romfs_initialize.c)
-endif()
-
-if(CONFIG_BOARDCTL_RESET)
- list(APPEND SRCS stm32_reset.c)
-endif()
-
-if(CONFIG_STM32_SPI_TEST)
- list(APPEND SRCS stm32_spitest.c)
-endif()
-
-target_sources(board PRIVATE ${SRCS})
diff --git a/boards/arm/stm32f7/common/src/Make.defs
b/boards/arm/stm32f7/common/src/Make.defs
deleted file mode 100644
index 0a4f96c20c4..00000000000
--- a/boards/arm/stm32f7/common/src/Make.defs
+++ /dev/null
@@ -1,62 +0,0 @@
-#############################################################################
-# boards/arm/stm32f7/common/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.
-#
-#############################################################################
-
-ifeq ($(CONFIG_ARCH_BOARD_COMMON),y)
-
-ifeq ($(CONFIG_SENSORS_BH1750FVI),y)
- CSRCS += stm32_bh1750.c
-endif
-
-ifeq ($(CONFIG_SENSORS_BMI270_I2C),y)
- CSRCS += stm32_bmi270.c
-endif
-
-ifeq ($(CONFIG_AUDIO_CS4344),y)
- CSRCS += stm32_cs4344.c
-endif
-
-ifeq ($(CONFIG_STM32_CAN),y)
-ifeq ($(CONFIG_STM32_CAN_CHARDRIVER),y)
-CSRCS += stm32_can_setup.c
-endif
-ifeq ($(CONFIG_STM32_CAN_SOCKET),y)
-CSRCS += stm32_cansock_setup.c
-endif
-endif
-
-ifeq ($(CONFIG_STM32_ROMFS),y)
-CSRCS += stm32_romfs_initialize.c
-endif
-
-ifeq ($(CONFIG_BOARDCTL_RESET),y)
-CSRCS += stm32_reset.c
-endif
-
-ifeq ($(CONFIG_STM32_SPI_TEST),y)
-CSRCS += stm32_spitest.c
-endif
-
-DEPPATH += --dep-path src
-VPATH += :src
-CFLAGS +=
${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)src
-
-endif
diff --git a/boards/arm/stm32f7/common/src/stm32_bh1750.c
b/boards/arm/stm32f7/common/src/stm32_bh1750.c
deleted file mode 100644
index 7267173ec41..00000000000
--- a/boards/arm/stm32f7/common/src/stm32_bh1750.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
- * boards/arm/stm32f7/common/src/stm32_bh1750.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 <nuttx/config.h>
-
-#include <errno.h>
-#include <nuttx/debug.h>
-#include <stdio.h>
-
-#include <nuttx/spi/spi.h>
-#include <arch/board/board.h>
-#include <nuttx/sensors/bh1750fvi.h>
-
-#include "stm32_i2c.h"
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: stm32_bh1750initialize
- *
- * Description:
- * Initialize and register the BH1750FVI Ambient Light driver.
- *
- * Input Parameters:
- * devno - The device number, used to build the device path as /dev/lightN
- * busno - The I2C bus number
- *
- * Returned Value:
- * Zero (OK) on success; a negated errno value on failure.
- *
- ****************************************************************************/
-
-int board_bh1750_initialize(int devno, int busno)
-{
- struct i2c_master_s *i2c;
- char devpath[16];
- int ret;
-
- sninfo("Initializing BH1750FVI!\n");
-
- /* Initialize I2C */
-
- i2c = stm32_i2cbus_initialize(busno);
- if (!i2c)
- {
- return -ENODEV;
- }
-
- /* Then register the ambient light sensor */
-
- snprintf(devpath, sizeof(devpath), "/dev/light%d", devno);
- ret = bh1750fvi_register(devpath, i2c, BH1750FVI_I2C_ADDR);
- if (ret < 0)
- {
- snerr("ERROR: Error registering BH1750FVI\n");
- }
-
- return ret;
-}
-