34 lines
1.4 KiB
Plaintext
34 lines
1.4 KiB
Plaintext
# Copyright (c) 2023 Antmicro <www.antmicro.com>
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config GECKO_BURTC_TIMER
|
|
bool "SiLabs Gecko BURTC system clock driver"
|
|
depends on SOC_FAMILY_SILABS_S2
|
|
depends on DT_HAS_SILABS_GECKO_BURTC_ENABLED
|
|
select SOC_GECKO_BURTC
|
|
select TICKLESS_CAPABLE
|
|
select TIMER_READS_ITS_FREQUENCY_AT_RUNTIME
|
|
help
|
|
If you enable this, BURTC will be used to provide hw_cycles and
|
|
kernel ticks instead of Cortex-M SysTick. You need this for system
|
|
to be able to keep track of time and wake up from EM2 & EM3 sleep
|
|
states.
|
|
|
|
NOTE:
|
|
Using BURTC instead of SysTick has a large impact on kernel timing
|
|
precision.
|
|
1. You won't be able to use the usual 0.1ms-granularity tickless
|
|
scheduling. Kernel tick duration should be at least 6 BURTC clock
|
|
cycles, that is ~183 us @ 32768 Hz (LFXO, LFRCO) or
|
|
~6 ms @ 1000 Hz (ULFRCO).
|
|
2. In general, accuracy of real-time scheduling by kernel will be
|
|
degraded: all timeout-based facilities, such as timers, delayable
|
|
work, k_sleep, will issue thread wake ups less precisely than when
|
|
using SysTick timer.
|
|
3. hw_cycles granularity will be equal to 1 BURTC clock, that is
|
|
~31 us @ 32768 Hz or ~1 ms @ 1000 Hz. This reduces timing
|
|
precision of all code which relies on cycles API, e.g.
|
|
k_cycle_get_32() and similar functions.
|
|
|
|
If unsure, say 'N'.
|