| # 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. |