Changeset View
Changeset View
Standalone View
Standalone View
sys/arm/arm/generic_timer.c
Show First 20 Lines • Show All 568 Lines • ▼ Show 20 Lines | |||||
#if defined(__arm__) | #if defined(__arm__) | ||||
arm_set_delay(arm_tmr_do_delay, sc); | arm_set_delay(arm_tmr_do_delay, sc); | ||||
#endif | #endif | ||||
return (0); | return (0); | ||||
} | } | ||||
static device_method_t arm_tmr_methods[] = { | |||||
DEVMETHOD(device_attach, arm_tmr_attach), | |||||
DEVMETHOD_END, | |||||
}; | |||||
DEFINE_CLASS_0(generic_timer, arm_tmr_driver, arm_tmr_methods, 0); | |||||
#ifdef FDT | #ifdef FDT | ||||
static device_method_t arm_tmr_fdt_methods[] = { | static device_method_t arm_tmr_fdt_methods[] = { | ||||
DEVMETHOD(device_probe, arm_tmr_fdt_probe), | DEVMETHOD(device_probe, arm_tmr_fdt_probe), | ||||
DEVMETHOD(device_attach, arm_tmr_attach), | |||||
{ 0, 0 } | { 0, 0 } | ||||
}; | }; | ||||
static DEFINE_CLASS_0(generic_timer, arm_tmr_fdt_driver, arm_tmr_fdt_methods, | #define generic_timer_baseclasses generic_timer_fdt_baseclasses | ||||
sizeof(struct arm_tmr_softc)); | DEFINE_CLASS_1(generic_timer, arm_tmr_fdt_driver, arm_tmr_fdt_methods, | ||||
sizeof(struct arm_tmr_softc), arm_tmr_driver); | |||||
#undef generic_timer_baseclasses | |||||
EARLY_DRIVER_MODULE(timer, simplebus, arm_tmr_fdt_driver, 0, 0, | EARLY_DRIVER_MODULE(timer, simplebus, arm_tmr_fdt_driver, 0, 0, | ||||
BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE); | BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE); | ||||
EARLY_DRIVER_MODULE(timer, ofwbus, arm_tmr_fdt_driver, 0, 0, | EARLY_DRIVER_MODULE(timer, ofwbus, arm_tmr_fdt_driver, 0, 0, | ||||
BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE); | BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE); | ||||
#endif | #endif | ||||
#ifdef DEV_ACPI | #ifdef DEV_ACPI | ||||
static device_method_t arm_tmr_acpi_methods[] = { | static device_method_t arm_tmr_acpi_methods[] = { | ||||
DEVMETHOD(device_identify, arm_tmr_acpi_identify), | DEVMETHOD(device_identify, arm_tmr_acpi_identify), | ||||
DEVMETHOD(device_probe, arm_tmr_acpi_probe), | DEVMETHOD(device_probe, arm_tmr_acpi_probe), | ||||
DEVMETHOD(device_attach, arm_tmr_attach), | |||||
{ 0, 0 } | { 0, 0 } | ||||
}; | }; | ||||
static DEFINE_CLASS_0(generic_timer, arm_tmr_acpi_driver, arm_tmr_acpi_methods, | #define generic_timer_baseclasses generic_timer_acpi_baseclasses | ||||
sizeof(struct arm_tmr_softc)); | DEFINE_CLASS_1(generic_timer, arm_tmr_acpi_driver, arm_tmr_acpi_methods, | ||||
sizeof(struct arm_tmr_softc), arm_tmr_driver); | |||||
#undef generic_timer_baseclasses | |||||
EARLY_DRIVER_MODULE(timer, acpi, arm_tmr_acpi_driver, 0, 0, | EARLY_DRIVER_MODULE(timer, acpi, arm_tmr_acpi_driver, 0, 0, | ||||
BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE); | BUS_PASS_TIMER + BUS_PASS_ORDER_MIDDLE); | ||||
#endif | #endif | ||||
static void | static void | ||||
arm_tmr_do_delay(int usec, void *arg) | arm_tmr_do_delay(int usec, void *arg) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 62 Lines • Show Last 20 Lines |