diff options
author | Pavel Machek <pavel@ucw.cz> | 2009-11-18 13:18:24 -0500 |
---|---|---|
committer | Daniel Walker <dwalker@fifo99.com> | 2009-11-20 09:40:19 -0500 |
commit | 348ee123a15ec064c0c4c98ecb5fbf4737153887 (patch) | |
tree | b45314b8711be193e0410b02cfb9204104b8fbca /arch/arm/mach-msm | |
parent | 6339f6695f84e48b42021c6df91d81b17308fe92 (diff) |
msm: add minimal board file for HTC Dream device
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>
Diffstat (limited to 'arch/arm/mach-msm')
-rw-r--r-- | arch/arm/mach-msm/Kconfig | 6 | ||||
-rw-r--r-- | arch/arm/mach-msm/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-dream.c | 82 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-dream.h | 5 |
4 files changed, 94 insertions, 0 deletions
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig index 35f2a90a2afe..f780086befd7 100644 --- a/arch/arm/mach-msm/Kconfig +++ b/arch/arm/mach-msm/Kconfig | |||
@@ -34,4 +34,10 @@ config MACH_HALIBUT | |||
34 | help | 34 | help |
35 | Support for the Qualcomm SURF7201A eval board. | 35 | Support for the Qualcomm SURF7201A eval board. |
36 | 36 | ||
37 | config MACH_TROUT | ||
38 | default y | ||
39 | bool "HTC Dream (aka trout)" | ||
40 | help | ||
41 | Support for the HTC Dream, T-Mobile G1, Android ADP1 devices. | ||
42 | |||
37 | endif | 43 | endif |
diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile index 1aa47001aa3b..91e6f5c95dc1 100644 --- a/arch/arm/mach-msm/Makefile +++ b/arch/arm/mach-msm/Makefile | |||
@@ -6,3 +6,4 @@ obj-y += clock.o clock-7x01a.o | |||
6 | 6 | ||
7 | obj-$(CONFIG_MACH_HALIBUT) += board-halibut.o | 7 | obj-$(CONFIG_MACH_HALIBUT) += board-halibut.o |
8 | 8 | ||
9 | 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 index 000000000000..931a79649463 --- /dev/null +++ b/arch/arm/mach-msm/board-dream.c | |||
@@ -0,0 +1,82 @@ | |||
1 | /* linux/arch/arm/mach-msm/board-dream.c | ||
2 | * | ||
3 | * Copyright (C) 2009 Google, Inc. | ||
4 | * Author: Brian Swetland <swetland@google.com> | ||
5 | * | ||
6 | * This software is licensed under the terms of the GNU General Public | ||
7 | * License version 2, as published by the Free Software Foundation, and | ||
8 | * may be copied, distributed, and modified under those terms. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | #include <linux/kernel.h> | ||
18 | #include <linux/init.h> | ||
19 | #include <linux/platform_device.h> | ||
20 | |||
21 | #include <asm/mach-types.h> | ||
22 | #include <asm/mach/arch.h> | ||
23 | #include <asm/mach/map.h> | ||
24 | |||
25 | #include <mach/board.h> | ||
26 | #include <mach/hardware.h> | ||
27 | #include <mach/msm_iomap.h> | ||
28 | |||
29 | #include "devices.h" | ||
30 | #include "board-dream.h" | ||
31 | |||
32 | static struct platform_device *devices[] __initdata = { | ||
33 | &msm_device_uart3, | ||
34 | &msm_device_smd, | ||
35 | &msm_device_nand, | ||
36 | &msm_device_hsusb, | ||
37 | &msm_device_i2c, | ||
38 | }; | ||
39 | |||
40 | extern struct sys_timer msm_timer; | ||
41 | |||
42 | static void __init trout_init_irq(void) | ||
43 | { | ||
44 | msm_init_irq(); | ||
45 | } | ||
46 | |||
47 | static void __init trout_init(void) | ||
48 | { | ||
49 | platform_add_devices(devices, ARRAY_SIZE(devices)); | ||
50 | } | ||
51 | |||
52 | static struct map_desc trout_io_desc[] __initdata = { | ||
53 | { | ||
54 | .virtual = TROUT_CPLD_BASE, | ||
55 | .pfn = __phys_to_pfn(TROUT_CPLD_START), | ||
56 | .length = TROUT_CPLD_SIZE, | ||
57 | .type = MT_DEVICE_NONSHARED | ||
58 | } | ||
59 | }; | ||
60 | |||
61 | static void __init trout_map_io(void) | ||
62 | { | ||
63 | msm_map_common_io(); | ||
64 | iotable_init(trout_io_desc, ARRAY_SIZE(trout_io_desc)); | ||
65 | |||
66 | #ifdef CONFIG_MSM_DEBUG_UART3 | ||
67 | /* route UART3 to the "H2W" extended usb connector */ | ||
68 | writeb(0x80, TROUT_CPLD_BASE + 0x00); | ||
69 | #endif | ||
70 | |||
71 | msm_clock_init(); | ||
72 | } | ||
73 | |||
74 | MACHINE_START(TROUT, "HTC Dream") | ||
75 | .phys_io = MSM_DEBUG_UART_PHYS, | ||
76 | .io_pg_offst = ((MSM_DEBUG_UART_BASE) >> 18) & 0xfffc, | ||
77 | .boot_params = 0x10000100, | ||
78 | .map_io = trout_map_io, | ||
79 | .init_irq = trout_init_irq, | ||
80 | .init_machine = trout_init, | ||
81 | .timer = &msm_timer, | ||
82 | MACHINE_END | ||
diff --git a/arch/arm/mach-msm/board-dream.h b/arch/arm/mach-msm/board-dream.h new file mode 100644 index 000000000000..4f345a5a0a61 --- /dev/null +++ b/arch/arm/mach-msm/board-dream.h | |||
@@ -0,0 +1,5 @@ | |||
1 | |||
2 | #define TROUT_CPLD_BASE 0xE8100000 | ||
3 | #define TROUT_CPLD_START 0x98000000 | ||
4 | #define TROUT_CPLD_SIZE SZ_4K | ||
5 | |||