# 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 RISCV_MACHINE_TIMER
	bool "RISCV Machine Timer"
	default y
	depends on DT_HAS_ANDESTECH_MACHINE_TIMER_ENABLED || \
		   DT_HAS_NEORV32_MACHINE_TIMER_ENABLED || \
		   DT_HAS_NUCLEI_SYSTIMER_ENABLED || \
		   DT_HAS_SIFIVE_CLINT0_ENABLED || \
		   DT_HAS_TELINK_MACHINE_TIMER_ENABLED
	select TICKLESS_CAPABLE
	select TIMER_HAS_64BIT_CYCLE_COUNTER
	help
	  This module implements a kernel device driver for the generic RISCV machine
	  timer driver. It provides the standard "system clock driver" interfaces.

config RISCV_MACHINE_TIMER_SYSTEM_CLOCK_DIVIDER
	int
	default 0
	help
	  Specifies the division ratio of the system clock supplied to the Machine Timer.

	  A clock obtained by dividing the system clock by a value of [2^N] is
	  supplied to the timer. Where N is this parameter's value.
	  When N=2, it is divided by 4, and when N=5, it is divided by 32.
	  Default case is N=0, this means use system clock as machine timer clock.
	  It is normal configuration for RISC-V machine clock.

	  This parameter usually depends on the hardware configuration.
	  The division ratio should define in devicetree,
	  and it is desirable usage that references it with using a function such as
	  dt_node_int_prop_int from Kconfig. (Tune in the conf file is not preferable.)

config RISCV_MACHINE_TIMER_MIN_DELAY
	int
	default 100
	help
	  Specifies the minimum number of machine cycles before the RISC-V machine
	  time compare register is allowed to be updated by the RISC-V machine timer
	  driver.
