msm: add minimal board file for HTC Dream device
authorPavel Machek <pavel@ucw.cz>
Wed, 18 Nov 2009 18:18:24 +0000 (19:18 +0100)
committerDaniel Walker <dwalker@fifo99.com>
Fri, 20 Nov 2009 14:40:19 +0000 (06:40 -0800)
This is just enough to get the device booting and serial console
working.  Sufficient for debugging further MSM7k/Dream Support.
This will support HTC Dream / T-Mobile G1 / Android ADP1 (which
are all the same hardware, known as "trout" to the ARM machine
database).

Signed-off-by: Brian Swetland <swetland@google.com>
Reviewed-by: GeunSik Lim <geunsik.lim@samsung.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
arch/arm/mach-msm/Kconfig
arch/arm/mach-msm/Makefile
arch/arm/mach-msm/board-dream.c [new file with mode: 0644]
arch/arm/mach-msm/board-dream.h [new file with mode: 0644]

index 35f2a90..f780086 100644 (file)
@@ -34,4 +34,10 @@ config MACH_HALIBUT
        help
          Support for the Qualcomm SURF7201A eval board.
 
+config MACH_TROUT
+       default y
+       bool "HTC Dream (aka trout)"
+       help
+         Support for the HTC Dream, T-Mobile G1, Android ADP1 devices.
+
 endif
index 1aa4700..91e6f5c 100644 (file)
@@ -6,3 +6,4 @@ obj-y += clock.o clock-7x01a.o
 
 obj-$(CONFIG_MACH_HALIBUT) += board-halibut.o
 
+obj-$(CONFIG_MACH_TROUT) += board-dream.o
diff --git a/arch/arm/mach-msm/board-dream.c b/arch/arm/mach-msm/board-dream.c
new file mode 100644 (file)
index 0000000..931a796
--- /dev/null
@@ -0,0 +1,82 @@
+/* linux/arch/arm/mach-msm/board-dream.c
+ *
+ * Copyright (C) 2009 Google, Inc.
+ * Author: Brian Swetland <swetland@google.com>
+ *
+ * This software is licensed under the terms of the GNU General Public
+ * License version 2, as published by the Free Software Foundation, and
+ * may be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+
+#include <asm/mach-types.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+
+#include <mach/board.h>
+#include <mach/hardware.h>
+#include <mach/msm_iomap.h>
+
+#include "devices.h"
+#include "board-dream.h"
+
+static struct platform_device *devices[] __initdata = {
+       &msm_device_uart3,
+       &msm_device_smd,
+       &msm_device_nand,
+       &msm_device_hsusb,
+       &msm_device_i2c,
+};
+
+extern struct sys_timer msm_timer;
+
+static void __init trout_init_irq(void)
+{
+       msm_init_irq();
+}
+
+static void __init trout_init(void)
+{
+       platform_add_devices(devices, ARRAY_SIZE(devices));
+}
+
+static struct map_desc trout_io_desc[] __initdata = {
+       {
+               .virtual = TROUT_CPLD_BASE,
+               .pfn     = __phys_to_pfn(TROUT_CPLD_START),
+               .length  = TROUT_CPLD_SIZE,
+               .type    = MT_DEVICE_NONSHARED
+       }
+};
+
+static void __init trout_map_io(void)
+{
+       msm_map_common_io();
+       iotable_init(trout_io_desc, ARRAY_SIZE(trout_io_desc));
+
+#ifdef CONFIG_MSM_DEBUG_UART3
+       /* route UART3 to the "H2W" extended usb connector */
+       writeb(0x80, TROUT_CPLD_BASE + 0x00);
+#endif
+
+       msm_clock_init();
+}
+
+MACHINE_START(TROUT, "HTC Dream")
+       .phys_io        = MSM_DEBUG_UART_PHYS,
+       .io_pg_offst    = ((MSM_DEBUG_UART_BASE) >> 18) & 0xfffc,
+       .boot_params    = 0x10000100,
+       .map_io         = trout_map_io,
+       .init_irq       = trout_init_irq,
+       .init_machine   = trout_init,
+       .timer          = &msm_timer,
+MACHINE_END
diff --git a/arch/arm/mach-msm/board-dream.h b/arch/arm/mach-msm/board-dream.h
new file mode 100644 (file)
index 0000000..4f345a5
--- /dev/null
@@ -0,0 +1,5 @@
+
+#define TROUT_CPLD_BASE   0xE8100000
+#define TROUT_CPLD_START  0x98000000
+#define TROUT_CPLD_SIZE   SZ_4K
+