linux/arch/arm/mach-msm/board-msm7x30.c
<<
>>
Prefs
   1/* Copyright (c) 2009-2010, Code Aurora Forum. All rights reserved.
   2 *
   3 * This program is free software; you can redistribute it and/or modify
   4 * it under the terms of the GNU General Public License version 2 and
   5 * only version 2 as published by the Free Software Foundation.
   6 *
   7 * This program is distributed in the hope that it will be useful,
   8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
   9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10 * GNU General Public License for more details.
  11 *
  12 * You should have received a copy of the GNU General Public License
  13 * along with this program; if not, write to the Free Software
  14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  15 * 02110-1301, USA.
  16 */
  17
  18#include <linux/kernel.h>
  19#include <linux/irq.h>
  20#include <linux/gpio.h>
  21#include <linux/platform_device.h>
  22#include <linux/delay.h>
  23#include <linux/io.h>
  24#include <linux/smsc911x.h>
  25#include <linux/usb/msm_hsusb.h>
  26
  27#include <asm/mach-types.h>
  28#include <asm/mach/arch.h>
  29#include <asm/setup.h>
  30
  31#include <mach/gpio.h>
  32#include <mach/board.h>
  33#include <mach/memory.h>
  34#include <mach/msm_iomap.h>
  35#include <mach/dma.h>
  36
  37#include <mach/vreg.h>
  38#include "devices.h"
  39#include "proc_comm.h"
  40
  41extern struct sys_timer msm_timer;
  42
  43static int hsusb_phy_init_seq[] = {
  44        0x30, 0x32,     /* Enable and set Pre-Emphasis Depth to 20% */
  45        0x02, 0x36,     /* Disable CDR Auto Reset feature */
  46        -1
  47};
  48
  49static struct msm_otg_platform_data msm_otg_pdata = {
  50        .phy_init_seq           = hsusb_phy_init_seq,
  51        .mode                   = USB_PERIPHERAL,
  52        .otg_control            = OTG_PHY_CONTROL,
  53};
  54
  55static struct platform_device *devices[] __initdata = {
  56#if defined(CONFIG_SERIAL_MSM) || defined(CONFIG_MSM_SERIAL_DEBUGGER)
  57        &msm_device_uart2,
  58#endif
  59        &msm_device_smd,
  60        &msm_device_otg,
  61        &msm_device_hsusb,
  62        &msm_device_hsusb_host,
  63};
  64
  65static void __init msm7x30_init_irq(void)
  66{
  67        msm_init_irq();
  68}
  69
  70static void __init msm7x30_init(void)
  71{
  72        msm_device_otg.dev.platform_data = &msm_otg_pdata;
  73        msm_device_hsusb.dev.parent = &msm_device_otg.dev;
  74        msm_device_hsusb_host.dev.parent = &msm_device_otg.dev;
  75
  76        platform_add_devices(devices, ARRAY_SIZE(devices));
  77}
  78
  79static void __init msm7x30_map_io(void)
  80{
  81        msm_map_msm7x30_io();
  82        msm_clock_init(msm_clocks_7x30, msm_num_clocks_7x30);
  83}
  84
  85MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF")
  86#ifdef CONFIG_MSM_DEBUG_UART
  87#endif
  88        .boot_params = PHYS_OFFSET + 0x100,
  89        .map_io = msm7x30_map_io,
  90        .init_irq = msm7x30_init_irq,
  91        .init_machine = msm7x30_init,
  92        .timer = &msm_timer,
  93MACHINE_END
  94
  95MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA")
  96#ifdef CONFIG_MSM_DEBUG_UART
  97#endif
  98        .boot_params = PHYS_OFFSET + 0x100,
  99        .map_io = msm7x30_map_io,
 100        .init_irq = msm7x30_init_irq,
 101        .init_machine = msm7x30_init,
 102        .timer = &msm_timer,
 103MACHINE_END
 104
 105MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID")
 106#ifdef CONFIG_MSM_DEBUG_UART
 107#endif
 108        .boot_params = PHYS_OFFSET + 0x100,
 109        .map_io = msm7x30_map_io,
 110        .init_irq = msm7x30_init_irq,
 111        .init_machine = msm7x30_init,
 112        .timer = &msm_timer,
 113MACHINE_END
 114