Merge branch 'perf/fast' into perf/core
[sfrench/cifs-2.6.git] / arch / arm / mach-spear3xx / spear320_evb.c
1 /*
2  * arch/arm/mach-spear3xx/spear320_evb.c
3  *
4  * SPEAr320 evaluation board source file
5  *
6  * Copyright (C) 2009 ST Microelectronics
7  * Viresh Kumar<viresh.kumar@st.com>
8  *
9  * This file is licensed under the terms of the GNU General Public
10  * License version 2. This program is licensed "as is" without any
11  * warranty of any kind, whether express or implied.
12  */
13
14 #include <asm/hardware/vic.h>
15 #include <asm/mach/arch.h>
16 #include <asm/mach-types.h>
17 #include <mach/generic.h>
18 #include <mach/hardware.h>
19
20 /* padmux devices to enable */
21 static struct pmx_dev *pmx_devs[] = {
22         /* spear3xx specific devices */
23         &spear3xx_pmx_i2c,
24         &spear3xx_pmx_ssp,
25         &spear3xx_pmx_mii,
26         &spear3xx_pmx_uart0,
27
28         /* spear320 specific devices */
29         &spear320_pmx_fsmc,
30         &spear320_pmx_sdhci,
31         &spear320_pmx_i2s,
32         &spear320_pmx_uart1,
33         &spear320_pmx_uart2,
34         &spear320_pmx_can,
35         &spear320_pmx_pwm0,
36         &spear320_pmx_pwm1,
37         &spear320_pmx_pwm2,
38         &spear320_pmx_mii1,
39 };
40
41 static struct amba_device *amba_devs[] __initdata = {
42         /* spear3xx specific devices */
43         &spear3xx_gpio_device,
44         &spear3xx_uart_device,
45
46         /* spear320 specific devices */
47 };
48
49 static struct platform_device *plat_devs[] __initdata = {
50         /* spear3xx specific devices */
51
52         /* spear320 specific devices */
53 };
54
55 static void __init spear320_evb_init(void)
56 {
57         unsigned int i;
58
59         /* call spear320 machine init function */
60         spear320_init(&spear320_auto_net_mii_mode, pmx_devs,
61                         ARRAY_SIZE(pmx_devs));
62
63         /* Add Platform Devices */
64         platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs));
65
66         /* Add Amba Devices */
67         for (i = 0; i < ARRAY_SIZE(amba_devs); i++)
68                 amba_device_register(amba_devs[i], &iomem_resource);
69 }
70
71 MACHINE_START(SPEAR320, "ST-SPEAR320-EVB")
72         .atag_offset    =       0x100,
73         .map_io         =       spear3xx_map_io,
74         .init_irq       =       spear3xx_init_irq,
75         .handle_irq     =       vic_handle_irq,
76         .timer          =       &spear3xx_timer,
77         .init_machine   =       spear320_evb_init,
78         .restart        =       spear_restart,
79 MACHINE_END