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