From 708b8f56a2c1f5ed7322c97d5f563a67e97f299a Mon Sep 17 00:00:00 2001 From: Lauri Leukkunen Date: Fri, 23 Nov 2007 02:38:36 +0200 Subject: [PATCH] OMAP: Initial N810 support Built alongside N800 sharing most of the init code through board-n800.h. Bootloader tag array size is increased from 512 to 1024. Many drivers are still missing or don't work correctly, but at least serial console is functional and jffs2 works with lzo compression. Signed-off-by: Lauri Leukkunen Signed-off-by: Tony Lindgren --- arch/arm/mach-omap2/Kconfig | 4 ++++ arch/arm/mach-omap2/Makefile | 1 + arch/arm/mach-omap2/board-n800.c | 22 ++++++++++++-------- arch/arm/mach-omap2/board-n800.h | 21 +++++++++++++++++++ arch/arm/mach-omap2/board-n810.c | 35 ++++++++++++++++++++++++++++++++ arch/arm/plat-omap/common.c | 2 +- 6 files changed, 76 insertions(+), 9 deletions(-) create mode 100644 arch/arm/mach-omap2/board-n800.h create mode 100644 arch/arm/mach-omap2/board-n810.c diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 95c41bcd996..4220c893c51 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -39,6 +39,10 @@ config MACH_NOKIA_N800 select MENELAUS if VIDEO_TCM825X select OMAP_GPIO_SWITCH +config MACH_NOKIA_N810 + bool "Nokia N810" + depends on MACH_NOKIA_N800 + config MACH_OMAP2_TUSB6010 bool depends on ARCH_OMAP2 && ARCH_OMAP2420 diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 5bf2dd1b2b6..21959914d19 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -34,6 +34,7 @@ obj-$(CONFIG_MACH_NOKIA_N800) += board-n800.o board-n800-flash.o \ board-n800-audio.o board-n800-usb.o \ board-n800-dsp.o \ board-n800-camera.o +obj-$(CONFIG_MACH_NOKIA_N810) += board-n810.o # TUSB 6010 chips obj-$(CONFIG_MACH_OMAP2_TUSB6010) += usb-tusb6010.o diff --git a/arch/arm/mach-omap2/board-n800.c b/arch/arm/mach-omap2/board-n800.c index 4271d9324cc..8909eca76ac 100644 --- a/arch/arm/mach-omap2/board-n800.c +++ b/arch/arm/mach-omap2/board-n800.c @@ -1,7 +1,7 @@ /* * linux/arch/arm/mach-omap2/board-n800.c * - * Copyright (C) 2005 Nokia Corporation + * Copyright (C) 2005-2007 Nokia Corporation * Author: Juha Yrjola * * Modified from mach-omap2/board-generic.c @@ -42,11 +42,11 @@ #include <../drivers/cbus/tahvo.h> #include <../drivers/media/video/tcm825x.h> -#define N800_BLIZZARD_POWERDOWN_GPIO 15 -#define N800_STI_GPIO 62 +#define N800_BLIZZARD_POWERDOWN_GPIO 15 +#define N800_STI_GPIO 62 #define N800_KEYB_IRQ_GPIO 109 -static void __init nokia_n800_init_irq(void) +void __init nokia_n800_init_irq(void) { omap2_init_common_hw(); omap_init_irq(); @@ -459,18 +459,16 @@ static struct i2c_board_info __initdata n800_i2c_board_info_2[] = { extern void __init n800_mmc_init(void); -static void __init nokia_n800_init(void) +void __init nokia_n800_common_init(void) { platform_add_devices(n800_devices, ARRAY_SIZE(n800_devices)); n800_flash_init(); n800_mmc_init(); n800_bt_init(); - n800_audio_init(&tsc2301_config); n800_dsp_init(); n800_usb_init(); n800_cam_init(); - n800_ts_set_config(); spi_register_board_info(n800_spi_board_info, ARRAY_SIZE(n800_spi_board_info)); omap_serial_init(); @@ -480,12 +478,20 @@ static void __init nokia_n800_init(void) ARRAY_SIZE(n800_i2c_board_info_2)); mipid_dev_init(); blizzard_dev_init(); +} + +static void __init nokia_n800_init(void) +{ + nokia_n800_common_init(); + + n800_audio_init(&tsc2301_config); + n800_ts_set_config(); tsc2301_dev_init(); omap_register_gpio_switches(n800_gpio_switches, ARRAY_SIZE(n800_gpio_switches)); } -static void __init nokia_n800_map_io(void) +void __init nokia_n800_map_io(void) { omap_board_config = n800_config; omap_board_config_size = ARRAY_SIZE(n800_config); diff --git a/arch/arm/mach-omap2/board-n800.h b/arch/arm/mach-omap2/board-n800.h new file mode 100644 index 00000000000..556d835bf9d --- /dev/null +++ b/arch/arm/mach-omap2/board-n800.h @@ -0,0 +1,21 @@ +/* + * linux/arch/arm/mach-omap2/board-n800.c + * + * Copyright (C) 2005-2007 Nokia Corporation + * Author: Lauri Leukkunen + * + * Modified from mach-omap2/board-n800.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. + */ + +#ifndef __ARCH_ARM_MACH_OMAP2_BOARD_N800_H +#define __ARCH_ARM_MACH_OMAP2_BOARD_N800_H + +void __init nokia_n800_common_init(void); +void __init nokia_n800_map_io(void); +void __init nokia_n800_init_irq(void); + +#endif diff --git a/arch/arm/mach-omap2/board-n810.c b/arch/arm/mach-omap2/board-n810.c new file mode 100644 index 00000000000..c4f4dd594c5 --- /dev/null +++ b/arch/arm/mach-omap2/board-n810.c @@ -0,0 +1,35 @@ +/* + * linux/arch/arm/mach-omap2/board-n810.c + * + * Copyright (C) 2007 Nokia + * Author: Lauri Leukkunen + * + * 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 + +#include +#include +#include +#include +#include + +#include "board-n800.h" + +static void __init nokia_n810_init(void) +{ + nokia_n800_common_init(); +} + +MACHINE_START(NOKIA_N810, "Nokia N810") + .phys_io = 0x48000000, + .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, + .boot_params = 0x80000100, + .map_io = nokia_n800_map_io, + .init_irq = nokia_n800_init_irq, + .init_machine = nokia_n810_init, + .timer = &omap_timer, +MACHINE_END diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index 7cc9786ecfb..d6041da3337 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c @@ -40,7 +40,7 @@ u32 omap2_ctrl_base; /* until we have a better place to put it */ -unsigned char omap_bootloader_tag[512]; +unsigned char omap_bootloader_tag[1024]; int omap_bootloader_tag_len; struct omap_board_config_kernel *omap_board_config; -- 2.41.0