# 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. if RISCV_MACHINE_TIMER 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. endif