aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorTim Nordell <tim.nordell@logicpd.com>2010-09-27 12:05:47 -0400
committerTony Lindgren <tony@atomide.com>2010-09-28 12:58:41 -0400
commitd40f3f15d31e93fce3960d90caaa5a40b52494e8 (patch)
treef8e151b72109577f22bf10869e4de997a38a8051 /arch
parentb45b501c31ce496dbb2b96a8d606642261fa8d8b (diff)
ARM: OMAP3LOGIC: Adding LogicPD OMAP3 board support
Adding support for LogicPD's OMAP 3530 LV SOM and OMAP 35x Torpedo board. Signed-off-by: Tim Nordell <tim.nordell@logicpd.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/Kconfig20
-rw-r--r--arch/arm/mach-omap2/Makefile4
-rw-r--r--arch/arm/mach-omap2/board-omap3logic.c143
-rw-r--r--arch/arm/plat-omap/include/plat/uncompress.h2
4 files changed, 169 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 9ceb72b9c59..1c4b2377862 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -137,6 +137,26 @@ config MACH_OMAP_LDP
137 default y 137 default y
138 select OMAP_PACKAGE_CBB 138 select OMAP_PACKAGE_CBB
139 139
140config MACH_OMAP3530_LV_SOM
141 bool "OMAP3 Logic 3530 LV SOM board"
142 depends on ARCH_OMAP3
143 select OMAP_PACKAGE_CBB
144 default y
145 help
146 Support for the LogicPD OMAP3530 SOM Development kit
147 for full description please see the products webpage at
148 http://www.logicpd.com/products/development-kits/texas-instruments-zoom%E2%84%A2-omap35x-development-kit
149
150config MACH_OMAP3_TORPEDO
151 bool "OMAP3 Logic 35x Torpedo board"
152 depends on ARCH_OMAP3
153 select OMAP_PACKAGE_CBB
154 default y
155 help
156 Support for the LogicPD OMAP35x Torpedo Development kit
157 for full description please see the products webpage at
158 http://www.logicpd.com/products/development-kits/zoom-omap35x-torpedo-development-kit
159
140config MACH_OVERO 160config MACH_OVERO
141 bool "Gumstix Overo board" 161 bool "Gumstix Overo board"
142 depends on ARCH_OMAP3 162 depends on ARCH_OMAP3
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 9d1a36032fb..1c525a8b9c5 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -120,6 +120,10 @@ obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o \
120obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o \ 120obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o \
121 board-flash.o \ 121 board-flash.o \
122 hsmmc.o 122 hsmmc.o
123obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o \
124 hsmmc.o
125obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o \
126 hsmmc.o
123obj-$(CONFIG_MACH_OVERO) += board-overo.o \ 127obj-$(CONFIG_MACH_OVERO) += board-overo.o \
124 hsmmc.o 128 hsmmc.o
125obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o \ 129obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o \
diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-omap2/board-omap3logic.c
new file mode 100644
index 00000000000..ac3b0f7163c
--- /dev/null
+++ b/arch/arm/mach-omap2/board-omap3logic.c
@@ -0,0 +1,143 @@
1/*
2 * linux/arch/arm/mach-omap2/board-omap3logic.c
3 *
4 * Copyright (C) 2010 Li-Pro.Net
5 * Stephan Linz <linz@li-pro.net>
6 *
7 * Copyright (C) 2010 Logic Product Development, Inc.
8 * Peter Barada <peter.barada@logicpd.com>
9 *
10 * Modified from Beagle, EVM, and RX51
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License version 2 as
14 * published by the Free Software Foundation.
15 */
16
17#include <linux/kernel.h>
18#include <linux/init.h>
19#include <linux/platform_device.h>
20#include <linux/delay.h>
21#include <linux/err.h>
22#include <linux/clk.h>
23#include <linux/io.h>
24#include <linux/gpio.h>
25
26#include <linux/regulator/machine.h>
27
28#include <linux/i2c/twl.h>
29
30#include <mach/hardware.h>
31#include <asm/mach-types.h>
32#include <asm/mach/arch.h>
33#include <asm/mach/map.h>
34
35#include "mux.h"
36
37#include <plat/mux.h>
38#include <plat/board.h>
39#include <plat/common.h>
40#include <plat/gpmc.h>
41#include <plat/timer-gp.h>
42#include <plat/sdrc.h>
43#include <plat/control.h>
44
45#define OMAP3LOGIC_SMSC911X_CS 1
46
47#define OMAP3530_LV_SOM_MMC_GPIO_CD 110
48#define OMAP3530_LV_SOM_MMC_GPIO_WP 126
49#define OMAP3530_LV_SOM_SMSC911X_GPIO_IRQ 152
50
51#define OMAP3_TORPEDO_MMC_GPIO_CD 127
52#define OMAP3_TORPEDO_SMSC911X_GPIO_IRQ 129
53
54static struct regulator_consumer_supply omap3logic_vmmc1_supply = {
55 .supply = "vmmc",
56};
57
58/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */
59static struct regulator_init_data omap3logic_vmmc1 = {
60 .constraints = {
61 .name = "VMMC1",
62 .min_uV = 1850000,
63 .max_uV = 3150000,
64 .valid_modes_mask = REGULATOR_MODE_NORMAL
65 | REGULATOR_MODE_STANDBY,
66 .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE
67 | REGULATOR_CHANGE_MODE
68 | REGULATOR_CHANGE_STATUS,
69 },
70 .num_consumer_supplies = 1,
71 .consumer_supplies = &omap3logic_vmmc1_supply,
72};
73
74static struct twl4030_gpio_platform_data omap3logic_gpio_data = {
75 .gpio_base = OMAP_MAX_GPIO_LINES,
76 .irq_base = TWL4030_GPIO_IRQ_BASE,
77 .irq_end = TWL4030_GPIO_IRQ_END,
78 .use_leds = true,
79 .pullups = BIT(1),
80 .pulldowns = BIT(2) | BIT(6) | BIT(7) | BIT(8)
81 | BIT(13) | BIT(15) | BIT(16) | BIT(17),
82};
83
84static struct twl4030_platform_data omap3logic_twldata = {
85 .irq_base = TWL4030_IRQ_BASE,
86 .irq_end = TWL4030_IRQ_END,
87
88 /* platform_data for children goes here */
89 .gpio = &omap3logic_gpio_data,
90};
91
92static struct i2c_board_info __initdata omap3logic_i2c_boardinfo[] = {
93 {
94 I2C_BOARD_INFO("twl4030", 0x48),
95 .flags = I2C_CLIENT_WAKE,
96 .irq = INT_34XX_SYS_NIRQ,
97 .platform_data = &omap3logic_twldata,
98 },
99};
100
101static int __init omap3logic_i2c_init(void)
102{
103 omap_register_i2c_bus(1, 2600, omap3logic_i2c_boardinfo,
104 ARRAY_SIZE(omap3logic_i2c_boardinfo));
105 return 0;
106}
107
108static void __init omap3logic_init_irq(void)
109{
110 omap2_init_common_hw(NULL, NULL);
111 omap_init_irq();
112 omap_gpio_init();
113}
114
115static void __init omap3logic_init(void)
116{
117 omap3logic_i2c_init();
118 omap_serial_init();
119
120 /* Ensure SDRC pins are mux'd for self-refresh */
121 omap_mux_init_signal("sdrc_cke0", OMAP_PIN_OUTPUT);
122 omap_mux_init_signal("sdrc_cke1", OMAP_PIN_OUTPUT);
123}
124
125MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board")
126 .phys_io = 0x48000000,
127 .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
128 .boot_params = 0x80000100,
129 .map_io = omap3_map_io,
130 .init_irq = omap3logic_init_irq,
131 .init_machine = omap3logic_init,
132 .timer = &omap_timer,
133MACHINE_END
134
135MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board")
136 .phys_io = 0x48000000,
137 .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc,
138 .boot_params = 0x80000100,
139 .map_io = omap3_map_io,
140 .init_irq = omap3logic_init_irq,
141 .init_machine = omap3logic_init,
142 .timer = &omap_timer,
143MACHINE_END
diff --git a/arch/arm/plat-omap/include/plat/uncompress.h b/arch/arm/plat-omap/include/plat/uncompress.h
index ab60b3560b3..2769395b4ea 100644
--- a/arch/arm/plat-omap/include/plat/uncompress.h
+++ b/arch/arm/plat-omap/include/plat/uncompress.h
@@ -139,6 +139,8 @@ static inline void __arch_decomp_setup(unsigned long arch_id)
139 DEBUG_LL_OMAP2(1, omap3evm); 139 DEBUG_LL_OMAP2(1, omap3evm);
140 DEBUG_LL_OMAP3(1, omap_3430sdp); 140 DEBUG_LL_OMAP3(1, omap_3430sdp);
141 DEBUG_LL_OMAP3(1, omap_3630sdp); 141 DEBUG_LL_OMAP3(1, omap_3630sdp);
142 DEBUG_LL_OMAP3(1, omap3530_lv_som);
143 DEBUG_LL_OMAP3(1, omap3_torpedo);
142 144
143 /* omap3 based boards using UART3 */ 145 /* omap3 based boards using UART3 */
144 DEBUG_LL_OMAP3(3, cm_t35); 146 DEBUG_LL_OMAP3(3, cm_t35);