#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/interrupt.h>
-#include <linux/serial_8250.h>
#include <linux/init.h>
#include <asm/hardware.h>
{
u32 count;
- write_seqlock(&xtime_lock);
-
/* latch and read timer 1 */
__raw_writeb(0x40, PIT_CTRL);
count = __raw_readb(PIT_T1);
timer_tick(regs);
- write_sequnlock(&xtime_lock);
-
return IRQ_HANDLED;
}
/*
* Set up timer interrupt.
*/
-static void __init ebsa110_timer_init(void)
+static void __init ebsa110_init_time(void)
{
/*
* Timer 1, mode 2, LSB/MSB
__raw_writeb(COUNT & 0xff, PIT_T1);
__raw_writeb(COUNT >> 8, PIT_T1);
- setup_irq(IRQ_EBSA110_TIMER0, &ebsa110_timer_irq);
-}
+ gettimeoffset = ebsa110_gettimeoffset;
-static struct sys_timer ebsa110_timer = {
- .init = ebsa110_timer_init,
- .offset = ebsa110_gettimeoffset,
-};
-
-static struct plat_serial8250_port serial_platform_data[] = {
- {
- .iobase = 0x3f8,
- .irq = 1,
- .uartclk = 1843200,
- .regshift = 0,
- .iotype = UPIO_PORT,
- .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
- },
- {
- .iobase = 0x2f8,
- .irq = 2,
- .uartclk = 1843200,
- .regshift = 0,
- .iotype = UPIO_PORT,
- .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
- },
- { },
-};
-
-static struct platform_device serial_device = {
- .name = "serial8250",
- .id = 0,
- .dev = {
- .platform_data = serial_platform_data,
- },
-};
-
-static int __init ebsa110_init(void)
-{
- return platform_device_register(&serial_device);
+ setup_irq(IRQ_EBSA110_TIMER0, &ebsa110_timer_irq);
}
-arch_initcall(ebsa110_init);
-
MACHINE_START(EBSA110, "EBSA110")
MAINTAINER("Russell King")
BOOT_MEM(0x00000000, 0xe0000000, 0xe0000000)
SOFT_REBOOT
MAPIO(ebsa110_map_io)
INITIRQ(ebsa110_init_irq)
- .timer = &ebsa110_timer,
+ INITTIME(ebsa110_init_time)
MACHINE_END