Logo Search packages:      
Sourcecode: linux version File versions  Download package

board-n8x0.c

/*
 * linux/arch/arm/mach-omap2/board-n8x0.c
 *
 * Copyright (C) 2005-2009 Nokia Corporation
 * Author: Juha Yrjola <juha.yrjola@nokia.com>
 *
 * Modified from mach-omap2/board-generic.c
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/gpio.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/stddef.h>
#include <linux/spi/spi.h>
#include <linux/usb/musb.h>

#include <asm/mach/arch.h>
#include <asm/mach-types.h>

#include <mach/board.h>
#include <mach/common.h>
#include <mach/irqs.h>
#include <mach/mcspi.h>
#include <mach/onenand.h>
#include <mach/serial.h>

static struct omap2_mcspi_device_config p54spi_mcspi_config = {
      .turbo_mode = 0,
      .single_channel = 1,
};

static struct spi_board_info n800_spi_board_info[] __initdata = {
      {
            .modalias   = "p54spi",
            .bus_num    = 2,
            .chip_select      = 0,
            .max_speed_hz   = 48000000,
            .controller_data = &p54spi_mcspi_config,
      },
};

#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
      defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)

static struct mtd_partition onenand_partitions[] = {
      {
            .name           = "bootloader",
            .offset         = 0,
            .size           = 0x20000,
            .mask_flags     = MTD_WRITEABLE,    /* Force read-only */
      },
      {
            .name           = "config",
            .offset         = MTDPART_OFS_APPEND,
            .size           = 0x60000,
      },
      {
            .name           = "kernel",
            .offset         = MTDPART_OFS_APPEND,
            .size           = 0x200000,
      },
      {
            .name           = "initfs",
            .offset         = MTDPART_OFS_APPEND,
            .size           = 0x400000,
      },
      {
            .name           = "rootfs",
            .offset         = MTDPART_OFS_APPEND,
            .size           = MTDPART_SIZ_FULL,
      },
};

static struct omap_onenand_platform_data board_onenand_data = {
      .cs         = 0,
      .gpio_irq   = 26,
      .parts            = onenand_partitions,
      .nr_parts   = ARRAY_SIZE(onenand_partitions),
      .flags            = ONENAND_SYNC_READ,
};

static void __init n8x0_onenand_init(void)
{
      gpmc_onenand_init(&board_onenand_data);
}

#else

static void __init n8x0_onenand_init(void) {}

#endif

static void __init n8x0_map_io(void)
{
      omap2_set_globals_242x();
      omap2_map_common_io();
}

static void __init n8x0_init_irq(void)
{
      omap2_init_common_hw(NULL, NULL);
      omap_init_irq();
      omap_gpio_init();
}

static void __init n8x0_init_machine(void)
{
      /* FIXME: add n810 spi devices */
      spi_register_board_info(n800_spi_board_info,
                        ARRAY_SIZE(n800_spi_board_info));

      omap_serial_init();
      n8x0_onenand_init();
}

MACHINE_START(NOKIA_N800, "Nokia N800")
      .phys_io    = 0x48000000,
      .io_pg_offst      = ((0xd8000000) >> 18) & 0xfffc,
      .boot_params      = 0x80000100,
      .map_io           = n8x0_map_io,
      .init_irq   = n8x0_init_irq,
      .init_machine     = n8x0_init_machine,
      .timer            = &omap_timer,
MACHINE_END

MACHINE_START(NOKIA_N810, "Nokia N810")
      .phys_io    = 0x48000000,
      .io_pg_offst      = ((0xd8000000) >> 18) & 0xfffc,
      .boot_params      = 0x80000100,
      .map_io           = n8x0_map_io,
      .init_irq   = n8x0_init_irq,
      .init_machine     = n8x0_init_machine,
      .timer            = &omap_timer,
MACHINE_END

MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
      .phys_io    = 0x48000000,
      .io_pg_offst      = ((0xd8000000) >> 18) & 0xfffc,
      .boot_params      = 0x80000100,
      .map_io           = n8x0_map_io,
      .init_irq   = n8x0_init_irq,
      .init_machine     = n8x0_init_machine,
      .timer            = &omap_timer,
MACHINE_END

Generated by  Doxygen 1.6.0   Back to index