# Copyright (c) 2023 Antmicro # SPDX-License-Identifier: Apache-2.0 config GECKO_BURTC_TIMER bool "SiLabs Gecko BURTC system clock driver" depends on SOC_GECKO_SERIES2 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'.