diff options
Diffstat (limited to 'arch/arm/mach-omap1/board-ams-delta.c')
-rw-r--r-- | arch/arm/mach-omap1/board-ams-delta.c | 43 |
1 files changed, 38 insertions, 5 deletions
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index 8b40aace9db4..42920f9c1a11 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c | |||
@@ -15,8 +15,11 @@ | |||
15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/input.h> | 17 | #include <linux/input.h> |
18 | #include <linux/interrupt.h> | ||
18 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
20 | #include <linux/serial_8250.h> | ||
19 | 21 | ||
22 | #include <asm/serial.h> | ||
20 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
21 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
22 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
@@ -162,10 +165,6 @@ static struct omap_lcd_config ams_delta_lcd_config __initdata = { | |||
162 | .ctrl_name = "internal", | 165 | .ctrl_name = "internal", |
163 | }; | 166 | }; |
164 | 167 | ||
165 | static struct omap_uart_config ams_delta_uart_config __initdata = { | ||
166 | .enabled_uarts = 1, | ||
167 | }; | ||
168 | |||
169 | static struct omap_usb_config ams_delta_usb_config __initdata = { | 168 | static struct omap_usb_config ams_delta_usb_config __initdata = { |
170 | .register_host = 1, | 169 | .register_host = 1, |
171 | .hmc_mode = 16, | 170 | .hmc_mode = 16, |
@@ -174,7 +173,6 @@ static struct omap_usb_config ams_delta_usb_config __initdata = { | |||
174 | 173 | ||
175 | static struct omap_board_config_kernel ams_delta_config[] = { | 174 | static struct omap_board_config_kernel ams_delta_config[] = { |
176 | { OMAP_TAG_LCD, &ams_delta_lcd_config }, | 175 | { OMAP_TAG_LCD, &ams_delta_lcd_config }, |
177 | { OMAP_TAG_UART, &ams_delta_uart_config }, | ||
178 | }; | 176 | }; |
179 | 177 | ||
180 | static struct resource ams_delta_kp_resources[] = { | 178 | static struct resource ams_delta_kp_resources[] = { |
@@ -235,6 +233,41 @@ static void __init ams_delta_init(void) | |||
235 | platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices)); | 233 | platform_add_devices(ams_delta_devices, ARRAY_SIZE(ams_delta_devices)); |
236 | } | 234 | } |
237 | 235 | ||
236 | static struct plat_serial8250_port ams_delta_modem_ports[] = { | ||
237 | { | ||
238 | .membase = (void *) AMS_DELTA_MODEM_VIRT, | ||
239 | .mapbase = AMS_DELTA_MODEM_PHYS, | ||
240 | .irq = -EINVAL, /* changed later */ | ||
241 | .flags = UPF_BOOT_AUTOCONF, | ||
242 | .irqflags = IRQF_TRIGGER_RISING, | ||
243 | .iotype = UPIO_MEM, | ||
244 | .regshift = 1, | ||
245 | .uartclk = BASE_BAUD * 16, | ||
246 | }, | ||
247 | { }, | ||
248 | }; | ||
249 | |||
250 | static struct platform_device ams_delta_modem_device = { | ||
251 | .name = "serial8250", | ||
252 | .id = PLAT8250_DEV_PLATFORM1, | ||
253 | .dev = { | ||
254 | .platform_data = ams_delta_modem_ports, | ||
255 | }, | ||
256 | }; | ||
257 | |||
258 | static int __init ams_delta_modem_init(void) | ||
259 | { | ||
260 | omap_cfg_reg(M14_1510_GPIO2); | ||
261 | ams_delta_modem_ports[0].irq = gpio_to_irq(2); | ||
262 | |||
263 | ams_delta_latch2_write( | ||
264 | AMS_DELTA_LATCH2_MODEM_NRESET | AMS_DELTA_LATCH2_MODEM_CODEC, | ||
265 | AMS_DELTA_LATCH2_MODEM_NRESET | AMS_DELTA_LATCH2_MODEM_CODEC); | ||
266 | |||
267 | return platform_device_register(&ams_delta_modem_device); | ||
268 | } | ||
269 | arch_initcall(ams_delta_modem_init); | ||
270 | |||
238 | static void __init ams_delta_map_io(void) | 271 | static void __init ams_delta_map_io(void) |
239 | { | 272 | { |
240 | omap1_map_common_io(); | 273 | omap1_map_common_io(); |