2007-11-26 04:12:13 -08:00
/* linux/arch/arm/mach-msm/board-halibut.c
*
* Copyright ( C ) 2007 Google , Inc .
* Author : Brian Swetland < swetland @ google . com >
*
* This software is licensed under the terms of the GNU General Public
* License version 2 , as published by the Free Software Foundation , and
* may be copied , distributed , and modified under those terms .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
*/
# include <linux/kernel.h>
# include <linux/init.h>
# include <linux/platform_device.h>
# include <linux/input.h>
2008-09-06 12:10:45 +01:00
# include <linux/io.h>
# include <linux/delay.h>
2007-11-26 04:12:13 -08:00
2008-08-05 16:14:15 +01:00
# include <mach/hardware.h>
2007-11-26 04:12:13 -08:00
# include <asm/mach-types.h>
# include <asm/mach/arch.h>
# include <asm/mach/map.h>
# include <asm/mach/flash.h>
2008-10-29 21:45:46 -07:00
# include <asm/setup.h>
2007-11-26 04:12:13 -08:00
2009-01-27 22:44:12 +00:00
# include <mach/irqs.h>
2008-08-05 16:14:15 +01:00
# include <mach/board.h>
# include <mach/msm_iomap.h>
2007-11-26 04:12:13 -08:00
# include <linux/mtd/nand.h>
# include <linux/mtd/partitions.h>
2008-09-10 14:00:53 -07:00
# include "devices.h"
2007-11-26 04:12:13 -08:00
static struct resource smc91x_resources [ ] = {
[ 0 ] = {
. start = 0x9C004300 ,
. end = 0x9C004400 ,
. flags = IORESOURCE_MEM ,
} ,
[ 1 ] = {
. start = MSM_GPIO_TO_INT ( 49 ) ,
. end = MSM_GPIO_TO_INT ( 49 ) ,
. flags = IORESOURCE_IRQ ,
} ,
} ;
static struct platform_device smc91x_device = {
. name = " smc91x " ,
. id = 0 ,
. num_resources = ARRAY_SIZE ( smc91x_resources ) ,
. resource = smc91x_resources ,
} ;
static struct platform_device * devices [ ] __initdata = {
2008-09-10 14:00:53 -07:00
& msm_device_uart3 ,
& msm_device_smd ,
& msm_device_nand ,
& msm_device_hsusb ,
& msm_device_i2c ,
2007-11-26 04:12:13 -08:00
& smc91x_device ,
} ;
extern struct sys_timer msm_timer ;
static void __init halibut_init_irq ( void )
{
msm_init_irq ( ) ;
}
static void __init halibut_init ( void )
{
platform_add_devices ( devices , ARRAY_SIZE ( devices ) ) ;
}
2008-10-29 21:45:46 -07:00
static void __init halibut_fixup ( struct machine_desc * desc , struct tag * tags ,
char * * cmdline , struct meminfo * mi )
{
mi - > nr_banks = 1 ;
mi - > bank [ 0 ] . start = PHYS_OFFSET ;
mi - > bank [ 0 ] . size = ( 101 * 1024 * 1024 ) ;
}
2007-11-26 04:12:13 -08:00
static void __init halibut_map_io ( void )
{
msm_map_common_io ( ) ;
2010-05-12 13:43:28 -07:00
msm_clock_init ( msm_clocks_7x01a , msm_num_clocks_7x01a ) ;
2007-11-26 04:12:13 -08:00
}
MACHINE_START ( HALIBUT , " Halibut Board (QCT SURF7200A) " )
2008-11-18 14:58:08 -08:00
# ifdef CONFIG_MSM_DEBUG_UART
# endif
2007-11-26 04:12:13 -08:00
. boot_params = 0x10000100 ,
2008-10-29 21:45:46 -07:00
. fixup = halibut_fixup ,
2007-11-26 04:12:13 -08:00
. map_io = halibut_map_io ,
. init_irq = halibut_init_irq ,
. init_machine = halibut_init ,
. timer = & msm_timer ,
MACHINE_END