Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduction of STM32WB0 series #78013

Merged

Conversation

mathieuchopstm
Copy link
Collaborator

This PR contains the basic groundwork needed to support the STM32WB0 series in Zephyr:

  • Bindings for WB09-specific RCC / GPIO INTC / flash controller
  • Base DTSI for all SoCs in the series
  • SoC support code
  • Clock control driver
  • GPIO interrupt controller driver
  • Flash controller driver
  • Compatibility patches for GPIO driver
  • Support for two Nucleo-64 boards
    • Nucleo-WB05KZ
    • Nucleo-WB09KE

This PR does not need to bring any modification to the STM32 UART driver, as the IP in STM32WB0 is compatible with that of other series.

@zephyrbot
Copy link
Collaborator

zephyrbot commented Sep 4, 2024

The following west manifest projects have been modified in this Pull Request:

Name Old Revision New Revision Diff
hal_stm32 zephyrproject-rtos/hal_stm32@4c1adf8 zephyrproject-rtos/hal_stm32@1e6116b zephyrproject-rtos/[email protected]

Note: This message is automatically posted and updated by the Manifest GitHub Action.

@zephyrbot zephyrbot added manifest manifest-hal_stm32 DNM This PR should not be merged (Do Not Merge) labels Sep 4, 2024
@erwango
Copy link
Member

erwango commented Sep 5, 2024

See zephyrproject-rtos/hal_stm32#218 for the PAGESIZE issue

Copy link
Member

@erwango erwango left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work!
I skipped over the flash driver and boards for this first iteration.

soc/st/stm32/Kconfig Outdated Show resolved Hide resolved
soc/st/stm32/Kconfig Outdated Show resolved Hide resolved
soc/st/stm32/Kconfig Outdated Show resolved Hide resolved
soc/st/stm32/stm32wb0x/Kconfig Outdated Show resolved Hide resolved
soc/st/stm32/stm32wb0x/Kconfig Outdated Show resolved Hide resolved
drivers/gpio/gpio_stm32.c Outdated Show resolved Hide resolved
dts/arm/st/wb0/stm32wb09.dtsi Outdated Show resolved Hide resolved
dts/arm/st/wb0/stm32wb0.dtsi Outdated Show resolved Hide resolved
boards/st/nucleo_wb05kz/nucleo_wb05kz_defconfig Outdated Show resolved Hide resolved
boards/st/nucleo_wb05kz/nucleo_wb05kz.yaml Show resolved Hide resolved
@erwango
Copy link
Member

erwango commented Sep 10, 2024

@nashif,, another question on assignment

Area matches: {<Area STM32 Platforms>: 49, <Area Drivers: Clock control>: 3, <Area Interrupt Handling>: 2, <Area Drivers: Flash>: 1, <Area Drivers: HW Info>: 1, <Area Drivers: Reset>: 1, <Area West project: hal_stm32>: 1, <Area Drivers: GPIO>: 0, <Area Power management>: 0}
labels: {'area: GPIO', 'area: Power Management', 'area: Flash', 'area: HWINFO', 'area: Interrupt Controller', 'area: Clock control', 'platform: STM32'}
collab: ['erwango', 'FRASTM', 'gautierg-st', 'GeorgeCGV', 'marwaiehm-st', 'mathieuchopstm', 'nordic-krch', 'de-nordic', 'alexanderwachter', 'decsny', 'henrikbrixandersen', 'mnkp', 'ceolin', 'nashif', 'teburd', 'tmleman', 'JordanYates']
Submitted by: mathieuchopstm
candidate maintainers: {'erwango': 50, 'nordic-krch': 3, 'de-nordic': 1, 'alexanderwachter': 1, 'ceolin': 0}

Not sure why I wasn't picked up here ?

erwango
erwango previously approved these changes Sep 10, 2024
@nashif
Copy link
Member

nashif commented Sep 10, 2024

Not sure why I wasn't picked up here ?

general areas are being changed, general areas have priority over platform areas. To solve this issue, better file listing is needed for those areas, so that we you change something in Clock Control STM driver, it is seen as a platform change and not a subsystem change.

gautierg-st
gautierg-st previously approved these changes Sep 11, 2024
boards/st/nucleo_wb05kz/doc/img/nucleo_wb05kz.jpg Outdated Show resolved Hide resolved
boards/st/nucleo_wb05kz/doc/index.rst Outdated Show resolved Hide resolved
boards/st/nucleo_wb05kz/doc/index.rst Outdated Show resolved Hide resolved
boards/st/nucleo_wb09ke/doc/index.rst Outdated Show resolved Hide resolved
drivers/clock_control/Kconfig.stm32 Show resolved Hide resolved
Add control driver for STM32WB0 series, with support for all clock sources.

Signed-off-by: Mathieu Choplain <[email protected]>
Adds a driver for the STM32WB0 series GPIO interrupt controller.
This driver implements the STM32 GPIO INTC API, along with an extension
function used to check if a specific line is available on current board.

This also extends the GPIO INTC API to support level-sensitive interrupts,
as this feature is available on STM32WB0.

Signed-off-by: Mathieu Choplain <[email protected]>
Adds support for the STM32WB0 series in the existing STM32 GPIO driver.

Signed-off-by: Mathieu Choplain <[email protected]>
Adds a basic driver for the STM32WB0 flash controller (read/erase/write).
Extended operations are not supported by this driver.

Signed-off-by: Mathieu Choplain <[email protected]>
The existing hwinfo driver for STM32 is incompatible with STM32WB0 series.
Prevent compiling the driver if the target's series is STM32WB0.
This fixes the build failure on the drivers.hwinfo.api test.

Signed-off-by: Mathieu Choplain <[email protected]>
Adds Device Tree include files for all MCUs in the STM32WB0 series.
These DTSI files only contain the supported peripherals for now.

Signed-off-by: Mathieu Choplain <[email protected]>
Add support for the STMicroelectronics Nucleo-WB05KZ board.

Signed-off-by: Mathieu Choplain <[email protected]>
This commit adds support for the ST Nucleo-WB09KE board.

Signed-off-by: Mathieu Choplain <[email protected]>
@erwango
Copy link
Member

erwango commented Sep 11, 2024

@nordicjm PTAL

@carlescufi carlescufi merged commit 30abd59 into zephyrproject-rtos:main Sep 12, 2024
26 checks passed
@mathieuchopstm mathieuchopstm deleted the stm32wb0_series_introduction branch October 15, 2024 08:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.