-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
OMAP2: add board file for Nokia N800 and N810
Add board file for Nokia N800 and N810 devices. Currently only serial ports, onenand and spi are configured, more to come later. Tested on Nokia N800. Signed-off-by: Kalle Valo <kalle.valo@iki.fi> Signed-off-by: Tony Lindgren <tony@atomide.com>
- Loading branch information
Kalle Valo
authored and
Tony Lindgren
committed
Aug 28, 2009
1 parent
1b52d5d
commit 6313881
Showing
3 changed files
with
155 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
/* | ||
* 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 |