blob: 99e5a6cd68b26dec5c524a60256d1c916fc3183b [file] [log] [blame]
#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
if ARCH_CHIP_STM32WL5
comment "STM32WL5 Configuration Options"
choice
prompt "STM32 WL5 Chip Selection"
default ARCH_CHIP_STM32WL55JC_CPU1
depends on ARCH_CHIP_STM32WL5
config ARCH_CHIP_STM32WL55JC_CPU1
bool "STM32WL55JC (cpu1)"
select STM32WL5_STM32WL5XXX_CPU1
select STM32WL5_STM32WL5XXX
select STM32WL5_FLASH_CONFIG_C
---help---
STM32 WL5 Cortex M4 (cpu1), 256kiB FLASH, 64kiB SRAM
config ARCH_CHIP_STM32WL55JC_CPU2
bool "STM32WL55JC (cpu2)"
select STM32WL5_STM32WL5XXX_CPU2
select STM32WL5_STM32WL5XXX
select STM32WL5_FLASH_CONFIG_C
---help---
STM32 WL5 Cortex M0 (cpu2), 256kiB FLASH, 64kiB SRAM
endchoice # STM32 WL5 Chip Selection
# Chip product lines
config STM32WL5_STM32WL5XXX
bool
config STM32WL5_STM32WL5XXX_CPU1
bool
default y
select STM32WL5_HAVE_USART1
select STM32WL5_HAVE_USART2
select STM32WL5_HAVE_LPUART1
select STM32WL5_HAVE_SPI1
select STM32WL5_HAVE_SPI2S2
comment "STM32WL5 Peripherals"
menu "STM32WL5 Peripheral Support"
choice
prompt "Override Flash Size Designator"
depends on ARCH_CHIP_STM32WL5
default STM32WL5_FLASH_OVERRIDE_DEFAULT
---help---
STM32WL5 series parts numbering (sans the package type) ends with a letter
that designates the FLASH size.
Designator Size in KiB
8 64
B 128
C 256
E 512
G 1024
I 2048
This configuration option defaults to using the configuration based on that designator
or the default smaller size if there is no last character designator is present in the
STM32 Chip Selection.
Examples:
If the STM32WL55JC is chosen, the Flash configuration would be 'C', if a variant of
the part with a 1024 KiB Flash is released in the future one could simply select
the 'G' designator here.
If an STM32WL5xxx Series parts is chosen the default Flash configuration will be set
herein and can be changed.
config STM32WL5_FLASH_OVERRIDE_DEFAULT
bool "Default"
config STM32WL5_FLASH_OVERRIDE_8
bool "8 64 KB"
config STM32WL5_FLASH_OVERRIDE_B
bool "B 128 KB"
config STM32WL5_FLASH_OVERRIDE_C
bool "C 256 KB"
config STM32WL5_FLASH_OVERRIDE_E
bool "E 512 KB"
config STM32WL5_FLASH_OVERRIDE_G
bool "G 1024 KB"
endchoice # "Override Flash Size Designator"
# Flash configurations
config STM32WL5_FLASH_CONFIG_8
bool
default n
config STM32WL5_FLASH_CONFIG_B
bool
default n
config STM32WL5_FLASH_CONFIG_C
bool
default n
config STM32WL5_FLASH_CONFIG_E
bool
default n
config STM32WL5_FLASH_CONFIG_G
bool
default n
# These "hidden" settings determine whether a peripheral option is available
# for the selected MCU
config STM32WL5_HAVE_USART1
bool
default n
config STM32WL5_HAVE_USART2
bool
default n
config STM32WL5_HAVE_LPUART1
bool
default n
config STM32WL5_HAVE_SPI1
bool
default n
config STM32WL5_HAVE_SPI2S2
bool
default n
# These "hidden" settings are the OR of individual peripheral selections
# indicating that the general capability is required.
config STM32WL5_USART
bool
default n
config STM32WL5_SPI
bool
default n
config STM32WL5_SPI_DMA
bool
default n
# These are the peripheral selections proper
comment "APB1 Peripherals"
config STM32WL5_USART2
bool "USART2"
default n
depends on STM32WL5_HAVE_USART2
select ARCH_HAVE_SERIAL_TERMIOS
select STM32WL5_USART
config STM32WL5_LPUART1
bool "LPUART1"
default n
depends on STM32WL5_HAVE_LPUART1
select ARCH_HAVE_SERIAL_TERMIOS
select STM32WL5_USART
config STM32WL5_SPI2S2
bool "SPI2S2"
default n
depends on STM32WL5_HAVE_SPI2S2
select STM32WL5_SPI
comment "APB2 Peripherals"
config STM32WL5_SYSCFG
bool "SYSCFG"
default y
config STM32WL5_USART1
bool "USART1"
default n
depends on STM32WL5_HAVE_USART1
select ARCH_HAVE_SERIAL_TERMIOS
select STM32WL5_USART
config STM32WL5_SPI1
bool "SPI1"
default n
depends on STM32WL5_HAVE_SPI1
select STM32WL5_SPI
comment "AHB3 Peripherals"
config STM32WL5_IPCC
bool "IPCC"
select IPCC
default n
---help---
IPCC - Inter Processor Communication Controller. A very simple
character device stream driver to exchange data between
CM0 and CM4.
endmenu # STM32WL5 Peripheral Support
config STM32WL5_SERIALDRIVER
bool
menu "[LP]U[S]ART Configuration"
depends on STM32WL5_USART
choice
prompt "USART1 Driver Configuration"
default STM32WL5_USART1_SERIALDRIVER
depends on STM32WL5_USART1
config STM32WL5_USART1_SERIALDRIVER
bool "Standard serial driver"
select USART1_SERIALDRIVER
select STM32WL5_SERIALDRIVER
endchoice # USART1 Driver Configuration
choice
prompt "USART2 Driver Configuration"
default STM32WL5_USART2_SERIALDRIVER
depends on STM32WL5_USART2
config STM32WL5_USART2_SERIALDRIVER
bool "Standard serial driver"
select USART2_SERIALDRIVER
select STM32WL5_SERIALDRIVER
endchoice # USART2 Driver Configuration
choice
prompt "LPUART1 Driver Configuration"
default STM32WL5_LPUART1_SERIALDRIVER
depends on STM32WL5_LPUART1
config STM32WL5_LPUART1_SERIALDRIVER
bool "Standard serial driver"
select LPUART1_SERIALDRIVER
select STM32WL5_SERIALDRIVER
endchoice # LPUART1 Driver Configuration
endmenu # [LP]U[S]ART Configuration
menu "SPI Configuration"
depends on STM32WL5_SPI
config STM32WL5_SPI_INTERRUPTS
bool "Interrupt driver SPI"
default n
---help---
Select to enable interrupt driven SPI support. Non-interrupt-driven,
poll-waiting is recommended if the interrupt rate would be to high in
the interrupt driven case.
config STM32WL5_SPI1_DMA
bool "SPI1 DMA"
default n
depends on STM32WL5_SPI1 && !STM32WL5_SPI_INTERRUPT
select STM32WL5_SPI_DMA
---help---
Use DMA to improve SPI1 transfer performance. Cannot be used with STM32WL5_SPI_INTERRUPT.
config STM32WL5_SPI1_DMA_BUFFER
int "SPI1 DMA buffer size"
default 0
depends on STM32WL5_SPI1_DMA
---help---
Add a properly aligned DMA buffer for RX and TX DMA for SPI1.
config STM32WL5_SPI_DMATHRESHOLD
int "SPI DMA threshold"
default 4
depends on STM32WL5_SPI_DMA
---help---
When SPI DMA is enabled, small DMA transfers will still be performed
by polling logic. But we need a threshold value to determine what
is small.
config STM32WL5_SPI2S2_DMA
bool "SPI2S2 DMA"
default n
depends on STM32WL5_SPI2 && !STM32WL5_SPI_INTERRUPT
select STM32WL5_SPI_DMA
---help---
Use DMA to improve SPI2S2 transfer performance. Cannot be used with STM32WL5_SPI_INTERRUPT.
config STM32WL5_SPI2S2_DMA_BUFFER
int "SPI2S2 DMA buffer size"
default 0
depends on STM32WL5_SPI2S2_DMA
---help---
Add a properly aligned DMA buffer for RX and TX DMA for SPI2S2.
endmenu # SPI Configuration
menu "IPCC Configuration"
depends on STM32WL5_IPCC
config STM32WL5_IPCC_CHAN1_RX_SIZE
int "Channel 1 RX size"
default 256
---help---
Size of the receive buffer. Another CPU will write to this
buffer and currently running CPU will read from it.
config STM32WL5_IPCC_CHAN1_TX_SIZE
int "Channel 1 TX size"
default 256
---help---
Size of the send buffer. Another CPU will read from this
buffer and currently running CPU will write to it.
config STM32WL5_IPCC_CHAN2
bool "Enable channel 2"
default n
if STM32WL5_IPCC_CHAN2
config STM32WL5_IPCC_CHAN2_RX_SIZE
int "Channel 2 RX size"
default 256
config STM32WL5_IPCC_CHAN2_TX_SIZE
int "Channel 2 TX size"
default 256
config STM32WL5_IPCC_CHAN3
bool "Enable channel 3"
default n
if STM32WL5_IPCC_CHAN3
config STM32WL5_IPCC_CHAN3_RX_SIZE
int "Channel 3 RX size"
default 256
config STM32WL5_IPCC_CHAN3_TX_SIZE
int "Channel 3 TX size"
default 256
config STM32WL5_IPCC_CHAN4
bool "Enable channel 4"
default n
if STM32WL5_IPCC_CHAN4
config STM32WL5_IPCC_CHAN4_RX_SIZE
int "Channel 4 RX size"
default 256
config STM32WL5_IPCC_CHAN4_TX_SIZE
int "Channel 4 TX size"
default 256
config STM32WL5_IPCC_CHAN5
bool "Enable channel 5"
default n
if STM32WL5_IPCC_CHAN5
config STM32WL5_IPCC_CHAN5_RX_SIZE
int "Channel 5 RX size"
default 256
config STM32WL5_IPCC_CHAN5_TX_SIZE
int "Channel 5 TX size"
default 256
config STM32WL5_IPCC_CHAN6
bool "Enable channel 6"
default n
if STM32WL5_IPCC_CHAN6
config STM32WL5_IPCC_CHAN6_RX_SIZE
int "Channel 6 RX size"
default 256
config STM32WL5_IPCC_CHAN6_TX_SIZE
int "Channel 6 TX size"
default 256
endif # STM32WL5_IPCC_CHAN2
endif # STM32WL5_IPCC_CHAN3
endif # STM32WL5_IPCC_CHAN4
endif # STM32WL5_IPCC_CHAN5
endif # STM32WL5_IPCC_CHAN6
endmenu # IPCC Configuration
endif # ARCH_CHIP_STM32WL5