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/mach/arch.h> 15#include <asm/mach-types.h> 16#include <mach/generic.h> 17#include <mach/spear.h> 18 19/* padmux devices to enable */ 20static struct pmx_dev *pmx_devs[] = { 21 /* spear3xx specific devices */ 22 &pmx_i2c, 23 &pmx_ssp, 24 &pmx_mii, 25 &pmx_uart0, 26 27 /* spear320 specific devices */ 28 &pmx_fsmc, 29 &pmx_sdio, 30 &pmx_i2s, 31 &pmx_uart1, 32 &pmx_uart2, 33 &pmx_can, 34 &pmx_pwm0, 35 &pmx_pwm1, 36 &pmx_pwm2, 37 &pmx_mii1, 38}; 39 40static struct amba_device *amba_devs[] __initdata = { 41 /* spear3xx specific devices */ 42 &gpio_device, 43 &uart_device, 44 45 /* spear320 specific devices */ 46}; 47 48static struct platform_device *plat_devs[] __initdata = { 49 /* spear3xx specific devices */ 50 51 /* spear320 specific devices */ 52}; 53 54static void __init spear320_evb_init(void) 55{ 56 unsigned int i; 57 58 /* call spear320 machine init function */ 59 spear320_init(); 60 61 /* padmux initialization */ 62 pmx_driver.mode = &auto_net_mii_mode; 63 pmx_driver.devs = pmx_devs; 64 pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); 65 spear320_pmx_init(); 66 67 /* Add Platform Devices */ 68 platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); 69 70 /* Add Amba Devices */ 71 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) 72 amba_device_register(amba_devs[i], &iomem_resource); 73} 74 75MACHINE_START(SPEAR320, "ST-SPEAR320-EVB") 76 .boot_params = 0x00000100, 77 .map_io = spear3xx_map_io, 78 .init_irq = spear3xx_init_irq, 79 .timer = &spear_sys_timer, 80 .init_machine = spear320_evb_init, 81MACHINE_END 82