| /* SPDX-License-Identifier: GPL-2.0-only */ | |
| /* | |
| * Copyright (C) 2020 Google, Inc | |
| */ | |
| #ifndef _ASM_RISCV_CLINT_H | |
| #define _ASM_RISCV_CLINT_H | |
| #include <linux/types.h> | |
| #include <asm/mmio.h> | |
| #ifdef CONFIG_RISCV_M_MODE | |
| /* | |
| * This lives in the CLINT driver, but is accessed directly by timex.h to avoid | |
| * any overhead when accessing the MMIO timer. | |
| * | |
| * The ISA defines mtime as a 64-bit memory-mapped register that increments at | |
| * a constant frequency, but it doesn't define some other constraints we depend | |
| * on (most notably ordering constraints, but also some simpler stuff like the | |
| * memory layout). Thus, this is called "clint_time_val" instead of something | |
| * like "riscv_mtime", to signify that these non-ISA assumptions must hold. | |
| */ | |
| extern u64 __iomem *clint_time_val; | |
| #endif | |
| #endif |