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