blob: 2c90663e5c71df3c61c94a945163f8ed6409ccb4 [file] [log] [blame]
viresh kumarbc4e8142010-04-01 12:30:58 +01001/*
2 * arch/arm/mach-spear3xx/spear300_evb.c
3 *
4 * SPEAr300 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/mach/arch.h>
15#include <asm/mach-types.h>
16#include <mach/generic.h>
17#include <mach/spear.h>
18
viresh kumar70f4c0b2010-04-01 12:31:29 +010019/* padmux devices to enable */
20static struct pmx_dev *pmx_devs[] = {
21 /* spear3xx specific devices */
22 &pmx_i2c,
23 &pmx_ssp_cs,
24 &pmx_ssp,
25 &pmx_mii,
26 &pmx_uart0,
27
28 /* spear300 specific devices */
29 &pmx_fsmc_2_chips,
30 &pmx_clcd,
31 &pmx_telecom_sdio_4bit,
32 &pmx_gpio1,
33};
34
viresh kumarbc4e8142010-04-01 12:30:58 +010035static struct amba_device *amba_devs[] __initdata = {
36 /* spear3xx specific devices */
37 &gpio_device,
38 &uart_device,
39
40 /* spear300 specific devices */
41 &gpio1_device,
42};
43
44static struct platform_device *plat_devs[] __initdata = {
45 /* spear3xx specific devices */
46
47 /* spear300 specific devices */
48};
49
50static void __init spear300_evb_init(void)
51{
52 unsigned int i;
53
viresh kumar53688c52011-02-16 07:40:30 +010054 /* padmux initialization, must be done before spear300_init */
viresh kumar70f4c0b2010-04-01 12:31:29 +010055 pmx_driver.mode = &photo_frame_mode;
56 pmx_driver.devs = pmx_devs;
57 pmx_driver.devs_count = ARRAY_SIZE(pmx_devs);
viresh kumar53688c52011-02-16 07:40:30 +010058
59 /* call spear300 machine init function */
60 spear300_init();
viresh kumar70f4c0b2010-04-01 12:31:29 +010061
viresh kumarbc4e8142010-04-01 12:30:58 +010062 /* Add Platform Devices */
63 platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs));
64
65 /* Add Amba Devices */
66 for (i = 0; i < ARRAY_SIZE(amba_devs); i++)
67 amba_device_register(amba_devs[i], &iomem_resource);
68}
69
70MACHINE_START(SPEAR300, "ST-SPEAR300-EVB")
71 .boot_params = 0x00000100,
72 .map_io = spear3xx_map_io,
73 .init_irq = spear3xx_init_irq,
74 .timer = &spear_sys_timer,
75 .init_machine = spear300_evb_init,
76MACHINE_END