blob: 159d8bdff0038501cb79301b5be43d44506e7652 [file] [log] [blame]
# Copyright (c) 2020, STMicroelectronics
# SPDX-License-Identifier: Apache-2.0
description: |
STM32 lptim : low power timer
The lptim node to be used for counting ticks during lowpower modes
must be named stm32_lp_tick_source in the DTS, as follows:
stm32_lp_tick_source: &lptim1 {
status = "okay";
}
compatible: "st,stm32-lptim"
include:
- name: st,stm32-timers.yaml
property-blocklist:
# 'resets' property is not supported yet
- resets
- st,prescaler
- st,countermode
properties:
st,prescaler:
type: int
default: 1
description: |
Clock divider at the input of the lptimer clock, default reset value is 'not divided'.
Prescaler allows to achieve higher LPTIM timeout (up to 256s when lptim clocked by LSE)
and consequently higher core sleep durations, but impacts the tick precision.
To be used with caution.
CONFIG_SYS_CLOCK_TICKS_PER_SEC could be used to tune tick duration and gain precision,
at kernel timing granularity cost.
For example, when LPTIM is clocked by the LSE (32768Hz) and st,prescaler = <32>:
LPTIM global timeout is 64 seconds with an increment of 0.97 ms.
Using CONFIG_SYS_CLOCK_TICKS_PER_SEC = 4096, tick = 0.24 ms, LPTIM precision is 4 ticks.
Using CONFIG_SYS_CLOCK_TICKS_PER_SEC = 1024, tick = 0.97 ms, LPTIM precision is 1 ticks.
enum:
- 1
- 2
- 4
- 8
- 16
- 32
- 64
- 128
st,timeout:
type: int
description: |
Gives the LPTIM an exact counting value (s) for timeout expiration.
Valid range is [1, 256] and should be consistent with st,prescaler
pre-defined setting. If not, an error is raised.