diff options
author | Ian Moffett <ian@osmora.org> | 2025-09-21 00:33:55 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-09-21 00:33:55 -0400 |
commit | bc26deca0a67063b135f17fd068dd4207ebe2b10 (patch) | |
tree | 0cc0710da54fcefedc6bd2b5689d7308bf050a8b /src/sys/arch/amd64/io/hpet.c | |
parent | e9e2d28314b8d5fce78bfe29f4483d183c3cd51f (diff) |
kern/amd64: hpet: Register HPET with clkdev
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/sys/arch/amd64/io/hpet.c')
-rw-r--r-- | src/sys/arch/amd64/io/hpet.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/sys/arch/amd64/io/hpet.c b/src/sys/arch/amd64/io/hpet.c index 7b7ea35..36f19a8 100644 --- a/src/sys/arch/amd64/io/hpet.c +++ b/src/sys/arch/amd64/io/hpet.c @@ -37,6 +37,7 @@ #include <sys/param.h> #include <sys/syslog.h> #include <os/mmio.h> +#include <os/clkdev.h> #include <acpi/acpi.h> #include <acpi/tables.h> #include <machine/hpet.h> @@ -49,6 +50,7 @@ #define CAP_NUM_TIM(caps) (caps >> 8) & 0x1F #define CAP_CLK_PERIOD(caps) (caps >> 32) +static struct clkdev clkdev; static void *hpet_base = NULL; /* @@ -157,5 +159,15 @@ hpet_init(void) hpet_write(HPET_REG_MAIN_COUNTER, 0); hpet_write(HPET_GENERAL_CONFIG, 1); printf("hpet: HPET initialized and enabled\n"); + + /* Initialize as clock device */ + clkdev.name = "IA-PC HPET"; + clkdev.attr = CLKDEV_MSLEEP; + clkdev.msleep = hpet_msleep; + if (clkdev_register(&clkdev) < 0) { + printf("hpet_init: could not register clock device\n"); + return -1; + } + return 0; } |