]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
OMAP: Initial N810 support
authorLauri Leukkunen <lauri.leukkunen@nokia.com>
Fri, 23 Nov 2007 00:38:36 +0000 (02:38 +0200)
committerTony Lindgren <tony@atomide.com>
Wed, 28 Nov 2007 02:09:12 +0000 (18:09 -0800)
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 <lauri.leukkunen@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/board-n800.c
arch/arm/mach-omap2/board-n800.h [new file with mode: 0644]
arch/arm/mach-omap2/board-n810.c [new file with mode: 0644]
arch/arm/plat-omap/common.c

index 95c41bcd9968176868bf02d35ea0f09ef7793e27..4220c893c51e55e6ed1a011ff9483f3c1d02ccc5 100644 (file)
@@ -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
index 5bf2dd1b2b6a8e95ab52ae6783dbb23290f2609f..21959914d199bf8c49fadf8d295bf98ef4fe79c7 100644 (file)
@@ -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
index 4271d9324cc08a5c9a39f815ed144ba32a4af0b9..8909eca76ac3b3b0fdee0a65e9fbaf1c929e49c5 100644 (file)
@@ -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 <juha.yrjola@nokia.com>
  *
  * Modified from mach-omap2/board-generic.c
 #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 (file)
index 0000000..556d835
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * linux/arch/arm/mach-omap2/board-n800.c
+ *
+ * Copyright (C) 2005-2007 Nokia Corporation
+ * Author: Lauri Leukkunen <lauri.leukkunen@nokia.com>
+ *
+ * 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 (file)
index 0000000..c4f4dd5
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * linux/arch/arm/mach-omap2/board-n810.c
+ *
+ * Copyright (C) 2007 Nokia
+ * Author: Lauri Leukkunen <lauri.leukkunen@nokia.com>
+ *
+ * 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/init.h>
+
+#include <asm/hardware.h>
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <asm/arch/board.h>
+#include <asm/arch/common.h>
+
+#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
index 7cc9786ecfbc36e2e8fb9f86b17919d4a075403c..d6041da333717e357fbc3f118f440a070d5aa705 100644 (file)
@@ -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;