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