aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2010-05-08 17:59:58 -0400
committerH. Peter Anvin <hpa@zytor.com>2010-05-08 17:59:58 -0400
commitd7be0ce6afb1df60bc786f57410407ceae92b994 (patch)
tree5e91acfc12c833531ad3320f274e0cd96a129973 /arch/arm/plat-omap
parente08cae4181af9483b04ecfac48f01c8e5a5f27bf (diff)
parent66f41d4c5c8a5deed66fdcc84509376c9a0bf9d8 (diff)
Merge commit 'v2.6.34-rc6' into x86/cpu
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r--arch/arm/plat-omap/common.c22
-rw-r--r--arch/arm/plat-omap/devices.c1
-rw-r--r--arch/arm/plat-omap/dma.c10
-rw-r--r--arch/arm/plat-omap/gpio.c6
-rw-r--r--arch/arm/plat-omap/include/plat/irqs.h2
-rw-r--r--arch/arm/plat-omap/include/plat/mcbsp.h2
-rw-r--r--arch/arm/plat-omap/include/plat/nand.h7
-rw-r--r--arch/arm/plat-omap/include/plat/omap44xx.h2
-rw-r--r--arch/arm/plat-omap/include/plat/omap_hwmod.h2
-rw-r--r--arch/arm/plat-omap/iommu-debug.c1
-rw-r--r--arch/arm/plat-omap/iommu.c1
-rw-r--r--arch/arm/plat-omap/iovmm.c1
-rw-r--r--arch/arm/plat-omap/mailbox.c1
-rw-r--r--arch/arm/plat-omap/mcbsp.c1
-rw-r--r--arch/arm/plat-omap/omap_device.c1
15 files changed, 44 insertions, 16 deletions
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index 088c1a03b94..f12f0e39ddf 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -44,9 +44,6 @@
44 44
45#define NO_LENGTH_CHECK 0xffffffff 45#define NO_LENGTH_CHECK 0xffffffff
46 46
47unsigned char omap_bootloader_tag[512];
48int omap_bootloader_tag_len;
49
50struct omap_board_config_kernel *omap_board_config; 47struct omap_board_config_kernel *omap_board_config;
51int omap_board_config_size; 48int omap_board_config_size;
52 49
@@ -100,10 +97,17 @@ EXPORT_SYMBOL(omap_get_var_config);
100 97
101#include <linux/clocksource.h> 98#include <linux/clocksource.h>
102 99
100/*
101 * offset_32k holds the init time counter value. It is then subtracted
102 * from every counter read to achieve a counter that counts time from the
103 * kernel boot (needed for sched_clock()).
104 */
105static u32 offset_32k __read_mostly;
106
103#ifdef CONFIG_ARCH_OMAP16XX 107#ifdef CONFIG_ARCH_OMAP16XX
104static cycle_t omap16xx_32k_read(struct clocksource *cs) 108static cycle_t omap16xx_32k_read(struct clocksource *cs)
105{ 109{
106 return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED); 110 return omap_readl(OMAP16XX_TIMER_32K_SYNCHRONIZED) - offset_32k;
107} 111}
108#else 112#else
109#define omap16xx_32k_read NULL 113#define omap16xx_32k_read NULL
@@ -112,7 +116,7 @@ static cycle_t omap16xx_32k_read(struct clocksource *cs)
112#ifdef CONFIG_ARCH_OMAP2420 116#ifdef CONFIG_ARCH_OMAP2420
113static cycle_t omap2420_32k_read(struct clocksource *cs) 117static cycle_t omap2420_32k_read(struct clocksource *cs)
114{ 118{
115 return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10); 119 return omap_readl(OMAP2420_32KSYNCT_BASE + 0x10) - offset_32k;
116} 120}
117#else 121#else
118#define omap2420_32k_read NULL 122#define omap2420_32k_read NULL
@@ -121,7 +125,7 @@ static cycle_t omap2420_32k_read(struct clocksource *cs)
121#ifdef CONFIG_ARCH_OMAP2430 125#ifdef CONFIG_ARCH_OMAP2430
122static cycle_t omap2430_32k_read(struct clocksource *cs) 126static cycle_t omap2430_32k_read(struct clocksource *cs)
123{ 127{
124 return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10); 128 return omap_readl(OMAP2430_32KSYNCT_BASE + 0x10) - offset_32k;
125} 129}
126#else 130#else
127#define omap2430_32k_read NULL 131#define omap2430_32k_read NULL
@@ -130,7 +134,7 @@ static cycle_t omap2430_32k_read(struct clocksource *cs)
130#ifdef CONFIG_ARCH_OMAP3 134#ifdef CONFIG_ARCH_OMAP3
131static cycle_t omap34xx_32k_read(struct clocksource *cs) 135static cycle_t omap34xx_32k_read(struct clocksource *cs)
132{ 136{
133 return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10); 137 return omap_readl(OMAP3430_32KSYNCT_BASE + 0x10) - offset_32k;
134} 138}
135#else 139#else
136#define omap34xx_32k_read NULL 140#define omap34xx_32k_read NULL
@@ -139,7 +143,7 @@ static cycle_t omap34xx_32k_read(struct clocksource *cs)
139#ifdef CONFIG_ARCH_OMAP4 143#ifdef CONFIG_ARCH_OMAP4
140static cycle_t omap44xx_32k_read(struct clocksource *cs) 144static cycle_t omap44xx_32k_read(struct clocksource *cs)
141{ 145{
142 return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10); 146 return omap_readl(OMAP4430_32KSYNCT_BASE + 0x10) - offset_32k;
143} 147}
144#else 148#else
145#define omap44xx_32k_read NULL 149#define omap44xx_32k_read NULL
@@ -227,6 +231,8 @@ static int __init omap_init_clocksource_32k(void)
227 clocksource_32k.mult = clocksource_hz2mult(32768, 231 clocksource_32k.mult = clocksource_hz2mult(32768,
228 clocksource_32k.shift); 232 clocksource_32k.shift);
229 233
234 offset_32k = clocksource_32k.read(&clocksource_32k);
235
230 if (clocksource_register(&clocksource_32k)) 236 if (clocksource_register(&clocksource_32k))
231 printk(err, clocksource_32k.name); 237 printk(err, clocksource_32k.name);
232 } 238 }
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index 4a4cd8774aa..95677d17cd1 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -14,6 +14,7 @@
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/io.h> 16#include <linux/io.h>
17#include <linux/slab.h>
17 18
18#include <mach/hardware.h> 19#include <mach/hardware.h>
19#include <asm/mach-types.h> 20#include <asm/mach-types.h>
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 2ab224c8e16..1d959965ff5 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -29,6 +29,7 @@
29#include <linux/interrupt.h> 29#include <linux/interrupt.h>
30#include <linux/irq.h> 30#include <linux/irq.h>
31#include <linux/io.h> 31#include <linux/io.h>
32#include <linux/slab.h>
32 33
33#include <asm/system.h> 34#include <asm/system.h>
34#include <mach/hardware.h> 35#include <mach/hardware.h>
@@ -936,6 +937,15 @@ void omap_start_dma(int lch)
936{ 937{
937 u32 l; 938 u32 l;
938 939
940 /*
941 * The CPC/CDAC register needs to be initialized to zero
942 * before starting dma transfer.
943 */
944 if (cpu_is_omap15xx())
945 dma_write(0, CPC(lch));
946 else
947 dma_write(0, CDAC(lch));
948
939 if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) { 949 if (!omap_dma_in_1510_mode() && dma_chan[lch].next_lch != -1) {
940 int next_lch, cur_lch; 950 int next_lch, cur_lch;
941 char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT]; 951 char dma_chan_link_map[OMAP_DMA4_LOGICAL_DMA_CH_COUNT];
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 76a347b3ce0..45a225d0912 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -798,7 +798,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
798 case METHOD_MPUIO: 798 case METHOD_MPUIO:
799 reg += OMAP_MPUIO_GPIO_INT_EDGE; 799 reg += OMAP_MPUIO_GPIO_INT_EDGE;
800 l = __raw_readl(reg); 800 l = __raw_readl(reg);
801 if (trigger & IRQ_TYPE_EDGE_BOTH) 801 if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
802 bank->toggle_mask |= 1 << gpio; 802 bank->toggle_mask |= 1 << gpio;
803 if (trigger & IRQ_TYPE_EDGE_RISING) 803 if (trigger & IRQ_TYPE_EDGE_RISING)
804 l |= 1 << gpio; 804 l |= 1 << gpio;
@@ -812,7 +812,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
812 case METHOD_GPIO_1510: 812 case METHOD_GPIO_1510:
813 reg += OMAP1510_GPIO_INT_CONTROL; 813 reg += OMAP1510_GPIO_INT_CONTROL;
814 l = __raw_readl(reg); 814 l = __raw_readl(reg);
815 if (trigger & IRQ_TYPE_EDGE_BOTH) 815 if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
816 bank->toggle_mask |= 1 << gpio; 816 bank->toggle_mask |= 1 << gpio;
817 if (trigger & IRQ_TYPE_EDGE_RISING) 817 if (trigger & IRQ_TYPE_EDGE_RISING)
818 l |= 1 << gpio; 818 l |= 1 << gpio;
@@ -846,7 +846,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
846 case METHOD_GPIO_7XX: 846 case METHOD_GPIO_7XX:
847 reg += OMAP7XX_GPIO_INT_CONTROL; 847 reg += OMAP7XX_GPIO_INT_CONTROL;
848 l = __raw_readl(reg); 848 l = __raw_readl(reg);
849 if (trigger & IRQ_TYPE_EDGE_BOTH) 849 if ((trigger & IRQ_TYPE_SENSE_MASK) == IRQ_TYPE_EDGE_BOTH)
850 bank->toggle_mask |= 1 << gpio; 850 bank->toggle_mask |= 1 << gpio;
851 if (trigger & IRQ_TYPE_EDGE_RISING) 851 if (trigger & IRQ_TYPE_EDGE_RISING)
852 l |= 1 << gpio; 852 l |= 1 << gpio;
diff --git a/arch/arm/plat-omap/include/plat/irqs.h b/arch/arm/plat-omap/include/plat/irqs.h
index b65088a869e..401701977db 100644
--- a/arch/arm/plat-omap/include/plat/irqs.h
+++ b/arch/arm/plat-omap/include/plat/irqs.h
@@ -345,8 +345,6 @@
345#define INT_34XX_MMC3_IRQ 94 345#define INT_34XX_MMC3_IRQ 94
346#define INT_34XX_GPT12_IRQ 95 346#define INT_34XX_GPT12_IRQ 95
347 347
348#define INT_34XX_BENCH_MPU_EMUL 3
349
350#define INT_35XX_HECC0_IRQ 24 348#define INT_35XX_HECC0_IRQ 24
351#define INT_35XX_HECC1_IRQ 28 349#define INT_35XX_HECC1_IRQ 28
352#define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67 350#define INT_35XX_EMAC_C0_RXTHRESH_IRQ 67
diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-omap/include/plat/mcbsp.h
index 39748354ce4..7de903d7c1c 100644
--- a/arch/arm/plat-omap/include/plat/mcbsp.h
+++ b/arch/arm/plat-omap/include/plat/mcbsp.h
@@ -59,7 +59,7 @@
59#define OMAP44XX_MCBSP1_BASE 0x49022000 59#define OMAP44XX_MCBSP1_BASE 0x49022000
60#define OMAP44XX_MCBSP2_BASE 0x49024000 60#define OMAP44XX_MCBSP2_BASE 0x49024000
61#define OMAP44XX_MCBSP3_BASE 0x49026000 61#define OMAP44XX_MCBSP3_BASE 0x49026000
62#define OMAP44XX_MCBSP4_BASE 0x48074000 62#define OMAP44XX_MCBSP4_BASE 0x48096000
63 63
64#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) 64#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850)
65 65
diff --git a/arch/arm/plat-omap/include/plat/nand.h b/arch/arm/plat-omap/include/plat/nand.h
index 6ba88d2630d..f8efd5466b1 100644
--- a/arch/arm/plat-omap/include/plat/nand.h
+++ b/arch/arm/plat-omap/include/plat/nand.h
@@ -29,4 +29,11 @@ struct omap_nand_platform_data {
29/* size (4 KiB) for IO mapping */ 29/* size (4 KiB) for IO mapping */
30#define NAND_IO_SIZE SZ_4K 30#define NAND_IO_SIZE SZ_4K
31 31
32#if defined(CONFIG_MTD_NAND_OMAP2) || defined(CONFIG_MTD_NAND_OMAP2_MODULE)
32extern int gpmc_nand_init(struct omap_nand_platform_data *d); 33extern int gpmc_nand_init(struct omap_nand_platform_data *d);
34#else
35static inline int gpmc_nand_init(struct omap_nand_platform_data *d)
36{
37 return 0;
38}
39#endif
diff --git a/arch/arm/plat-omap/include/plat/omap44xx.h b/arch/arm/plat-omap/include/plat/omap44xx.h
index 2302474a374..b3ef1a7f53c 100644
--- a/arch/arm/plat-omap/include/plat/omap44xx.h
+++ b/arch/arm/plat-omap/include/plat/omap44xx.h
@@ -32,7 +32,7 @@
32#define OMAP4430_PRM_BASE 0x4a306000 32#define OMAP4430_PRM_BASE 0x4a306000
33#define OMAP44XX_GPMC_BASE 0x50000000 33#define OMAP44XX_GPMC_BASE 0x50000000
34#define OMAP443X_SCM_BASE 0x4a002000 34#define OMAP443X_SCM_BASE 0x4a002000
35#define OMAP443X_CTRL_BASE OMAP443X_SCM_BASE 35#define OMAP443X_CTRL_BASE 0x4a100000
36#define OMAP44XX_IC_BASE 0x48200000 36#define OMAP44XX_IC_BASE 0x48200000
37#define OMAP44XX_IVA_INTC_BASE 0x40000000 37#define OMAP44XX_IVA_INTC_BASE 0x40000000
38#define IRQ_SIR_IRQ 0x0040 38#define IRQ_SIR_IRQ 0x0040
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index 440b4164f2f..36d6ea56ab5 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -294,8 +294,8 @@ struct omap_hwmod_class_sysconfig {
294 u16 rev_offs; 294 u16 rev_offs;
295 u16 sysc_offs; 295 u16 sysc_offs;
296 u16 syss_offs; 296 u16 syss_offs;
297 u16 sysc_flags;
297 u8 idlemodes; 298 u8 idlemodes;
298 u8 sysc_flags;
299 u8 clockact; 299 u8 clockact;
300 struct omap_hwmod_sysc_fields *sysc_fields; 300 struct omap_hwmod_sysc_fields *sysc_fields;
301}; 301};
diff --git a/arch/arm/plat-omap/iommu-debug.c b/arch/arm/plat-omap/iommu-debug.c
index afd1c27cff7..e6c0d536899 100644
--- a/arch/arm/plat-omap/iommu-debug.c
+++ b/arch/arm/plat-omap/iommu-debug.c
@@ -13,6 +13,7 @@
13#include <linux/err.h> 13#include <linux/err.h>
14#include <linux/clk.h> 14#include <linux/clk.h>
15#include <linux/io.h> 15#include <linux/io.h>
16#include <linux/slab.h>
16#include <linux/uaccess.h> 17#include <linux/uaccess.h>
17#include <linux/platform_device.h> 18#include <linux/platform_device.h>
18#include <linux/debugfs.h> 19#include <linux/debugfs.h>
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
index 905ed832df5..0e137663349 100644
--- a/arch/arm/plat-omap/iommu.c
+++ b/arch/arm/plat-omap/iommu.c
@@ -13,6 +13,7 @@
13 13
14#include <linux/err.h> 14#include <linux/err.h>
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/slab.h>
16#include <linux/interrupt.h> 17#include <linux/interrupt.h>
17#include <linux/ioport.h> 18#include <linux/ioport.h>
18#include <linux/clk.h> 19#include <linux/clk.h>
diff --git a/arch/arm/plat-omap/iovmm.c b/arch/arm/plat-omap/iovmm.c
index 936aef1971c..65c6d1ff723 100644
--- a/arch/arm/plat-omap/iovmm.c
+++ b/arch/arm/plat-omap/iovmm.c
@@ -11,6 +11,7 @@
11 */ 11 */
12 12
13#include <linux/err.h> 13#include <linux/err.h>
14#include <linux/slab.h>
14#include <linux/vmalloc.h> 15#include <linux/vmalloc.h>
15#include <linux/device.h> 16#include <linux/device.h>
16#include <linux/scatterlist.h> 17#include <linux/scatterlist.h>
diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c
index 4229cec5314..08a2df76628 100644
--- a/arch/arm/plat-omap/mailbox.c
+++ b/arch/arm/plat-omap/mailbox.c
@@ -25,6 +25,7 @@
25#include <linux/interrupt.h> 25#include <linux/interrupt.h>
26#include <linux/device.h> 26#include <linux/device.h>
27#include <linux/delay.h> 27#include <linux/delay.h>
28#include <linux/slab.h>
28 29
29#include <plat/mailbox.h> 30#include <plat/mailbox.h>
30 31
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index 52dfcc81511..e1d0440fd4a 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -23,6 +23,7 @@
23#include <linux/clk.h> 23#include <linux/clk.h>
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/io.h> 25#include <linux/io.h>
26#include <linux/slab.h>
26 27
27#include <plat/dma.h> 28#include <plat/dma.h>
28#include <plat/mcbsp.h> 29#include <plat/mcbsp.h>
diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-omap/omap_device.c
index 59043589484..0f519747951 100644
--- a/arch/arm/plat-omap/omap_device.c
+++ b/arch/arm/plat-omap/omap_device.c
@@ -79,6 +79,7 @@
79 79
80#include <linux/kernel.h> 80#include <linux/kernel.h>
81#include <linux/platform_device.h> 81#include <linux/platform_device.h>
82#include <linux/slab.h>
82#include <linux/err.h> 83#include <linux/err.h>
83#include <linux/io.h> 84#include <linux/io.h>
84 85