| /* |
| * linux/arch/arm/mach-footbridge/isa.c |
| * |
| * Copyright (C) 2004 Russell King. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation. |
| */ |
| #include <linux/init.h> |
| #include <linux/serial_8250.h> |
| |
| #include <asm/irq.h> |
| |
| static struct resource rtc_resources[] = { |
| [0] = { |
| .start = 0x70, |
| .end = 0x73, |
| .flags = IORESOURCE_IO, |
| }, |
| [1] = { |
| .start = IRQ_ISA_RTC_ALARM, |
| .end = IRQ_ISA_RTC_ALARM, |
| .flags = IORESOURCE_IRQ, |
| } |
| }; |
| |
| static struct platform_device rtc_device = { |
| .name = "rtc_cmos", |
| .id = -1, |
| .resource = rtc_resources, |
| .num_resources = ARRAY_SIZE(rtc_resources), |
| }; |
| |
| static struct resource serial_resources[] = { |
| [0] = { |
| .start = 0x3f8, |
| .end = 0x3ff, |
| .flags = IORESOURCE_IO, |
| }, |
| [1] = { |
| .start = 0x2f8, |
| .end = 0x2ff, |
| .flags = IORESOURCE_IO, |
| }, |
| }; |
| |
| static struct plat_serial8250_port serial_platform_data[] = { |
| { |
| .iobase = 0x3f8, |
| .irq = IRQ_ISA_UART, |
| .uartclk = 1843200, |
| .regshift = 0, |
| .iotype = UPIO_PORT, |
| .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, |
| }, |
| { |
| .iobase = 0x2f8, |
| .irq = IRQ_ISA_UART2, |
| .uartclk = 1843200, |
| .regshift = 0, |
| .iotype = UPIO_PORT, |
| .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, |
| }, |
| { }, |
| }; |
| |
| static struct platform_device serial_device = { |
| .name = "serial8250", |
| .id = PLAT8250_DEV_PLATFORM, |
| .dev = { |
| .platform_data = serial_platform_data, |
| }, |
| .resource = serial_resources, |
| .num_resources = ARRAY_SIZE(serial_resources), |
| }; |
| |
| static int __init footbridge_isa_init(void) |
| { |
| int err; |
| |
| err = platform_device_register(&rtc_device); |
| if (err) |
| printk(KERN_ERR "Unable to register RTC device: %d\n", err); |
| err = platform_device_register(&serial_device); |
| if (err) |
| printk(KERN_ERR "Unable to register serial device: %d\n", err); |
| return 0; |
| } |
| |
| arch_initcall(footbridge_isa_init); |