diff options
Diffstat (limited to 'Kernel/Arch/aarch64/RPi/Timer.h')
-rw-r--r-- | Kernel/Arch/aarch64/RPi/Timer.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Kernel/Arch/aarch64/RPi/Timer.h b/Kernel/Arch/aarch64/RPi/Timer.h new file mode 100644 index 0000000000..27762930bf --- /dev/null +++ b/Kernel/Arch/aarch64/RPi/Timer.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2021, Nico Weber <thakis@chromium.org> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include <AK/Types.h> + +namespace Prekernel { + +struct TimerRegisters; + +class Timer { +public: + static Timer& the(); + + u64 microseconds_since_boot(); + + enum class ClockID { + Reserved = 0, + EMMC = 1, + UART = 2, + ARM = 3, + CORE = 4, + V3D = 5, + H264 = 6, + ISP = 7, + SDRAM = 8, + PIXEL = 9, + PWM = 10, + HEVC = 11, + EMMC2 = 12, + M2MC = 13, + PIXEL_BVB = 14, + }; + u32 set_clock_rate(ClockID, u32 rate_hz, bool skip_setting_turbo = true); + +private: + Timer(); + + TimerRegisters volatile* m_registers; +}; + +} |