| # Kconfig - timer driver configuration options |
| |
| # |
| # Copyright (c) 2014-2015 Wind River Systems, Inc. |
| # Copyright (c) 2016 Cadence Design Systems, Inc. |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| # |
| |
| |
| menu "Timer Drivers" |
| |
| config HPET_TIMER |
| bool "HPET timer" |
| default n |
| depends on X86 |
| select IOAPIC |
| select LOAPIC |
| select TIMER_READS_ITS_FREQUENCY_AT_RUNTIME |
| help |
| This option selects High Precision Event Timer (HPET) as a |
| system timer. |
| |
| config HPET_TIMER_LEGACY_EMULATION |
| bool "HPET timer legacy emulation mode" |
| default n |
| depends on HPET_TIMER |
| help |
| This option switches HPET to legacy emulation mode. |
| In this mode 8254 PIT is disabled, HPET timer0 is connected |
| to IOAPIC IRQ2, timer1 -- to IOAPIC IRQ8. |
| |
| config HPET_TIMER_DEBUG |
| bool "Enable HPET debug output" |
| default n |
| depends on HPET_TIMER && PRINTK |
| help |
| This option enables HPET debugging output. |
| |
| config HPET_TIMER_BASE_ADDRESS |
| hex "HPET Base Address" |
| default 0xFED00000 |
| depends on HPET_TIMER |
| help |
| This options specifies the base address of the HPET timer device. |
| |
| config HPET_TIMER_IRQ |
| int "HPET Timer IRQ" |
| default 20 |
| depends on HPET_TIMER |
| help |
| This option specifies the IRQ used by the HPET timer. |
| |
| config HPET_TIMER_IRQ_PRIORITY |
| int "HPET Timer IRQ Priority" |
| default 4 |
| depends on HPET_TIMER |
| help |
| This option specifies the IRQ priority used by the HPET timer. |
| |
| choice |
| depends on HPET_TIMER |
| prompt "HPET Interrupt Trigger Condition" |
| default HPET_TIMER_FALLING_EDGE |
| |
| config HPET_TIMER_FALLING_EDGE |
| bool "Falling Edge" |
| help |
| This option signifies that the HPET timer uses falling edge interrupts. |
| |
| config HPET_TIMER_RISING_EDGE |
| bool "Rising Edge" |
| help |
| This option signifies that the HPET timer uses rising edge interrupts. |
| |
| config HPET_TIMER_LEVEL_HIGH |
| bool "Level High" |
| help |
| This option signifies that the HPET timer uses level high interrupts. |
| |
| config HPET_TIMER_LEVEL_LOW |
| bool "Level Low" |
| help |
| This option signifies that the HPET timer uses level low interrupts. |
| |
| endchoice |
| |
| config LOAPIC_TIMER |
| bool "LOAPIC timer" |
| depends on (LOAPIC || MVIC) && X86 |
| default n |
| help |
| This option selects LOAPIC timer as a system timer. |
| |
| config LOAPIC_TIMER_IRQ |
| int "Local APIC Timer IRQ" |
| default 24 |
| depends on LOAPIC_TIMER |
| help |
| This option specifies the IRQ used by the LOAPIC timer. |
| |
| config LOAPIC_TIMER_IRQ_PRIORITY |
| int "Local APIC Timer IRQ Priority" |
| default 2 |
| depends on LOAPIC_TIMER |
| help |
| This options specifies the IRQ priority used by the LOAPIC timer. |
| |
| config TSC_CYCLES_PER_SEC |
| int |
| prompt "Frequency of x86 CPU timestamp counter" |
| default 0 |
| depends on LOAPIC_TIMER |
| help |
| The x86 implementation of LOAPIC k_cycle_get_32() relies on the x86 TSC. |
| This runs at the CPU speed and not the bus speed. If set to 0, the |
| value of CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC will be used instead; |
| many MCUs these values are the same. |
| |
| config ARCV2_TIMER |
| bool "ARC Timer" |
| default y |
| depends on ARC |
| help |
| This module implements a kernel device driver for the ARCv2 processor timer 0 |
| and provides the standard "system clock driver" interfaces. |
| |
| config ARCV2_TIMER_IRQ_PRIORITY |
| int "ARC timer interrupt priority" |
| default 0 |
| depends on ARCV2_TIMER |
| help |
| This option specifies the IRQ priority used by the ARC timer. Lower |
| values have higher priority. |
| |
| config CORTEX_M_SYSTICK |
| bool "Cortex-M SYSTICK timer" |
| default y |
| depends on CPU_HAS_SYSTICK |
| help |
| This module implements a kernel device driver for the Cortex-M processor |
| SYSTICK timer and provides the standard "system clock driver" interfaces. |
| |
| config ALTERA_AVALON_TIMER |
| bool "Altera Avalon Interval Timer" |
| default y |
| depends on NIOS2 |
| help |
| This module implements a kernel device driver for the Altera Avalon |
| Interval Timer as described in the Embedded IP documentation, for use |
| with Nios II and possibly other Altera soft CPUs. It provides the |
| standard "system clock driver" interfaces. |
| |
| config NRF_RTC_TIMER |
| bool "nRF Real Time Counter (NRF_RTC1) Timer" |
| default y |
| depends on SOC_FAMILY_NRF5 && CLOCK_CONTROL_NRF5 |
| help |
| This module implements a kernel device driver for the nRF Real Time |
| Counter NRF_RTC1 and provides the standard "system clock driver" |
| interfaces. |
| |
| config PULPINO_TIMER |
| bool "pulpino Timer" |
| default y |
| depends on SOC_RISCV32_PULPINO |
| help |
| This module implements a kernel device driver for the pulpino processor |
| timer driver. It provides the standard "system clock driver" interfaces. |
| |
| config RISCV_MACHINE_TIMER |
| bool "RISCV Machine Timer" |
| default n |
| depends on SOC_FAMILY_RISCV_PRIVILEGE |
| help |
| This module implements a kernel device driver for the generic RISCV machine |
| timer driver. It provides the standard "system clock driver" interfaces. |
| |
| config XTENSA_TIMER |
| bool "Xtensa timer support" |
| depends on XTENSA |
| default y |
| help |
| This module implements a kernel device driver for the Xtensa processor and |
| provides the standard "system clock driver" interfaces. |
| If unchecked, no timer will be used. |
| If checked it will use either an internal timer (default option) or an |
| external timer. In that case one shall unselect XTENSA_INTERNAL_TIMER and |
| define XTENSA_TIMER_IRQ and XTENSA_TIMER_IRQ_PRIORITY. |
| |
| config XTENSA_INTERNAL_TIMER |
| bool "Xtensa internal timer" |
| depends on XTENSA_TIMER |
| default y |
| help |
| This module implements a kernel device driver for the Xtensa processor |
| internal timer and provides the standard "system clock driver" interfaces. |
| If unchecked, an external timer will be used. It will rely on a tick |
| interrupt connected to an IRQ line. In this case one shall define |
| both XTENSA_TIMER_IRQ and XTENSA_TIMER_IRQ_PRIORITY. |
| |
| config XTENSA_TIMER_IRQ |
| int "Xtensa external timer interrupt number" |
| depends on XTENSA_TIMER && !XTENSA_INTERNAL_TIMER |
| range -1 31 |
| default -1 |
| help |
| This is the number of interrupt line used by the external timer. |
| The special value of -1 allows using the internal timer in order to |
| emulate an external timer. This is generally useful for running the project on |
| a simulator where it is hard to emulate an external interrupt. |
| |
| config XTENSA_TIMER_IRQ_PRIORITY |
| int "Xtensa external timer interrupt priority" |
| depends on XTENSA_TIMER && !XTENSA_INTERNAL_TIMER |
| range 1 6 |
| default 1 |
| help |
| This is the priority of interrupt line. |
| |
| config SYSTEM_CLOCK_DISABLE |
| bool "API to disable system clock" |
| default n |
| help |
| This option enables the sys_clock_disable() API in the kernel. It is |
| needed by some subsystems (which will automatically select it), but is |
| rarely needed by applications. |
| |
| config TIMER_READS_ITS_FREQUENCY_AT_RUNTIME |
| bool "Timer queries its hardware to find its frequency at runtime" |
| default n |
| help |
| The drivers select this option automatically when needed. Do not modify |
| this unless you have a very good reason for it. |
| |
| config SYSTEM_CLOCK_INIT_PRIORITY |
| int "System clock driver initialization priority" |
| default 0 |
| help |
| This options can be used to set a specific initialization priority |
| value for the system clock driver. As driver initialization might need |
| the clock to be running already, you should let the default value as it |
| is (0). |
| endmenu |