linux/arch/arm/mach-msm/board-halibut.c
<<
>>
Prefs
   1/* linux/arch/arm/mach-msm/board-halibut.c
   2 *
   3 * Copyright (C) 2007 Google, Inc.
   4 * Author: Brian Swetland <swetland@google.com>
   5 *
   6 * This software is licensed under the terms of the GNU General Public
   7 * License version 2, as published by the Free Software Foundation, and
   8 * may be copied, distributed, and modified under those terms.
   9 *
  10 * This program is distributed in the hope that it will be useful,
  11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13 * GNU General Public License for more details.
  14 *
  15 */
  16
  17#include <linux/kernel.h>
  18#include <linux/init.h>
  19#include <linux/platform_device.h>
  20#include <linux/input.h>
  21#include <linux/io.h>
  22#include <linux/delay.h>
  23
  24#include <mach/hardware.h>
  25#include <asm/mach-types.h>
  26#include <asm/mach/arch.h>
  27#include <asm/mach/map.h>
  28#include <asm/mach/flash.h>
  29
  30#include <mach/irqs.h>
  31#include <mach/board.h>
  32#include <mach/msm_iomap.h>
  33
  34#include <linux/mtd/nand.h>
  35#include <linux/mtd/partitions.h>
  36
  37#include "devices.h"
  38
  39static 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};
  51
  52static struct platform_device smc91x_device = {
  53        .name           = "smc91x",
  54        .id             = 0,
  55        .num_resources  = ARRAY_SIZE(smc91x_resources),
  56        .resource       = smc91x_resources,
  57};
  58
  59static 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};
  67
  68extern struct sys_timer msm_timer;
  69
  70static void __init halibut_init_irq(void)
  71{
  72        msm_init_irq();
  73}
  74
  75static void __init halibut_init(void)
  76{
  77        platform_add_devices(devices, ARRAY_SIZE(devices));
  78}
  79
  80static void __init halibut_map_io(void)
  81{
  82        msm_map_common_io();
  83        msm_clock_init();
  84}
  85
  86MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)")
  87        .boot_params    = 0x10000100,
  88        .map_io         = halibut_map_io,
  89        .init_irq       = halibut_init_irq,
  90        .init_machine   = halibut_init,
  91        .timer          = &msm_timer,
  92MACHINE_END
  93