blob: f8f89740bee366abfbb4a6bb827dd60488ba3094 [file] [log] [blame]
# STM32 LPTIM configuration options
# Copyright (c) 2019 STMicroelectronics
# SPDX-License-Identifier: Apache-2.0
DT_CHOSEN_STDBY_TIMER := st,lptim-stdby-timer
menuconfig STM32_LPTIM_TIMER
bool "STM32 Low Power Timer [EXPERIMENTAL]"
default y
depends on DT_HAS_ST_STM32_LPTIM_ENABLED
depends on CLOCK_CONTROL && PM
select TICKLESS_CAPABLE
select EXPERIMENTAL
help
This module implements a kernel device driver for the LowPower Timer
and provides the standard "system clock driver" interfaces.
if STM32_LPTIM_TIMER
choice STM32_LPTIM_CLOCK
prompt "LPTIM clock value configuration"
help
This option is deprecated and configuration of LPTIM domain clock
using devicetree should be preferred.
config STM32_LPTIM_CLOCK_LSI
bool "LSI"
help
Use LSI as LPTIM clock
config STM32_LPTIM_CLOCK_LSE
bool "LSE"
help
Use LSE as LPTIM clock
endchoice
config STM32_LPTIM_CLOCK
int
default 32768 if STM32_LPTIM_CLOCK_LSE
default 32000 if STM32_LPTIM_CLOCK_LSI
config STM32_LPTIM_TIMEBASE
hex "LPTIM AutoReload value"
default 0xFFFF if STM32_LPTIM_CLOCK_LSE
default 0xF9FF if STM32_LPTIM_CLOCK_LSI
config STM32_LPTIM_TICK_FREQ_RATIO_OVERRIDE
bool "Override tick to freq ratio check"
default y if ZTEST
help
For LPTIM configuration, a specific tick freq is advised
depending on LPTIM input clock:
- LSI(32KHz): 4000 ticks/sec
- LSE(32678): 4096 ticks/sec
To prevent misconfigurations, a dedicated check is implemented
in the driver.
This options allows to override this check
config STM32_LPTIM_STDBY_TIMER
bool
default $(dt_chosen_enabled,$(DT_CHOSEN_STDBY_TIMER))
depends on COUNTER
depends on TICKLESS_KERNEL
select EXPERIMENTAL
help
Use an additional timer while entering Standby mode.
There are chips e.g. STM32WBAX family that use LPTIM as a system timer,
but LPTIM is not clocked in standby mode. These chips usually have
another timer that is not stopped, but it has lower frequency e.g.
RTC, thus it can't be used as a main system timer.
Same approach is used on STM32U5 and STOP3 mode.
Use the Standby timer for timeout (wakeup) when the system is entering
Standby state.
The chosen Standby timer node has to support setting alarm from the
counter API.
endif # STM32_LPTIM_TIMER