diff options
21 files changed, 256 insertions, 86 deletions
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c index ab708d4c597e..79cfe0147d93 100644 --- a/arch/arm/mach-omap1/devices.c +++ b/arch/arm/mach-omap1/devices.c | |||
@@ -101,7 +101,7 @@ static inline void omap_init_mbox(void) { } | |||
101 | 101 | ||
102 | #if defined(CONFIG_OMAP_STI) | 102 | #if defined(CONFIG_OMAP_STI) |
103 | 103 | ||
104 | #define OMAP1_STI_BASE IO_ADDRESS(0xfffea000) | 104 | #define OMAP1_STI_BASE 0xfffea000 |
105 | #define OMAP1_STI_CHANNEL_BASE (OMAP1_STI_BASE + 0x400) | 105 | #define OMAP1_STI_CHANNEL_BASE (OMAP1_STI_BASE + 0x400) |
106 | 106 | ||
107 | static struct resource sti_resources[] = { | 107 | static struct resource sti_resources[] = { |
diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h index ea55f286f47d..1fb330e0847d 100644 --- a/arch/arm/mach-omap2/clock.h +++ b/arch/arm/mach-omap2/clock.h | |||
@@ -21,6 +21,7 @@ | |||
21 | /* The maximum error between a target DPLL rate and the rounded rate in Hz */ | 21 | /* The maximum error between a target DPLL rate and the rounded rate in Hz */ |
22 | #define DEFAULT_DPLL_RATE_TOLERANCE 50000 | 22 | #define DEFAULT_DPLL_RATE_TOLERANCE 50000 |
23 | 23 | ||
24 | int omap2_clk_init(void); | ||
24 | int omap2_clk_enable(struct clk *clk); | 25 | int omap2_clk_enable(struct clk *clk); |
25 | void omap2_clk_disable(struct clk *clk); | 26 | void omap2_clk_disable(struct clk *clk); |
26 | long omap2_clk_round_rate(struct clk *clk, unsigned long rate); | 27 | long omap2_clk_round_rate(struct clk *clk, unsigned long rate); |
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 7a7f02559075..7cca33e23fd1 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -23,50 +23,7 @@ | |||
23 | #include <mach/board.h> | 23 | #include <mach/board.h> |
24 | #include <mach/mux.h> | 24 | #include <mach/mux.h> |
25 | #include <mach/gpio.h> | 25 | #include <mach/gpio.h> |
26 | 26 | #include <mach/eac.h> | |
27 | #if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE) | ||
28 | |||
29 | #define OMAP2_I2C_BASE2 0x48072000 | ||
30 | #define OMAP2_I2C_INT2 57 | ||
31 | |||
32 | static struct resource i2c_resources2[] = { | ||
33 | { | ||
34 | .start = OMAP2_I2C_BASE2, | ||
35 | .end = OMAP2_I2C_BASE2 + 0x3f, | ||
36 | .flags = IORESOURCE_MEM, | ||
37 | }, | ||
38 | { | ||
39 | .start = OMAP2_I2C_INT2, | ||
40 | .flags = IORESOURCE_IRQ, | ||
41 | }, | ||
42 | }; | ||
43 | |||
44 | static struct platform_device omap_i2c_device2 = { | ||
45 | .name = "i2c_omap", | ||
46 | .id = 2, | ||
47 | .num_resources = ARRAY_SIZE(i2c_resources2), | ||
48 | .resource = i2c_resources2, | ||
49 | }; | ||
50 | |||
51 | /* See also arch/arm/plat-omap/devices.c for first I2C on 24xx */ | ||
52 | static void omap_init_i2c(void) | ||
53 | { | ||
54 | /* REVISIT: Second I2C not in use on H4? */ | ||
55 | if (machine_is_omap_h4()) | ||
56 | return; | ||
57 | |||
58 | if (!cpu_is_omap2430()) { | ||
59 | omap_cfg_reg(J15_24XX_I2C2_SCL); | ||
60 | omap_cfg_reg(H19_24XX_I2C2_SDA); | ||
61 | } | ||
62 | (void) platform_device_register(&omap_i2c_device2); | ||
63 | } | ||
64 | |||
65 | #else | ||
66 | |||
67 | static void omap_init_i2c(void) {} | ||
68 | |||
69 | #endif | ||
70 | 27 | ||
71 | #if defined(CONFIG_OMAP_DSP) || defined(CONFIG_OMAP_DSP_MODULE) | 28 | #if defined(CONFIG_OMAP_DSP) || defined(CONFIG_OMAP_DSP_MODULE) |
72 | #define OMAP2_MBOX_BASE IO_ADDRESS(OMAP24XX_MAILBOX_BASE) | 29 | #define OMAP2_MBOX_BASE IO_ADDRESS(OMAP24XX_MAILBOX_BASE) |
@@ -104,7 +61,9 @@ static inline void omap_init_mbox(void) { } | |||
104 | 61 | ||
105 | #if defined(CONFIG_OMAP_STI) | 62 | #if defined(CONFIG_OMAP_STI) |
106 | 63 | ||
107 | #define OMAP2_STI_BASE IO_ADDRESS(0x48068000) | 64 | #if defined(CONFIG_ARCH_OMAP2) |
65 | |||
66 | #define OMAP2_STI_BASE 0x48068000 | ||
108 | #define OMAP2_STI_CHANNEL_BASE 0x54000000 | 67 | #define OMAP2_STI_CHANNEL_BASE 0x54000000 |
109 | #define OMAP2_STI_IRQ 4 | 68 | #define OMAP2_STI_IRQ 4 |
110 | 69 | ||
@@ -124,6 +83,25 @@ static struct resource sti_resources[] = { | |||
124 | .flags = IORESOURCE_IRQ, | 83 | .flags = IORESOURCE_IRQ, |
125 | } | 84 | } |
126 | }; | 85 | }; |
86 | #elif defined(CONFIG_ARCH_OMAP3) | ||
87 | |||
88 | #define OMAP3_SDTI_BASE 0x54500000 | ||
89 | #define OMAP3_SDTI_CHANNEL_BASE 0x54600000 | ||
90 | |||
91 | static struct resource sti_resources[] = { | ||
92 | { | ||
93 | .start = OMAP3_SDTI_BASE, | ||
94 | .end = OMAP3_SDTI_BASE + 0xFFF, | ||
95 | .flags = IORESOURCE_MEM, | ||
96 | }, | ||
97 | { | ||
98 | .start = OMAP3_SDTI_CHANNEL_BASE, | ||
99 | .end = OMAP3_SDTI_CHANNEL_BASE + SZ_1M - 1, | ||
100 | .flags = IORESOURCE_MEM, | ||
101 | } | ||
102 | }; | ||
103 | |||
104 | #endif | ||
127 | 105 | ||
128 | static struct platform_device sti_device = { | 106 | static struct platform_device sti_device = { |
129 | .name = "sti", | 107 | .name = "sti", |
@@ -140,12 +118,14 @@ static inline void omap_init_sti(void) | |||
140 | static inline void omap_init_sti(void) {} | 118 | static inline void omap_init_sti(void) {} |
141 | #endif | 119 | #endif |
142 | 120 | ||
143 | #if defined(CONFIG_SPI_OMAP24XX) | 121 | #if defined(CONFIG_SPI_OMAP24XX) || defined(CONFIG_SPI_OMAP24XX_MODULE) |
144 | 122 | ||
145 | #include <mach/mcspi.h> | 123 | #include <mach/mcspi.h> |
146 | 124 | ||
147 | #define OMAP2_MCSPI1_BASE 0x48098000 | 125 | #define OMAP2_MCSPI1_BASE 0x48098000 |
148 | #define OMAP2_MCSPI2_BASE 0x4809a000 | 126 | #define OMAP2_MCSPI2_BASE 0x4809a000 |
127 | #define OMAP2_MCSPI3_BASE 0x480b8000 | ||
128 | #define OMAP2_MCSPI4_BASE 0x480ba000 | ||
149 | 129 | ||
150 | static struct omap2_mcspi_platform_config omap2_mcspi1_config = { | 130 | static struct omap2_mcspi_platform_config omap2_mcspi1_config = { |
151 | .num_cs = 4, | 131 | .num_cs = 4, |
@@ -159,7 +139,7 @@ static struct resource omap2_mcspi1_resources[] = { | |||
159 | }, | 139 | }, |
160 | }; | 140 | }; |
161 | 141 | ||
162 | struct platform_device omap2_mcspi1 = { | 142 | static struct platform_device omap2_mcspi1 = { |
163 | .name = "omap2_mcspi", | 143 | .name = "omap2_mcspi", |
164 | .id = 1, | 144 | .id = 1, |
165 | .num_resources = ARRAY_SIZE(omap2_mcspi1_resources), | 145 | .num_resources = ARRAY_SIZE(omap2_mcspi1_resources), |
@@ -181,7 +161,7 @@ static struct resource omap2_mcspi2_resources[] = { | |||
181 | }, | 161 | }, |
182 | }; | 162 | }; |
183 | 163 | ||
184 | struct platform_device omap2_mcspi2 = { | 164 | static struct platform_device omap2_mcspi2 = { |
185 | .name = "omap2_mcspi", | 165 | .name = "omap2_mcspi", |
186 | .id = 2, | 166 | .id = 2, |
187 | .num_resources = ARRAY_SIZE(omap2_mcspi2_resources), | 167 | .num_resources = ARRAY_SIZE(omap2_mcspi2_resources), |
@@ -191,16 +171,162 @@ struct platform_device omap2_mcspi2 = { | |||
191 | }, | 171 | }, |
192 | }; | 172 | }; |
193 | 173 | ||
174 | #if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3) | ||
175 | static struct omap2_mcspi_platform_config omap2_mcspi3_config = { | ||
176 | .num_cs = 2, | ||
177 | }; | ||
178 | |||
179 | static struct resource omap2_mcspi3_resources[] = { | ||
180 | { | ||
181 | .start = OMAP2_MCSPI3_BASE, | ||
182 | .end = OMAP2_MCSPI3_BASE + 0xff, | ||
183 | .flags = IORESOURCE_MEM, | ||
184 | }, | ||
185 | }; | ||
186 | |||
187 | static struct platform_device omap2_mcspi3 = { | ||
188 | .name = "omap2_mcspi", | ||
189 | .id = 3, | ||
190 | .num_resources = ARRAY_SIZE(omap2_mcspi3_resources), | ||
191 | .resource = omap2_mcspi3_resources, | ||
192 | .dev = { | ||
193 | .platform_data = &omap2_mcspi3_config, | ||
194 | }, | ||
195 | }; | ||
196 | #endif | ||
197 | |||
198 | #ifdef CONFIG_ARCH_OMAP3 | ||
199 | static struct omap2_mcspi_platform_config omap2_mcspi4_config = { | ||
200 | .num_cs = 1, | ||
201 | }; | ||
202 | |||
203 | static struct resource omap2_mcspi4_resources[] = { | ||
204 | { | ||
205 | .start = OMAP2_MCSPI4_BASE, | ||
206 | .end = OMAP2_MCSPI4_BASE + 0xff, | ||
207 | .flags = IORESOURCE_MEM, | ||
208 | }, | ||
209 | }; | ||
210 | |||
211 | static struct platform_device omap2_mcspi4 = { | ||
212 | .name = "omap2_mcspi", | ||
213 | .id = 4, | ||
214 | .num_resources = ARRAY_SIZE(omap2_mcspi4_resources), | ||
215 | .resource = omap2_mcspi4_resources, | ||
216 | .dev = { | ||
217 | .platform_data = &omap2_mcspi4_config, | ||
218 | }, | ||
219 | }; | ||
220 | #endif | ||
221 | |||
194 | static void omap_init_mcspi(void) | 222 | static void omap_init_mcspi(void) |
195 | { | 223 | { |
196 | platform_device_register(&omap2_mcspi1); | 224 | platform_device_register(&omap2_mcspi1); |
197 | platform_device_register(&omap2_mcspi2); | 225 | platform_device_register(&omap2_mcspi2); |
226 | #if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3) | ||
227 | platform_device_register(&omap2_mcspi3); | ||
228 | #endif | ||
229 | #ifdef CONFIG_ARCH_OMAP3 | ||
230 | platform_device_register(&omap2_mcspi4); | ||
231 | #endif | ||
198 | } | 232 | } |
199 | 233 | ||
200 | #else | 234 | #else |
201 | static inline void omap_init_mcspi(void) {} | 235 | static inline void omap_init_mcspi(void) {} |
202 | #endif | 236 | #endif |
203 | 237 | ||
238 | #ifdef CONFIG_SND_OMAP24XX_EAC | ||
239 | |||
240 | #define OMAP2_EAC_BASE 0x48090000 | ||
241 | |||
242 | static struct resource omap2_eac_resources[] = { | ||
243 | { | ||
244 | .start = OMAP2_EAC_BASE, | ||
245 | .end = OMAP2_EAC_BASE + 0x109, | ||
246 | .flags = IORESOURCE_MEM, | ||
247 | }, | ||
248 | }; | ||
249 | |||
250 | static struct platform_device omap2_eac_device = { | ||
251 | .name = "omap24xx-eac", | ||
252 | .id = -1, | ||
253 | .num_resources = ARRAY_SIZE(omap2_eac_resources), | ||
254 | .resource = omap2_eac_resources, | ||
255 | .dev = { | ||
256 | .platform_data = NULL, | ||
257 | }, | ||
258 | }; | ||
259 | |||
260 | void omap_init_eac(struct eac_platform_data *pdata) | ||
261 | { | ||
262 | omap2_eac_device.dev.platform_data = pdata; | ||
263 | platform_device_register(&omap2_eac_device); | ||
264 | } | ||
265 | |||
266 | #else | ||
267 | void omap_init_eac(struct eac_platform_data *pdata) {} | ||
268 | #endif | ||
269 | |||
270 | #ifdef CONFIG_OMAP_SHA1_MD5 | ||
271 | static struct resource sha1_md5_resources[] = { | ||
272 | { | ||
273 | .start = OMAP24XX_SEC_SHA1MD5_BASE, | ||
274 | .end = OMAP24XX_SEC_SHA1MD5_BASE + 0x64, | ||
275 | .flags = IORESOURCE_MEM, | ||
276 | }, | ||
277 | { | ||
278 | .start = INT_24XX_SHA1MD5, | ||
279 | .flags = IORESOURCE_IRQ, | ||
280 | } | ||
281 | }; | ||
282 | |||
283 | static struct platform_device sha1_md5_device = { | ||
284 | .name = "OMAP SHA1/MD5", | ||
285 | .id = -1, | ||
286 | .num_resources = ARRAY_SIZE(sha1_md5_resources), | ||
287 | .resource = sha1_md5_resources, | ||
288 | }; | ||
289 | |||
290 | static void omap_init_sha1_md5(void) | ||
291 | { | ||
292 | platform_device_register(&sha1_md5_device); | ||
293 | } | ||
294 | #else | ||
295 | static inline void omap_init_sha1_md5(void) { } | ||
296 | #endif | ||
297 | |||
298 | #if defined(CONFIG_HDQ_MASTER_OMAP) || defined(CONFIG_HDQ_MASTER_OMAP_MODULE) | ||
299 | #if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3430) | ||
300 | #define OMAP_HDQ_BASE 0x480B2000 | ||
301 | #endif | ||
302 | static struct resource omap_hdq_resources[] = { | ||
303 | { | ||
304 | .start = OMAP_HDQ_BASE, | ||
305 | .end = OMAP_HDQ_BASE + 0x1C, | ||
306 | .flags = IORESOURCE_MEM, | ||
307 | }, | ||
308 | { | ||
309 | .start = INT_24XX_HDQ_IRQ, | ||
310 | .flags = IORESOURCE_IRQ, | ||
311 | }, | ||
312 | }; | ||
313 | static struct platform_device omap_hdq_dev = { | ||
314 | .name = "omap_hdq", | ||
315 | .id = 0, | ||
316 | .dev = { | ||
317 | .platform_data = NULL, | ||
318 | }, | ||
319 | .num_resources = ARRAY_SIZE(omap_hdq_resources), | ||
320 | .resource = omap_hdq_resources, | ||
321 | }; | ||
322 | static inline void omap_hdq_init(void) | ||
323 | { | ||
324 | (void) platform_device_register(&omap_hdq_dev); | ||
325 | } | ||
326 | #else | ||
327 | static inline void omap_hdq_init(void) {} | ||
328 | #endif | ||
329 | |||
204 | /*-------------------------------------------------------------------------*/ | 330 | /*-------------------------------------------------------------------------*/ |
205 | 331 | ||
206 | static int __init omap2_init_devices(void) | 332 | static int __init omap2_init_devices(void) |
@@ -208,10 +334,11 @@ static int __init omap2_init_devices(void) | |||
208 | /* please keep these calls, and their implementations above, | 334 | /* please keep these calls, and their implementations above, |
209 | * in alphabetical order so they're easier to sort through. | 335 | * in alphabetical order so they're easier to sort through. |
210 | */ | 336 | */ |
211 | omap_init_i2c(); | ||
212 | omap_init_mbox(); | 337 | omap_init_mbox(); |
213 | omap_init_mcspi(); | 338 | omap_init_mcspi(); |
339 | omap_hdq_init(); | ||
214 | omap_init_sti(); | 340 | omap_init_sti(); |
341 | omap_init_sha1_md5(); | ||
215 | 342 | ||
216 | return 0; | 343 | return 0; |
217 | } | 344 | } |
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index be6a75306f10..149bfba43cfe 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | #include <mach/gpmc.h> | 24 | #include <mach/gpmc.h> |
25 | 25 | ||
26 | #include "memory.h" | 26 | #include <mach/sdrc.h> |
27 | 27 | ||
28 | /* GPMC register offsets */ | 28 | /* GPMC register offsets */ |
29 | #define GPMC_REVISION 0x00 | 29 | #define GPMC_REVISION 0x00 |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 371e5409fef0..03c6ab1a3b1f 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -4,8 +4,11 @@ | |||
4 | * OMAP2 I/O mapping code | 4 | * OMAP2 I/O mapping code |
5 | * | 5 | * |
6 | * Copyright (C) 2005 Nokia Corporation | 6 | * Copyright (C) 2005 Nokia Corporation |
7 | * Author: Juha Yrjölä <juha.yrjola@nokia.com> | 7 | * Copyright (C) 2007 Texas Instruments |
8 | * Updated map desc to add 2430 support : <x0khasim@ti.com> | 8 | * |
9 | * Author: | ||
10 | * Juha Yrjola <juha.yrjola@nokia.com> | ||
11 | * Syed Khasim <x0khasim@ti.com> | ||
9 | * | 12 | * |
10 | * This program is free software; you can redistribute it and/or modify | 13 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of the GNU General Public License version 2 as | 14 | * it under the terms of the GNU General Public License version 2 as |
@@ -23,6 +26,11 @@ | |||
23 | 26 | ||
24 | #include <mach/mux.h> | 27 | #include <mach/mux.h> |
25 | #include <mach/omapfb.h> | 28 | #include <mach/omapfb.h> |
29 | #include <mach/sram.h> | ||
30 | |||
31 | #include "memory.h" | ||
32 | |||
33 | #include "clock.h" | ||
26 | 34 | ||
27 | #include <mach/powerdomain.h> | 35 | #include <mach/powerdomain.h> |
28 | 36 | ||
@@ -31,13 +39,6 @@ | |||
31 | #include <mach/clockdomain.h> | 39 | #include <mach/clockdomain.h> |
32 | #include "clockdomains.h" | 40 | #include "clockdomains.h" |
33 | 41 | ||
34 | extern void omap_sram_init(void); | ||
35 | extern int omap2_clk_init(void); | ||
36 | extern void omap2_check_revision(void); | ||
37 | extern void omap2_init_memory(void); | ||
38 | extern void gpmc_init(void); | ||
39 | extern void omapfb_reserve_sdram(void); | ||
40 | |||
41 | /* | 42 | /* |
42 | * The machine specific code may provide the extra mapping besides the | 43 | * The machine specific code may provide the extra mapping besides the |
43 | * default mapping provided here. | 44 | * default mapping provided here. |
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index 742bd0070e63..a5c748a4a56d 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c | |||
@@ -37,11 +37,9 @@ static struct omap_irq_bank { | |||
37 | } __attribute__ ((aligned(4))) irq_banks[] = { | 37 | } __attribute__ ((aligned(4))) irq_banks[] = { |
38 | { | 38 | { |
39 | /* MPU INTC */ | 39 | /* MPU INTC */ |
40 | .base_reg = IO_ADDRESS(OMAP24XX_IC_BASE), | 40 | .base_reg = 0, |
41 | .nr_irqs = 96, | 41 | .nr_irqs = 96, |
42 | }, { | 42 | }, |
43 | /* XXX: DSP INTC */ | ||
44 | } | ||
45 | }; | 43 | }; |
46 | 44 | ||
47 | /* XXX: FIQ and additional INTC support (only MPU at the moment) */ | 45 | /* XXX: FIQ and additional INTC support (only MPU at the moment) */ |
@@ -118,10 +116,8 @@ void __init omap_init_irq(void) | |||
118 | for (i = 0; i < ARRAY_SIZE(irq_banks); i++) { | 116 | for (i = 0; i < ARRAY_SIZE(irq_banks); i++) { |
119 | struct omap_irq_bank *bank = irq_banks + i; | 117 | struct omap_irq_bank *bank = irq_banks + i; |
120 | 118 | ||
121 | /* XXX */ | 119 | if (cpu_is_omap24xx()) |
122 | if (!bank->base_reg) | 120 | bank->base_reg = IO_ADDRESS(OMAP24XX_IC_BASE); |
123 | continue; | ||
124 | |||
125 | omap_irq_bank_init_one(bank); | 121 | omap_irq_bank_init_one(bank); |
126 | 122 | ||
127 | nr_irqs += bank->nr_irqs; | 123 | nr_irqs += bank->nr_irqs; |
diff --git a/arch/arm/mach-omap2/memory.h b/arch/arm/mach-omap2/memory.h index 9a280b50a893..bb3db80a7c46 100644 --- a/arch/arm/mach-omap2/memory.h +++ b/arch/arm/mach-omap2/memory.h | |||
@@ -14,6 +14,9 @@ | |||
14 | * published by the Free Software Foundation. | 14 | * published by the Free Software Foundation. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #ifndef ARCH_ARM_MACH_OMAP2_MEMORY_H | ||
18 | #define ARCH_ARM_MACH_OMAP2_MEMORY_H | ||
19 | |||
17 | /* Memory timings */ | 20 | /* Memory timings */ |
18 | #define M_DDR 1 | 21 | #define M_DDR 1 |
19 | #define M_LOCK_CTRL (1 << 2) | 22 | #define M_LOCK_CTRL (1 << 2) |
@@ -34,3 +37,7 @@ extern u32 omap2_memory_get_fast_dll_ctrl(void); | |||
34 | extern u32 omap2_memory_get_type(void); | 37 | extern u32 omap2_memory_get_type(void); |
35 | u32 omap2_dll_force_needed(void); | 38 | u32 omap2_dll_force_needed(void); |
36 | u32 omap2_reprogram_sdrc(u32 level, u32 force); | 39 | u32 omap2_reprogram_sdrc(u32 level, u32 force); |
40 | void __init omap2_init_memory(void); | ||
41 | void __init gpmc_init(void); | ||
42 | |||
43 | #endif | ||
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c index 187e3d8bfdfe..1c1d831a0c09 100644 --- a/arch/arm/plat-omap/devices.c +++ b/arch/arm/plat-omap/devices.c | |||
@@ -20,16 +20,16 @@ | |||
20 | #include <asm/mach/map.h> | 20 | #include <asm/mach/map.h> |
21 | 21 | ||
22 | #include <mach/tc.h> | 22 | #include <mach/tc.h> |
23 | #include <mach/control.h> | ||
23 | #include <mach/board.h> | 24 | #include <mach/board.h> |
24 | #include <mach/mux.h> | 25 | #include <mach/mux.h> |
25 | #include <mach/gpio.h> | 26 | #include <mach/gpio.h> |
26 | #include <mach/menelaus.h> | 27 | #include <mach/menelaus.h> |
27 | #include <mach/mcbsp.h> | 28 | #include <mach/mcbsp.h> |
29 | #include <mach/dsp_common.h> | ||
28 | 30 | ||
29 | #if defined(CONFIG_OMAP_DSP) || defined(CONFIG_OMAP_DSP_MODULE) | 31 | #if defined(CONFIG_OMAP_DSP) || defined(CONFIG_OMAP_DSP_MODULE) |
30 | 32 | ||
31 | #include "../plat-omap/dsp/dsp_common.h" | ||
32 | |||
33 | static struct dsp_platform_data dsp_pdata = { | 33 | static struct dsp_platform_data dsp_pdata = { |
34 | .kdev_list = LIST_HEAD_INIT(dsp_pdata.kdev_list), | 34 | .kdev_list = LIST_HEAD_INIT(dsp_pdata.kdev_list), |
35 | }; | 35 | }; |
@@ -75,7 +75,7 @@ int dsp_kfunc_device_register(struct dsp_kfunc_device *kdev) | |||
75 | { | 75 | { |
76 | static DEFINE_MUTEX(dsp_pdata_lock); | 76 | static DEFINE_MUTEX(dsp_pdata_lock); |
77 | 77 | ||
78 | mutex_init(&kdev->lock); | 78 | spin_lock_init(&kdev->lock); |
79 | 79 | ||
80 | mutex_lock(&dsp_pdata_lock); | 80 | mutex_lock(&dsp_pdata_lock); |
81 | list_add_tail(&kdev->entry, &dsp_pdata.kdev_list); | 81 | list_add_tail(&kdev->entry, &dsp_pdata.kdev_list); |
@@ -479,10 +479,6 @@ static inline void omap_init_rng(void) {} | |||
479 | */ | 479 | */ |
480 | static int __init omap_init_devices(void) | 480 | static int __init omap_init_devices(void) |
481 | { | 481 | { |
482 | /* | ||
483 | * Need to enable relevant once for 2430 SDP | ||
484 | */ | ||
485 | #ifndef CONFIG_MACH_OMAP_2430SDP | ||
486 | /* please keep these calls, and their implementations above, | 482 | /* please keep these calls, and their implementations above, |
487 | * in alphabetical order so they're easier to sort through. | 483 | * in alphabetical order so they're easier to sort through. |
488 | */ | 484 | */ |
@@ -492,7 +488,6 @@ static int __init omap_init_devices(void) | |||
492 | omap_init_uwire(); | 488 | omap_init_uwire(); |
493 | omap_init_wdt(); | 489 | omap_init_wdt(); |
494 | omap_init_rng(); | 490 | omap_init_rng(); |
495 | #endif | ||
496 | return 0; | 491 | return 0; |
497 | } | 492 | } |
498 | arch_initcall(omap_init_devices); | 493 | arch_initcall(omap_init_devices); |
diff --git a/arch/arm/plat-omap/include/mach/board-2430sdp.h b/arch/arm/plat-omap/include/mach/board-2430sdp.h index cf1dc0223949..10d449ea7ed0 100644 --- a/arch/arm/plat-omap/include/mach/board-2430sdp.h +++ b/arch/arm/plat-omap/include/mach/board-2430sdp.h | |||
@@ -30,10 +30,12 @@ | |||
30 | #define __ASM_ARCH_OMAP_2430SDP_H | 30 | #define __ASM_ARCH_OMAP_2430SDP_H |
31 | 31 | ||
32 | /* Placeholder for 2430SDP specific defines */ | 32 | /* Placeholder for 2430SDP specific defines */ |
33 | #define OMAP24XX_ETHR_START 0x08000300 | 33 | #define OMAP24XX_ETHR_START 0x08000300 |
34 | #define OMAP24XX_ETHR_GPIO_IRQ 149 | 34 | #define OMAP24XX_ETHR_GPIO_IRQ 149 |
35 | #define SDP2430_CS0_BASE 0x04000000 | 35 | #define SDP2430_CS0_BASE 0x04000000 |
36 | 36 | ||
37 | #define TWL4030_IRQNUM INT_24XX_SYS_NIRQ | 37 | /* Function prototypes */ |
38 | extern void sdp2430_flash_init(void); | ||
39 | extern void sdp2430_usb_init(void); | ||
38 | 40 | ||
39 | #endif /* __ASM_ARCH_OMAP_2430SDP_H */ | 41 | #endif /* __ASM_ARCH_OMAP_2430SDP_H */ |
diff --git a/arch/arm/plat-omap/include/mach/board-apollon.h b/arch/arm/plat-omap/include/mach/board-apollon.h index d6f2a8e963d5..731c858cf3fe 100644 --- a/arch/arm/plat-omap/include/mach/board-apollon.h +++ b/arch/arm/plat-omap/include/mach/board-apollon.h | |||
@@ -31,6 +31,12 @@ | |||
31 | 31 | ||
32 | extern void apollon_mmc_init(void); | 32 | extern void apollon_mmc_init(void); |
33 | 33 | ||
34 | static inline int apollon_plus(void) | ||
35 | { | ||
36 | /* The apollon plus has IDCODE revision 5 */ | ||
37 | return system_rev & 0xc0; | ||
38 | } | ||
39 | |||
34 | /* Placeholder for APOLLON specific defines */ | 40 | /* Placeholder for APOLLON specific defines */ |
35 | #define APOLLON_ETHR_GPIO_IRQ 74 | 41 | #define APOLLON_ETHR_GPIO_IRQ 74 |
36 | 42 | ||
diff --git a/arch/arm/plat-omap/include/mach/board-h4.h b/arch/arm/plat-omap/include/mach/board-h4.h index 1470cd3e519b..7c3fa0f0a65e 100644 --- a/arch/arm/plat-omap/include/mach/board-h4.h +++ b/arch/arm/plat-omap/include/mach/board-h4.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * arch/arm/plat-omap/include/mach/board-h4.h | 2 | * arch/arm/plat-omap/include/mach/board-h4.h |
3 | * | 3 | * |
4 | * Hardware definitions for TI OMAP1610 H4 board. | 4 | * Hardware definitions for TI OMAP2420 H4 board. |
5 | * | 5 | * |
6 | * Initial creation by Dirk Behme <dirk.behme@de.bosch.com> | 6 | * Initial creation by Dirk Behme <dirk.behme@de.bosch.com> |
7 | * | 7 | * |
@@ -29,6 +29,9 @@ | |||
29 | #ifndef __ASM_ARCH_OMAP_H4_H | 29 | #ifndef __ASM_ARCH_OMAP_H4_H |
30 | #define __ASM_ARCH_OMAP_H4_H | 30 | #define __ASM_ARCH_OMAP_H4_H |
31 | 31 | ||
32 | /* MMC Prototypes */ | ||
33 | extern void h4_mmc_init(void); | ||
34 | |||
32 | /* Placeholder for H4 specific defines */ | 35 | /* Placeholder for H4 specific defines */ |
33 | #define OMAP24XX_ETHR_GPIO_IRQ 92 | 36 | #define OMAP24XX_ETHR_GPIO_IRQ 92 |
34 | #endif /* __ASM_ARCH_OMAP_H4_H */ | 37 | #endif /* __ASM_ARCH_OMAP_H4_H */ |
diff --git a/arch/arm/plat-omap/include/mach/board.h b/arch/arm/plat-omap/include/mach/board.h index 54445642f35d..c23c12ccb353 100644 --- a/arch/arm/plat-omap/include/mach/board.h +++ b/arch/arm/plat-omap/include/mach/board.h | |||
@@ -45,6 +45,8 @@ struct omap_mmc_conf { | |||
45 | unsigned cover:1; | 45 | unsigned cover:1; |
46 | /* 4 wire signaling is optional, and is only used for SD/SDIO */ | 46 | /* 4 wire signaling is optional, and is only used for SD/SDIO */ |
47 | unsigned wire4:1; | 47 | unsigned wire4:1; |
48 | /* use the internal clock */ | ||
49 | unsigned internal_clock:1; | ||
48 | s16 power_pin; | 50 | s16 power_pin; |
49 | s16 switch_pin; | 51 | s16 switch_pin; |
50 | s16 wp_pin; | 52 | s16 wp_pin; |
diff --git a/arch/arm/plat-omap/include/mach/control.h b/arch/arm/plat-omap/include/mach/control.h index ee378d254cbd..dc9886760577 100644 --- a/arch/arm/plat-omap/include/mach/control.h +++ b/arch/arm/plat-omap/include/mach/control.h | |||
@@ -1,13 +1,10 @@ | |||
1 | #ifndef __ASM_ARCH_CONTROL_H | ||
2 | #define __ASM_ARCH_CONTROL_H | ||
3 | |||
4 | /* | 1 | /* |
5 | * arch/arm/plat-omap/include/mach/control.h | 2 | * arch/arm/plat-omap/include/mach/control.h |
6 | * | 3 | * |
7 | * OMAP2/3 System Control Module definitions | 4 | * OMAP2/3 System Control Module definitions |
8 | * | 5 | * |
9 | * Copyright (C) 2007 Texas Instruments, Inc. | 6 | * Copyright (C) 2007-2008 Texas Instruments, Inc. |
10 | * Copyright (C) 2007 Nokia Corporation | 7 | * Copyright (C) 2007-2008 Nokia Corporation |
11 | * | 8 | * |
12 | * Written by Paul Walmsley | 9 | * Written by Paul Walmsley |
13 | * | 10 | * |
@@ -16,14 +13,23 @@ | |||
16 | * the Free Software Foundation. | 13 | * the Free Software Foundation. |
17 | */ | 14 | */ |
18 | 15 | ||
16 | #ifndef __ASM_ARCH_CONTROL_H | ||
17 | #define __ASM_ARCH_CONTROL_H | ||
18 | |||
19 | #include <mach/io.h> | 19 | #include <mach/io.h> |
20 | 20 | ||
21 | #ifndef __ASSEMBLY__ | ||
21 | #define OMAP242X_CTRL_REGADDR(reg) \ | 22 | #define OMAP242X_CTRL_REGADDR(reg) \ |
22 | IO_ADDRESS(OMAP242X_CTRL_BASE + (reg)) | 23 | IO_ADDRESS(OMAP242X_CTRL_BASE + (reg)) |
23 | #define OMAP243X_CTRL_REGADDR(reg) \ | 24 | #define OMAP243X_CTRL_REGADDR(reg) \ |
24 | IO_ADDRESS(OMAP243X_CTRL_BASE + (reg)) | 25 | IO_ADDRESS(OMAP243X_CTRL_BASE + (reg)) |
25 | #define OMAP343X_CTRL_REGADDR(reg) \ | 26 | #define OMAP343X_CTRL_REGADDR(reg) \ |
26 | IO_ADDRESS(OMAP343X_CTRL_BASE + (reg)) | 27 | IO_ADDRESS(OMAP343X_CTRL_BASE + (reg)) |
28 | #else | ||
29 | #define OMAP242X_CTRL_REGADDR(reg) IO_ADDRESS(OMAP242X_CTRL_BASE + (reg)) | ||
30 | #define OMAP243X_CTRL_REGADDR(reg) IO_ADDRESS(OMAP243X_CTRL_BASE + (reg)) | ||
31 | #define OMAP343X_CTRL_REGADDR(reg) IO_ADDRESS(OMAP343X_CTRL_BASE + (reg)) | ||
32 | #endif /* __ASSEMBLY__ */ | ||
27 | 33 | ||
28 | /* | 34 | /* |
29 | * As elsewhere, the "OMAP2_" prefix indicates that the macro is valid for | 35 | * As elsewhere, the "OMAP2_" prefix indicates that the macro is valid for |
@@ -134,6 +140,7 @@ | |||
134 | #define OMAP343X_CONTROL_TEST_KEY_13 (OMAP2_CONTROL_GENERAL + 0x00fc) | 140 | #define OMAP343X_CONTROL_TEST_KEY_13 (OMAP2_CONTROL_GENERAL + 0x00fc) |
135 | #define OMAP343X_CONTROL_IVA2_BOOTADDR (OMAP2_CONTROL_GENERAL + 0x0190) | 141 | #define OMAP343X_CONTROL_IVA2_BOOTADDR (OMAP2_CONTROL_GENERAL + 0x0190) |
136 | #define OMAP343X_CONTROL_IVA2_BOOTMOD (OMAP2_CONTROL_GENERAL + 0x0194) | 142 | #define OMAP343X_CONTROL_IVA2_BOOTMOD (OMAP2_CONTROL_GENERAL + 0x0194) |
143 | #define OMAP343X_CONTROL_TEMP_SENSOR (OMAP2_CONTROL_GENERAL + 0x02b4) | ||
137 | 144 | ||
138 | /* | 145 | /* |
139 | * REVISIT: This list of registers is not comprehensive - there are more | 146 | * REVISIT: This list of registers is not comprehensive - there are more |
diff --git a/arch/arm/plat-omap/include/mach/gpio.h b/arch/arm/plat-omap/include/mach/gpio.h index 4cb818da672c..5bb7460cabc4 100644 --- a/arch/arm/plat-omap/include/mach/gpio.h +++ b/arch/arm/plat-omap/include/mach/gpio.h | |||
@@ -76,6 +76,8 @@ extern void omap_free_gpio(int gpio); | |||
76 | extern void omap_set_gpio_direction(int gpio, int is_input); | 76 | extern void omap_set_gpio_direction(int gpio, int is_input); |
77 | extern void omap_set_gpio_dataout(int gpio, int enable); | 77 | extern void omap_set_gpio_dataout(int gpio, int enable); |
78 | extern int omap_get_gpio_datain(int gpio); | 78 | extern int omap_get_gpio_datain(int gpio); |
79 | extern void omap2_gpio_prepare_for_retention(void); | ||
80 | extern void omap2_gpio_resume_after_retention(void); | ||
79 | extern void omap_set_gpio_debounce(int gpio, int enable); | 81 | extern void omap_set_gpio_debounce(int gpio, int enable); |
80 | extern void omap_set_gpio_debounce_time(int gpio, int enable); | 82 | extern void omap_set_gpio_debounce_time(int gpio, int enable); |
81 | 83 | ||
diff --git a/arch/arm/plat-omap/include/mach/gpmc.h b/arch/arm/plat-omap/include/mach/gpmc.h index 4258e00c6577..3c7b425c585e 100644 --- a/arch/arm/plat-omap/include/mach/gpmc.h +++ b/arch/arm/plat-omap/include/mach/gpmc.h | |||
@@ -25,6 +25,9 @@ | |||
25 | #define GPMC_CS_NAND_ADDRESS 0x20 | 25 | #define GPMC_CS_NAND_ADDRESS 0x20 |
26 | #define GPMC_CS_NAND_DATA 0x24 | 26 | #define GPMC_CS_NAND_DATA 0x24 |
27 | 27 | ||
28 | #define GPMC_CONFIG 0x50 | ||
29 | #define GPMC_STATUS 0x54 | ||
30 | |||
28 | #define GPMC_CONFIG1_WRAPBURST_SUPP (1 << 31) | 31 | #define GPMC_CONFIG1_WRAPBURST_SUPP (1 << 31) |
29 | #define GPMC_CONFIG1_READMULTIPLE_SUPP (1 << 30) | 32 | #define GPMC_CONFIG1_READMULTIPLE_SUPP (1 << 30) |
30 | #define GPMC_CONFIG1_READTYPE_ASYNC (0 << 29) | 33 | #define GPMC_CONFIG1_READTYPE_ASYNC (0 << 29) |
diff --git a/arch/arm/plat-omap/include/mach/hardware.h b/arch/arm/plat-omap/include/mach/hardware.h index abb01e471c4c..29c849f5f18e 100644 --- a/arch/arm/plat-omap/include/mach/hardware.h +++ b/arch/arm/plat-omap/include/mach/hardware.h | |||
@@ -282,8 +282,8 @@ | |||
282 | 282 | ||
283 | #include "omap730.h" | 283 | #include "omap730.h" |
284 | #include "omap1510.h" | 284 | #include "omap1510.h" |
285 | #include "omap24xx.h" | ||
286 | #include "omap16xx.h" | 285 | #include "omap16xx.h" |
286 | #include "omap24xx.h" | ||
287 | #include "omap34xx.h" | 287 | #include "omap34xx.h" |
288 | 288 | ||
289 | #ifndef __ASSEMBLER__ | 289 | #ifndef __ASSEMBLER__ |
diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-omap/include/mach/irqs.h index 17248bbf3f27..e9fd63055cb2 100644 --- a/arch/arm/plat-omap/include/mach/irqs.h +++ b/arch/arm/plat-omap/include/mach/irqs.h | |||
@@ -125,6 +125,7 @@ | |||
125 | #define INT_UART2 (15 + IH2_BASE) | 125 | #define INT_UART2 (15 + IH2_BASE) |
126 | #define INT_BT_MCSI1TX (16 + IH2_BASE) | 126 | #define INT_BT_MCSI1TX (16 + IH2_BASE) |
127 | #define INT_BT_MCSI1RX (17 + IH2_BASE) | 127 | #define INT_BT_MCSI1RX (17 + IH2_BASE) |
128 | #define INT_SOSSI_MATCH (19 + IH2_BASE) | ||
128 | #define INT_USB_W2FC (20 + IH2_BASE) | 129 | #define INT_USB_W2FC (20 + IH2_BASE) |
129 | #define INT_1WIRE (21 + IH2_BASE) | 130 | #define INT_1WIRE (21 + IH2_BASE) |
130 | #define INT_OS_TIMER (22 + IH2_BASE) | 131 | #define INT_OS_TIMER (22 + IH2_BASE) |
@@ -176,6 +177,7 @@ | |||
176 | #define INT_1610_DMA_CH14 (61 + IH2_BASE) | 177 | #define INT_1610_DMA_CH14 (61 + IH2_BASE) |
177 | #define INT_1610_DMA_CH15 (62 + IH2_BASE) | 178 | #define INT_1610_DMA_CH15 (62 + IH2_BASE) |
178 | #define INT_1610_NAND (63 + IH2_BASE) | 179 | #define INT_1610_NAND (63 + IH2_BASE) |
180 | #define INT_1610_SHA1MD5 (91 + IH2_BASE) | ||
179 | 181 | ||
180 | /* | 182 | /* |
181 | * OMAP-730 specific IRQ numbers for interrupt handler 2 | 183 | * OMAP-730 specific IRQ numbers for interrupt handler 2 |
@@ -263,12 +265,16 @@ | |||
263 | #define INT_24XX_GPTIMER10 46 | 265 | #define INT_24XX_GPTIMER10 46 |
264 | #define INT_24XX_GPTIMER11 47 | 266 | #define INT_24XX_GPTIMER11 47 |
265 | #define INT_24XX_GPTIMER12 48 | 267 | #define INT_24XX_GPTIMER12 48 |
268 | #define INT_24XX_SHA1MD5 51 | ||
266 | #define INT_24XX_I2C1_IRQ 56 | 269 | #define INT_24XX_I2C1_IRQ 56 |
267 | #define INT_24XX_I2C2_IRQ 57 | 270 | #define INT_24XX_I2C2_IRQ 57 |
271 | #define INT_24XX_HDQ_IRQ 58 | ||
268 | #define INT_24XX_MCBSP1_IRQ_TX 59 | 272 | #define INT_24XX_MCBSP1_IRQ_TX 59 |
269 | #define INT_24XX_MCBSP1_IRQ_RX 60 | 273 | #define INT_24XX_MCBSP1_IRQ_RX 60 |
270 | #define INT_24XX_MCBSP2_IRQ_TX 62 | 274 | #define INT_24XX_MCBSP2_IRQ_TX 62 |
271 | #define INT_24XX_MCBSP2_IRQ_RX 63 | 275 | #define INT_24XX_MCBSP2_IRQ_RX 63 |
276 | #define INT_24XX_SPI1_IRQ 65 | ||
277 | #define INT_24XX_SPI2_IRQ 66 | ||
272 | #define INT_24XX_UART1_IRQ 72 | 278 | #define INT_24XX_UART1_IRQ 72 |
273 | #define INT_24XX_UART2_IRQ 73 | 279 | #define INT_24XX_UART2_IRQ 73 |
274 | #define INT_24XX_UART3_IRQ 74 | 280 | #define INT_24XX_UART3_IRQ 74 |
diff --git a/arch/arm/plat-omap/include/mach/omap1510.h b/arch/arm/plat-omap/include/mach/omap1510.h index 505a38af8b22..d24004668138 100644 --- a/arch/arm/plat-omap/include/mach/omap1510.h +++ b/arch/arm/plat-omap/include/mach/omap1510.h | |||
@@ -44,5 +44,7 @@ | |||
44 | #define OMAP1510_DSPREG_SIZE SZ_128K | 44 | #define OMAP1510_DSPREG_SIZE SZ_128K |
45 | #define OMAP1510_DSPREG_START 0xE1000000 | 45 | #define OMAP1510_DSPREG_START 0xE1000000 |
46 | 46 | ||
47 | #define OMAP1510_DSP_MMU_BASE (0xfffed200) | ||
48 | |||
47 | #endif /* __ASM_ARCH_OMAP15XX_H */ | 49 | #endif /* __ASM_ARCH_OMAP15XX_H */ |
48 | 50 | ||
diff --git a/arch/arm/plat-omap/include/mach/omap16xx.h b/arch/arm/plat-omap/include/mach/omap16xx.h index c6c93afb2788..0e69b504c25f 100644 --- a/arch/arm/plat-omap/include/mach/omap16xx.h +++ b/arch/arm/plat-omap/include/mach/omap16xx.h | |||
@@ -44,6 +44,11 @@ | |||
44 | #define OMAP16XX_DSPREG_SIZE SZ_128K | 44 | #define OMAP16XX_DSPREG_SIZE SZ_128K |
45 | #define OMAP16XX_DSPREG_START 0xE1000000 | 45 | #define OMAP16XX_DSPREG_START 0xE1000000 |
46 | 46 | ||
47 | #define OMAP16XX_SEC_BASE 0xFFFE4000 | ||
48 | #define OMAP16XX_SEC_DES (OMAP16XX_SEC_BASE + 0x0000) | ||
49 | #define OMAP16XX_SEC_SHA1MD5 (OMAP16XX_SEC_BASE + 0x0800) | ||
50 | #define OMAP16XX_SEC_RNG (OMAP16XX_SEC_BASE + 0x1000) | ||
51 | |||
47 | /* | 52 | /* |
48 | * --------------------------------------------------------------------------- | 53 | * --------------------------------------------------------------------------- |
49 | * Interrupts | 54 | * Interrupts |
@@ -190,7 +195,7 @@ | |||
190 | #define WSPR_DISABLE_0 (0x0000aaaa) | 195 | #define WSPR_DISABLE_0 (0x0000aaaa) |
191 | #define WSPR_DISABLE_1 (0x00005555) | 196 | #define WSPR_DISABLE_1 (0x00005555) |
192 | 197 | ||
193 | /* Mailbox */ | 198 | #define OMAP16XX_DSP_MMU_BASE (0xfffed200) |
194 | #define OMAP16XX_MAILBOX_BASE (0xfffcf000) | 199 | #define OMAP16XX_MAILBOX_BASE (0xfffcf000) |
195 | 200 | ||
196 | #endif /* __ASM_ARCH_OMAP16XX_H */ | 201 | #endif /* __ASM_ARCH_OMAP16XX_H */ |
diff --git a/arch/arm/plat-omap/include/mach/omapfb.h b/arch/arm/plat-omap/include/mach/omapfb.h index cae037d13079..ec67fb428607 100644 --- a/arch/arm/plat-omap/include/mach/omapfb.h +++ b/arch/arm/plat-omap/include/mach/omapfb.h | |||
@@ -62,6 +62,7 @@ | |||
62 | #define OMAPFB_CAPS_WINDOW_PIXEL_DOUBLE 0x00010000 | 62 | #define OMAPFB_CAPS_WINDOW_PIXEL_DOUBLE 0x00010000 |
63 | #define OMAPFB_CAPS_WINDOW_SCALE 0x00020000 | 63 | #define OMAPFB_CAPS_WINDOW_SCALE 0x00020000 |
64 | #define OMAPFB_CAPS_WINDOW_OVERLAY 0x00040000 | 64 | #define OMAPFB_CAPS_WINDOW_OVERLAY 0x00040000 |
65 | #define OMAPFB_CAPS_WINDOW_ROTATE 0x00080000 | ||
65 | #define OMAPFB_CAPS_SET_BACKLIGHT 0x01000000 | 66 | #define OMAPFB_CAPS_SET_BACKLIGHT 0x01000000 |
66 | 67 | ||
67 | /* Values from DSP must map to lower 16-bits */ | 68 | /* Values from DSP must map to lower 16-bits */ |
@@ -305,6 +306,7 @@ struct lcd_ctrl { | |||
305 | int screen_width, | 306 | int screen_width, |
306 | int pos_x, int pos_y, int width, | 307 | int pos_x, int pos_y, int width, |
307 | int height, int color_mode); | 308 | int height, int color_mode); |
309 | int (*set_rotate) (int angle); | ||
308 | int (*setup_mem) (int plane, size_t size, | 310 | int (*setup_mem) (int plane, size_t size, |
309 | int mem_type, unsigned long *paddr); | 311 | int mem_type, unsigned long *paddr); |
310 | int (*mmap) (struct fb_info *info, | 312 | int (*mmap) (struct fb_info *info, |
@@ -374,6 +376,7 @@ extern struct lcd_ctrl omap1_lcd_ctrl; | |||
374 | extern struct lcd_ctrl omap2_disp_ctrl; | 376 | extern struct lcd_ctrl omap2_disp_ctrl; |
375 | #endif | 377 | #endif |
376 | 378 | ||
379 | extern void omapfb_reserve_sdram(void); | ||
377 | extern void omapfb_register_panel(struct lcd_panel *panel); | 380 | extern void omapfb_register_panel(struct lcd_panel *panel); |
378 | extern void omapfb_write_first_pixel(struct omapfb_device *fbdev, u16 pixval); | 381 | extern void omapfb_write_first_pixel(struct omapfb_device *fbdev, u16 pixval); |
379 | extern void omapfb_notify_clients(struct omapfb_device *fbdev, | 382 | extern void omapfb_notify_clients(struct omapfb_device *fbdev, |
diff --git a/arch/arm/plat-omap/include/mach/sdrc.h b/arch/arm/plat-omap/include/mach/sdrc.h index d908eb527c8d..25ee3819faad 100644 --- a/arch/arm/plat-omap/include/mach/sdrc.h +++ b/arch/arm/plat-omap/include/mach/sdrc.h | |||
@@ -25,6 +25,8 @@ | |||
25 | #define SDRC_DLLB_STATUS 0x06C | 25 | #define SDRC_DLLB_STATUS 0x06C |
26 | #define SDRC_POWER 0x070 | 26 | #define SDRC_POWER 0x070 |
27 | #define SDRC_MR_0 0x084 | 27 | #define SDRC_MR_0 0x084 |
28 | #define SDRC_ACTIM_CTRL_A 0x09c | ||
29 | #define SDRC_ACTIM_CTRL_B 0x0a0 | ||
28 | #define SDRC_RFR_CTRL_0 0x0a4 | 30 | #define SDRC_RFR_CTRL_0 0x0a4 |
29 | 31 | ||
30 | /* | 32 | /* |