MXC: add basic MXC91231 support
[safe/jmp/linux-2.6] / arch / arm / mach-mxc91231 / magx-zn5.c
1 /*
2  * Copyright 2009 Dmitriy Taychenachev <dimichxp@gmail.com>
3  *
4  * This file is released under the GPLv2 or later.
5  */
6
7 #include <linux/irq.h>
8 #include <linux/init.h>
9 #include <linux/device.h>
10
11 #include <asm/mach-types.h>
12 #include <asm/mach/time.h>
13 #include <asm/mach/arch.h>
14
15 #include <mach/common.h>
16 #include <mach/hardware.h>
17 #include <mach/mmc.h>
18 #include <mach/imx-uart.h>
19
20 #include "devices.h"
21
22 static struct imxuart_platform_data uart_pdata = {
23 };
24
25 static struct imxmmc_platform_data sdhc_pdata = {
26 };
27
28 static void __init zn5_init(void)
29 {
30         pm_power_off = mxc91231_power_off;
31
32         mxc_register_device(&mxc_uart_device1, &uart_pdata);
33         mxc_register_device(&mxc_uart_device0, &uart_pdata);
34
35         mxc_register_device(&mxc_sdhc_device0, &sdhc_pdata);
36
37         mxc_register_device(&mxc_wdog_device0, NULL);
38
39         return;
40 }
41
42 static void __init zn5_timer_init(void)
43 {
44         mxc91231_clocks_init(26000000); /* 26mhz ckih */
45 }
46
47 struct sys_timer zn5_timer = {
48         .init = zn5_timer_init,
49 };
50
51 MACHINE_START(MAGX_ZN5, "Motorola Zn5")
52         .phys_io        = MXC91231_AIPS1_BASE_ADDR,
53         .io_pg_offst    = ((MXC91231_AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc,
54         .boot_params    = PHYS_OFFSET + 0x100,
55         .map_io         = mxc91231_map_io,
56         .init_irq       = mxc91231_init_irq,
57         .timer          = &zn5_timer,
58         .init_machine   = zn5_init,
59 MACHINE_END