# Copyright (c) 2014-2015 Wind River Systems, Inc. # Copyright (c) 2016 Cadence Design Systems, Inc. # Copyright (c) 2019 Intel Corp. # SPDX-License-Identifier: Apache-2.0 config CORTEX_M_SYSTICK bool "Cortex-M SYSTICK timer" depends on CPU_CORTEX_M_HAS_SYSTICK default y depends on DT_HAS_ARM_ARMV6M_SYSTICK_ENABLED || \ DT_HAS_ARM_ARMV7M_SYSTICK_ENABLED || \ DT_HAS_ARM_ARMV8M_SYSTICK_ENABLED || \ DT_HAS_ARM_ARMV8_1M_SYSTICK_ENABLED select TICKLESS_CAPABLE select SYSTEM_TIMER_HAS_DISABLE_SUPPORT select CORTEX_M_SYSTICK_INSTALL_ISR help This module implements a kernel device driver for the Cortex-M processor SYSTICK timer and provides the standard "system clock driver" interfaces. config CORTEX_M_SYSTICK_INSTALL_ISR bool depends on CPU_CORTEX_M_HAS_SYSTICK help This option should be selected by SysTick-based drivers so that the sys_clock_isr() function is installed. config CORTEX_M_SYSTICK_64BIT_CYCLE_COUNTER bool "Cortex-M SYSTICK timer with sys_clock_cycle_get_64() support" depends on CORTEX_M_SYSTICK default y if (SYS_CLOCK_HW_CYCLES_PER_SEC > 60000000) select TIMER_HAS_64BIT_CYCLE_COUNTER help This driver, due to its limited 24-bits hardware counter, is already tracking a separate cycle count in software. This option make that count a 64-bits value to support sys_clock_cycle_get_64(). This is cheap to do as expensive math operations (i.e. divisions) are performed only on counter interval values that always fit in 32 bits. This is set to y by default when the hardware clock is fast enough to wrap sys_clock_cycle_get_32() in about a minute or less.