Path: blob/master/arch/arm/mach-msm/board-halibut.c
10817 views
/* linux/arch/arm/mach-msm/board-halibut.c1*2* Copyright (C) 2007 Google, Inc.3* Author: Brian Swetland <[email protected]>4*5* This software is licensed under the terms of the GNU General Public6* License version 2, as published by the Free Software Foundation, and7* may be copied, distributed, and modified under those terms.8*9* This program is distributed in the hope that it will be useful,10* but WITHOUT ANY WARRANTY; without even the implied warranty of11* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12* GNU General Public License for more details.13*14*/1516#include <linux/kernel.h>17#include <linux/init.h>18#include <linux/platform_device.h>19#include <linux/input.h>20#include <linux/io.h>21#include <linux/delay.h>2223#include <mach/hardware.h>24#include <asm/mach-types.h>25#include <asm/mach/arch.h>26#include <asm/mach/map.h>27#include <asm/mach/flash.h>28#include <asm/setup.h>2930#include <mach/irqs.h>31#include <mach/board.h>32#include <mach/msm_iomap.h>3334#include <linux/mtd/nand.h>35#include <linux/mtd/partitions.h>3637#include "devices.h"3839static struct resource smc91x_resources[] = {40[0] = {41.start = 0x9C004300,42.end = 0x9C004400,43.flags = IORESOURCE_MEM,44},45[1] = {46.start = MSM_GPIO_TO_INT(49),47.end = MSM_GPIO_TO_INT(49),48.flags = IORESOURCE_IRQ,49},50};5152static struct platform_device smc91x_device = {53.name = "smc91x",54.id = 0,55.num_resources = ARRAY_SIZE(smc91x_resources),56.resource = smc91x_resources,57};5859static struct platform_device *devices[] __initdata = {60&msm_device_uart3,61&msm_device_smd,62&msm_device_nand,63&msm_device_hsusb,64&msm_device_i2c,65&smc91x_device,66};6768extern struct sys_timer msm_timer;6970static void __init halibut_init_irq(void)71{72msm_init_irq();73}7475static void __init halibut_init(void)76{77platform_add_devices(devices, ARRAY_SIZE(devices));78}7980static void __init halibut_fixup(struct machine_desc *desc, struct tag *tags,81char **cmdline, struct meminfo *mi)82{83mi->nr_banks=1;84mi->bank[0].start = PHYS_OFFSET;85mi->bank[0].size = (101*1024*1024);86}8788static void __init halibut_map_io(void)89{90msm_map_common_io();91msm_clock_init(msm_clocks_7x01a, msm_num_clocks_7x01a);92}9394MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)")95.boot_params = 0x10000100,96.fixup = halibut_fixup,97.map_io = halibut_map_io,98.init_irq = halibut_init_irq,99.init_machine = halibut_init,100.timer = &msm_timer,101MACHINE_END102103104