spear310_evb.c revision 53688c51e412b7fd642e5c8eb8ba8ee19744c4ea
1bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar/* 2bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar * arch/arm/mach-spear3xx/spear310_evb.c 3bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar * 4bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar * SPEAr310 evaluation board source file 5bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar * 6bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar * Copyright (C) 2009 ST Microelectronics 7bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar * Viresh Kumar<viresh.kumar@st.com> 8bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar * 9bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar * This file is licensed under the terms of the GNU General Public 10bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar * License version 2. This program is licensed "as is" without any 11bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar * warranty of any kind, whether express or implied. 12bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar */ 13bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar 14bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar#include <asm/mach/arch.h> 15bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar#include <asm/mach-types.h> 16bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar#include <mach/generic.h> 17bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar#include <mach/spear.h> 18bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar 1970f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar/* padmux devices to enable */ 2070f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumarstatic struct pmx_dev *pmx_devs[] = { 2170f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar /* spear3xx specific devices */ 2270f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_i2c, 2370f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_ssp, 2470f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_gpio_pin0, 2570f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_gpio_pin1, 2670f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_gpio_pin2, 2770f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_gpio_pin3, 2870f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_gpio_pin4, 2970f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_gpio_pin5, 3070f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_uart0, 3170f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar 3270f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar /* spear310 specific devices */ 3370f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_emi_cs_0_1_4_5, 3470f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_emi_cs_2_3, 3570f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_uart1, 3670f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_uart2, 3770f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_uart3_4_5, 3870f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_fsmc, 3970f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_rs485_0_1, 4070f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar &pmx_tdm0, 4170f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar}; 4270f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar 43bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumarstatic struct amba_device *amba_devs[] __initdata = { 44bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar /* spear3xx specific devices */ 45bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar &gpio_device, 46bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar &uart_device, 47bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar 48bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar /* spear310 specific devices */ 49bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar}; 50bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar 51bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumarstatic struct platform_device *plat_devs[] __initdata = { 52bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar /* spear3xx specific devices */ 53bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar 54bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar /* spear310 specific devices */ 55bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar}; 56bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar 57bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumarstatic void __init spear310_evb_init(void) 58bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar{ 59bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar unsigned int i; 60bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar 6153688c51e412b7fd642e5c8eb8ba8ee19744c4eaviresh kumar /* padmux initialization, must be done before spear310_init */ 6270f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar pmx_driver.mode = NULL; 6370f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar pmx_driver.devs = pmx_devs; 6470f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); 6553688c51e412b7fd642e5c8eb8ba8ee19744c4eaviresh kumar 6653688c51e412b7fd642e5c8eb8ba8ee19744c4eaviresh kumar /* call spear310 machine init function */ 6753688c51e412b7fd642e5c8eb8ba8ee19744c4eaviresh kumar spear310_init(); 6870f4c0bf9e4d067744ee453bc37c0c4adcea6e53viresh kumar 69bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar /* Add Platform Devices */ 70bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); 71bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar 72bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar /* Add Amba Devices */ 73bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar for (i = 0; i < ARRAY_SIZE(amba_devs); i++) 74bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar amba_device_register(amba_devs[i], &iomem_resource); 75bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar} 76bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar 77bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumarMACHINE_START(SPEAR310, "ST-SPEAR310-EVB") 78bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar .boot_params = 0x00000100, 79bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar .map_io = spear3xx_map_io, 80bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar .init_irq = spear3xx_init_irq, 81bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar .timer = &spear_sys_timer, 82bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumar .init_machine = spear310_evb_init, 83bc4e814e5d5e2851f0a0679eaad14f60abae2a6dviresh kumarMACHINE_END 84