diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/include/asm/elf.h | 1 | ||||
-rw-r--r-- | arch/arm/include/asm/mach/irq.h | 4 | ||||
-rw-r--r-- | arch/arm/include/asm/spinlock.h | 40 | ||||
-rw-r--r-- | arch/arm/include/asm/spinlock_types.h | 8 | ||||
-rw-r--r-- | arch/arm/kernel/irq.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-at91/include/mach/atmel-mci.h | 24 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/arch.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/mach/reg_nand.h | 66 | ||||
-rw-r--r-- | arch/arm/mach-bcmring/include/mach/reg_umi.h | 237 | ||||
-rw-r--r-- | arch/arm/mach-davinci/board-da850-evm.c | 24 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/nand.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h | 11 | ||||
-rw-r--r-- | arch/arm/mach-nomadik/board-nhk8815.c | 11 | ||||
-rw-r--r-- | arch/arm/mach-ns9xxx/irq.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-s3c2442/mach-gta02.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-u300/include/mach/coh901318.h | 281 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/mxc_nand.h | 3 | ||||
-rw-r--r-- | arch/arm/plat-omap/debug-leds.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/gpio.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-s3c/include/plat/nand.h | 2 |
20 files changed, 689 insertions, 64 deletions
diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h index 6aac3f5bb2f3..a399bb5730f1 100644 --- a/arch/arm/include/asm/elf.h +++ b/arch/arm/include/asm/elf.h | |||
@@ -101,7 +101,6 @@ extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int); | |||
101 | int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs); | 101 | int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs); |
102 | #define ELF_CORE_COPY_TASK_REGS dump_task_regs | 102 | #define ELF_CORE_COPY_TASK_REGS dump_task_regs |
103 | 103 | ||
104 | #define USE_ELF_CORE_DUMP | ||
105 | #define ELF_EXEC_PAGESIZE 4096 | 104 | #define ELF_EXEC_PAGESIZE 4096 |
106 | 105 | ||
107 | /* This is the location that an ET_DYN program is loaded if exec'ed. Typical | 106 | /* This is the location that an ET_DYN program is loaded if exec'ed. Typical |
diff --git a/arch/arm/include/asm/mach/irq.h b/arch/arm/include/asm/mach/irq.h index acac5302e4ea..8920b2d6e3b8 100644 --- a/arch/arm/include/asm/mach/irq.h +++ b/arch/arm/include/asm/mach/irq.h | |||
@@ -26,9 +26,9 @@ extern int show_fiq_list(struct seq_file *, void *); | |||
26 | */ | 26 | */ |
27 | #define do_bad_IRQ(irq,desc) \ | 27 | #define do_bad_IRQ(irq,desc) \ |
28 | do { \ | 28 | do { \ |
29 | spin_lock(&desc->lock); \ | 29 | raw_spin_lock(&desc->lock); \ |
30 | handle_bad_irq(irq, desc); \ | 30 | handle_bad_irq(irq, desc); \ |
31 | spin_unlock(&desc->lock); \ | 31 | raw_spin_unlock(&desc->lock); \ |
32 | } while(0) | 32 | } while(0) |
33 | 33 | ||
34 | #endif | 34 | #endif |
diff --git a/arch/arm/include/asm/spinlock.h b/arch/arm/include/asm/spinlock.h index c13681ac1ede..c91c64cab922 100644 --- a/arch/arm/include/asm/spinlock.h +++ b/arch/arm/include/asm/spinlock.h | |||
@@ -17,13 +17,13 @@ | |||
17 | * Locked value: 1 | 17 | * Locked value: 1 |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #define __raw_spin_is_locked(x) ((x)->lock != 0) | 20 | #define arch_spin_is_locked(x) ((x)->lock != 0) |
21 | #define __raw_spin_unlock_wait(lock) \ | 21 | #define arch_spin_unlock_wait(lock) \ |
22 | do { while (__raw_spin_is_locked(lock)) cpu_relax(); } while (0) | 22 | do { while (arch_spin_is_locked(lock)) cpu_relax(); } while (0) |
23 | 23 | ||
24 | #define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock) | 24 | #define arch_spin_lock_flags(lock, flags) arch_spin_lock(lock) |
25 | 25 | ||
26 | static inline void __raw_spin_lock(raw_spinlock_t *lock) | 26 | static inline void arch_spin_lock(arch_spinlock_t *lock) |
27 | { | 27 | { |
28 | unsigned long tmp; | 28 | unsigned long tmp; |
29 | 29 | ||
@@ -43,7 +43,7 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock) | |||
43 | smp_mb(); | 43 | smp_mb(); |
44 | } | 44 | } |
45 | 45 | ||
46 | static inline int __raw_spin_trylock(raw_spinlock_t *lock) | 46 | static inline int arch_spin_trylock(arch_spinlock_t *lock) |
47 | { | 47 | { |
48 | unsigned long tmp; | 48 | unsigned long tmp; |
49 | 49 | ||
@@ -63,7 +63,7 @@ static inline int __raw_spin_trylock(raw_spinlock_t *lock) | |||
63 | } | 63 | } |
64 | } | 64 | } |
65 | 65 | ||
66 | static inline void __raw_spin_unlock(raw_spinlock_t *lock) | 66 | static inline void arch_spin_unlock(arch_spinlock_t *lock) |
67 | { | 67 | { |
68 | smp_mb(); | 68 | smp_mb(); |
69 | 69 | ||
@@ -86,7 +86,7 @@ static inline void __raw_spin_unlock(raw_spinlock_t *lock) | |||
86 | * just write zero since the lock is exclusively held. | 86 | * just write zero since the lock is exclusively held. |
87 | */ | 87 | */ |
88 | 88 | ||
89 | static inline void __raw_write_lock(raw_rwlock_t *rw) | 89 | static inline void arch_write_lock(arch_rwlock_t *rw) |
90 | { | 90 | { |
91 | unsigned long tmp; | 91 | unsigned long tmp; |
92 | 92 | ||
@@ -106,7 +106,7 @@ static inline void __raw_write_lock(raw_rwlock_t *rw) | |||
106 | smp_mb(); | 106 | smp_mb(); |
107 | } | 107 | } |
108 | 108 | ||
109 | static inline int __raw_write_trylock(raw_rwlock_t *rw) | 109 | static inline int arch_write_trylock(arch_rwlock_t *rw) |
110 | { | 110 | { |
111 | unsigned long tmp; | 111 | unsigned long tmp; |
112 | 112 | ||
@@ -126,7 +126,7 @@ static inline int __raw_write_trylock(raw_rwlock_t *rw) | |||
126 | } | 126 | } |
127 | } | 127 | } |
128 | 128 | ||
129 | static inline void __raw_write_unlock(raw_rwlock_t *rw) | 129 | static inline void arch_write_unlock(arch_rwlock_t *rw) |
130 | { | 130 | { |
131 | smp_mb(); | 131 | smp_mb(); |
132 | 132 | ||
@@ -142,7 +142,7 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw) | |||
142 | } | 142 | } |
143 | 143 | ||
144 | /* write_can_lock - would write_trylock() succeed? */ | 144 | /* write_can_lock - would write_trylock() succeed? */ |
145 | #define __raw_write_can_lock(x) ((x)->lock == 0) | 145 | #define arch_write_can_lock(x) ((x)->lock == 0) |
146 | 146 | ||
147 | /* | 147 | /* |
148 | * Read locks are a bit more hairy: | 148 | * Read locks are a bit more hairy: |
@@ -156,7 +156,7 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw) | |||
156 | * currently active. However, we know we won't have any write | 156 | * currently active. However, we know we won't have any write |
157 | * locks. | 157 | * locks. |
158 | */ | 158 | */ |
159 | static inline void __raw_read_lock(raw_rwlock_t *rw) | 159 | static inline void arch_read_lock(arch_rwlock_t *rw) |
160 | { | 160 | { |
161 | unsigned long tmp, tmp2; | 161 | unsigned long tmp, tmp2; |
162 | 162 | ||
@@ -176,7 +176,7 @@ static inline void __raw_read_lock(raw_rwlock_t *rw) | |||
176 | smp_mb(); | 176 | smp_mb(); |
177 | } | 177 | } |
178 | 178 | ||
179 | static inline void __raw_read_unlock(raw_rwlock_t *rw) | 179 | static inline void arch_read_unlock(arch_rwlock_t *rw) |
180 | { | 180 | { |
181 | unsigned long tmp, tmp2; | 181 | unsigned long tmp, tmp2; |
182 | 182 | ||
@@ -198,7 +198,7 @@ static inline void __raw_read_unlock(raw_rwlock_t *rw) | |||
198 | : "cc"); | 198 | : "cc"); |
199 | } | 199 | } |
200 | 200 | ||
201 | static inline int __raw_read_trylock(raw_rwlock_t *rw) | 201 | static inline int arch_read_trylock(arch_rwlock_t *rw) |
202 | { | 202 | { |
203 | unsigned long tmp, tmp2 = 1; | 203 | unsigned long tmp, tmp2 = 1; |
204 | 204 | ||
@@ -215,13 +215,13 @@ static inline int __raw_read_trylock(raw_rwlock_t *rw) | |||
215 | } | 215 | } |
216 | 216 | ||
217 | /* read_can_lock - would read_trylock() succeed? */ | 217 | /* read_can_lock - would read_trylock() succeed? */ |
218 | #define __raw_read_can_lock(x) ((x)->lock < 0x80000000) | 218 | #define arch_read_can_lock(x) ((x)->lock < 0x80000000) |
219 | 219 | ||
220 | #define __raw_read_lock_flags(lock, flags) __raw_read_lock(lock) | 220 | #define arch_read_lock_flags(lock, flags) arch_read_lock(lock) |
221 | #define __raw_write_lock_flags(lock, flags) __raw_write_lock(lock) | 221 | #define arch_write_lock_flags(lock, flags) arch_write_lock(lock) |
222 | 222 | ||
223 | #define _raw_spin_relax(lock) cpu_relax() | 223 | #define arch_spin_relax(lock) cpu_relax() |
224 | #define _raw_read_relax(lock) cpu_relax() | 224 | #define arch_read_relax(lock) cpu_relax() |
225 | #define _raw_write_relax(lock) cpu_relax() | 225 | #define arch_write_relax(lock) cpu_relax() |
226 | 226 | ||
227 | #endif /* __ASM_SPINLOCK_H */ | 227 | #endif /* __ASM_SPINLOCK_H */ |
diff --git a/arch/arm/include/asm/spinlock_types.h b/arch/arm/include/asm/spinlock_types.h index 43e83f6d2ee5..d14d197ae04a 100644 --- a/arch/arm/include/asm/spinlock_types.h +++ b/arch/arm/include/asm/spinlock_types.h | |||
@@ -7,14 +7,14 @@ | |||
7 | 7 | ||
8 | typedef struct { | 8 | typedef struct { |
9 | volatile unsigned int lock; | 9 | volatile unsigned int lock; |
10 | } raw_spinlock_t; | 10 | } arch_spinlock_t; |
11 | 11 | ||
12 | #define __RAW_SPIN_LOCK_UNLOCKED { 0 } | 12 | #define __ARCH_SPIN_LOCK_UNLOCKED { 0 } |
13 | 13 | ||
14 | typedef struct { | 14 | typedef struct { |
15 | volatile unsigned int lock; | 15 | volatile unsigned int lock; |
16 | } raw_rwlock_t; | 16 | } arch_rwlock_t; |
17 | 17 | ||
18 | #define __RAW_RW_LOCK_UNLOCKED { 0 } | 18 | #define __ARCH_RW_LOCK_UNLOCKED { 0 } |
19 | 19 | ||
20 | #endif | 20 | #endif |
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c index c9a8619f3856..b7cb45bb91e8 100644 --- a/arch/arm/kernel/irq.c +++ b/arch/arm/kernel/irq.c | |||
@@ -69,7 +69,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
69 | } | 69 | } |
70 | 70 | ||
71 | if (i < NR_IRQS) { | 71 | if (i < NR_IRQS) { |
72 | spin_lock_irqsave(&irq_desc[i].lock, flags); | 72 | raw_spin_lock_irqsave(&irq_desc[i].lock, flags); |
73 | action = irq_desc[i].action; | 73 | action = irq_desc[i].action; |
74 | if (!action) | 74 | if (!action) |
75 | goto unlock; | 75 | goto unlock; |
@@ -84,7 +84,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
84 | 84 | ||
85 | seq_putc(p, '\n'); | 85 | seq_putc(p, '\n'); |
86 | unlock: | 86 | unlock: |
87 | spin_unlock_irqrestore(&irq_desc[i].lock, flags); | 87 | raw_spin_unlock_irqrestore(&irq_desc[i].lock, flags); |
88 | } else if (i == NR_IRQS) { | 88 | } else if (i == NR_IRQS) { |
89 | #ifdef CONFIG_FIQ | 89 | #ifdef CONFIG_FIQ |
90 | show_fiq_list(p, v); | 90 | show_fiq_list(p, v); |
@@ -139,7 +139,7 @@ void set_irq_flags(unsigned int irq, unsigned int iflags) | |||
139 | } | 139 | } |
140 | 140 | ||
141 | desc = irq_desc + irq; | 141 | desc = irq_desc + irq; |
142 | spin_lock_irqsave(&desc->lock, flags); | 142 | raw_spin_lock_irqsave(&desc->lock, flags); |
143 | desc->status |= IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN; | 143 | desc->status |= IRQ_NOREQUEST | IRQ_NOPROBE | IRQ_NOAUTOEN; |
144 | if (iflags & IRQF_VALID) | 144 | if (iflags & IRQF_VALID) |
145 | desc->status &= ~IRQ_NOREQUEST; | 145 | desc->status &= ~IRQ_NOREQUEST; |
@@ -147,7 +147,7 @@ void set_irq_flags(unsigned int irq, unsigned int iflags) | |||
147 | desc->status &= ~IRQ_NOPROBE; | 147 | desc->status &= ~IRQ_NOPROBE; |
148 | if (!(iflags & IRQF_NOAUTOEN)) | 148 | if (!(iflags & IRQF_NOAUTOEN)) |
149 | desc->status &= ~IRQ_NOAUTOEN; | 149 | desc->status &= ~IRQ_NOAUTOEN; |
150 | spin_unlock_irqrestore(&desc->lock, flags); | 150 | raw_spin_unlock_irqrestore(&desc->lock, flags); |
151 | } | 151 | } |
152 | 152 | ||
153 | void __init init_IRQ(void) | 153 | void __init init_IRQ(void) |
@@ -166,9 +166,9 @@ static void route_irq(struct irq_desc *desc, unsigned int irq, unsigned int cpu) | |||
166 | { | 166 | { |
167 | pr_debug("IRQ%u: moving from cpu%u to cpu%u\n", irq, desc->node, cpu); | 167 | pr_debug("IRQ%u: moving from cpu%u to cpu%u\n", irq, desc->node, cpu); |
168 | 168 | ||
169 | spin_lock_irq(&desc->lock); | 169 | raw_spin_lock_irq(&desc->lock); |
170 | desc->chip->set_affinity(irq, cpumask_of(cpu)); | 170 | desc->chip->set_affinity(irq, cpumask_of(cpu)); |
171 | spin_unlock_irq(&desc->lock); | 171 | raw_spin_unlock_irq(&desc->lock); |
172 | } | 172 | } |
173 | 173 | ||
174 | /* | 174 | /* |
diff --git a/arch/arm/mach-at91/include/mach/atmel-mci.h b/arch/arm/mach-at91/include/mach/atmel-mci.h new file mode 100644 index 000000000000..998cb0c07135 --- /dev/null +++ b/arch/arm/mach-at91/include/mach/atmel-mci.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef __MACH_ATMEL_MCI_H | ||
2 | #define __MACH_ATMEL_MCI_H | ||
3 | |||
4 | #include <mach/at_hdmac.h> | ||
5 | |||
6 | /** | ||
7 | * struct mci_dma_data - DMA data for MCI interface | ||
8 | */ | ||
9 | struct mci_dma_data { | ||
10 | struct at_dma_slave sdata; | ||
11 | }; | ||
12 | |||
13 | /* accessor macros */ | ||
14 | #define slave_data_ptr(s) (&(s)->sdata) | ||
15 | #define find_slave_dev(s) ((s)->sdata.dma_dev) | ||
16 | |||
17 | #define setup_dma_addr(s, t, r) do { \ | ||
18 | if (s) { \ | ||
19 | (s)->sdata.tx_reg = (t); \ | ||
20 | (s)->sdata.rx_reg = (r); \ | ||
21 | } \ | ||
22 | } while (0) | ||
23 | |||
24 | #endif /* __MACH_ATMEL_MCI_H */ | ||
diff --git a/arch/arm/mach-bcmring/arch.c b/arch/arm/mach-bcmring/arch.c index fbe6fa02c882..53dd2a9eecf9 100644 --- a/arch/arm/mach-bcmring/arch.c +++ b/arch/arm/mach-bcmring/arch.c | |||
@@ -70,9 +70,19 @@ static struct ctl_table bcmring_sysctl_reboot[] = { | |||
70 | {} | 70 | {} |
71 | }; | 71 | }; |
72 | 72 | ||
73 | static struct resource nand_resource[] = { | ||
74 | [0] = { | ||
75 | .start = MM_ADDR_IO_NAND, | ||
76 | .end = MM_ADDR_IO_NAND + 0x1000 - 1, | ||
77 | .flags = IORESOURCE_MEM, | ||
78 | }, | ||
79 | }; | ||
80 | |||
73 | static struct platform_device nand_device = { | 81 | static struct platform_device nand_device = { |
74 | .name = "bcm-nand", | 82 | .name = "bcm-nand", |
75 | .id = -1, | 83 | .id = -1, |
84 | .resource = nand_resource, | ||
85 | .num_resources = ARRAY_SIZE(nand_resource), | ||
76 | }; | 86 | }; |
77 | 87 | ||
78 | static struct platform_device *devices[] __initdata = { | 88 | static struct platform_device *devices[] __initdata = { |
diff --git a/arch/arm/mach-bcmring/include/mach/reg_nand.h b/arch/arm/mach-bcmring/include/mach/reg_nand.h new file mode 100644 index 000000000000..387376ffb56b --- /dev/null +++ b/arch/arm/mach-bcmring/include/mach/reg_nand.h | |||
@@ -0,0 +1,66 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2001 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | /* | ||
16 | * | ||
17 | ***************************************************************************** | ||
18 | * | ||
19 | * REG_NAND.h | ||
20 | * | ||
21 | * PURPOSE: | ||
22 | * | ||
23 | * This file contains definitions for the nand registers: | ||
24 | * | ||
25 | * NOTES: | ||
26 | * | ||
27 | *****************************************************************************/ | ||
28 | |||
29 | #if !defined(__ASM_ARCH_REG_NAND_H) | ||
30 | #define __ASM_ARCH_REG_NAND_H | ||
31 | |||
32 | /* ---- Include Files ---------------------------------------------------- */ | ||
33 | #include <csp/reg.h> | ||
34 | #include <mach/reg_umi.h> | ||
35 | |||
36 | /* ---- Constants and Types ---------------------------------------------- */ | ||
37 | |||
38 | #define HW_NAND_BASE MM_IO_BASE_NAND /* NAND Flash */ | ||
39 | |||
40 | /* DMA accesses by the bootstrap need hard nonvirtual addresses */ | ||
41 | #define REG_NAND_CMD __REG16(HW_NAND_BASE + 0) | ||
42 | #define REG_NAND_ADDR __REG16(HW_NAND_BASE + 4) | ||
43 | |||
44 | #define REG_NAND_PHYS_DATA16 (HW_NAND_BASE + 8) | ||
45 | #define REG_NAND_PHYS_DATA8 (HW_NAND_BASE + 8) | ||
46 | #define REG_NAND_DATA16 __REG16(REG_NAND_PHYS_DATA16) | ||
47 | #define REG_NAND_DATA8 __REG8(REG_NAND_PHYS_DATA8) | ||
48 | |||
49 | /* use appropriate offset to make sure it start at the 1K boundary */ | ||
50 | #define REG_NAND_PHYS_DATA_DMA (HW_NAND_BASE + 0x400) | ||
51 | #define REG_NAND_DATA_DMA __REG32(REG_NAND_PHYS_DATA_DMA) | ||
52 | |||
53 | /* Linux DMA requires physical address of the data register */ | ||
54 | #define REG_NAND_DATA16_PADDR HW_IO_VIRT_TO_PHYS(REG_NAND_PHYS_DATA16) | ||
55 | #define REG_NAND_DATA8_PADDR HW_IO_VIRT_TO_PHYS(REG_NAND_PHYS_DATA8) | ||
56 | #define REG_NAND_DATA_PADDR HW_IO_VIRT_TO_PHYS(REG_NAND_PHYS_DATA_DMA) | ||
57 | |||
58 | #define NAND_BUS_16BIT() (0) | ||
59 | #define NAND_BUS_8BIT() (!NAND_BUS_16BIT()) | ||
60 | |||
61 | /* Register offsets */ | ||
62 | #define REG_NAND_CMD_OFFSET (0) | ||
63 | #define REG_NAND_ADDR_OFFSET (4) | ||
64 | #define REG_NAND_DATA8_OFFSET (8) | ||
65 | |||
66 | #endif | ||
diff --git a/arch/arm/mach-bcmring/include/mach/reg_umi.h b/arch/arm/mach-bcmring/include/mach/reg_umi.h new file mode 100644 index 000000000000..06a355481ea6 --- /dev/null +++ b/arch/arm/mach-bcmring/include/mach/reg_umi.h | |||
@@ -0,0 +1,237 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2005 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | /* | ||
16 | * | ||
17 | ***************************************************************************** | ||
18 | * | ||
19 | * REG_UMI.h | ||
20 | * | ||
21 | * PURPOSE: | ||
22 | * | ||
23 | * This file contains definitions for the nand registers: | ||
24 | * | ||
25 | * NOTES: | ||
26 | * | ||
27 | *****************************************************************************/ | ||
28 | |||
29 | #if !defined(__ASM_ARCH_REG_UMI_H) | ||
30 | #define __ASM_ARCH_REG_UMI_H | ||
31 | |||
32 | /* ---- Include Files ---------------------------------------------------- */ | ||
33 | #include <csp/reg.h> | ||
34 | #include <mach/csp/mm_io.h> | ||
35 | |||
36 | /* ---- Constants and Types ---------------------------------------------- */ | ||
37 | |||
38 | /* Unified Memory Interface Ctrl Register */ | ||
39 | #define HW_UMI_BASE MM_IO_BASE_UMI | ||
40 | |||
41 | /* Flash bank 0 timing and control register */ | ||
42 | #define REG_UMI_FLASH0_TCR __REG32(HW_UMI_BASE + 0x00) | ||
43 | /* Flash bank 1 timing and control register */ | ||
44 | #define REG_UMI_FLASH1_TCR __REG32(HW_UMI_BASE + 0x04) | ||
45 | /* Flash bank 2 timing and control register */ | ||
46 | #define REG_UMI_FLASH2_TCR __REG32(HW_UMI_BASE + 0x08) | ||
47 | /* MMD interface and control register */ | ||
48 | #define REG_UMI_MMD_ICR __REG32(HW_UMI_BASE + 0x0c) | ||
49 | /* NAND timing and control register */ | ||
50 | #define REG_UMI_NAND_TCR __REG32(HW_UMI_BASE + 0x18) | ||
51 | /* NAND ready/chip select register */ | ||
52 | #define REG_UMI_NAND_RCSR __REG32(HW_UMI_BASE + 0x1c) | ||
53 | /* NAND ECC control & status register */ | ||
54 | #define REG_UMI_NAND_ECC_CSR __REG32(HW_UMI_BASE + 0x20) | ||
55 | /* NAND ECC data register XXB2B1B0 */ | ||
56 | #define REG_UMI_NAND_ECC_DATA __REG32(HW_UMI_BASE + 0x24) | ||
57 | /* BCH ECC Parameter N */ | ||
58 | #define REG_UMI_BCH_N __REG32(HW_UMI_BASE + 0x40) | ||
59 | /* BCH ECC Parameter T */ | ||
60 | #define REG_UMI_BCH_K __REG32(HW_UMI_BASE + 0x44) | ||
61 | /* BCH ECC Parameter K */ | ||
62 | #define REG_UMI_BCH_T __REG32(HW_UMI_BASE + 0x48) | ||
63 | /* BCH ECC Contro Status */ | ||
64 | #define REG_UMI_BCH_CTRL_STATUS __REG32(HW_UMI_BASE + 0x4C) | ||
65 | /* BCH WR ECC 31:0 */ | ||
66 | #define REG_UMI_BCH_WR_ECC_0 __REG32(HW_UMI_BASE + 0x50) | ||
67 | /* BCH WR ECC 63:32 */ | ||
68 | #define REG_UMI_BCH_WR_ECC_1 __REG32(HW_UMI_BASE + 0x54) | ||
69 | /* BCH WR ECC 95:64 */ | ||
70 | #define REG_UMI_BCH_WR_ECC_2 __REG32(HW_UMI_BASE + 0x58) | ||
71 | /* BCH WR ECC 127:96 */ | ||
72 | #define REG_UMI_BCH_WR_ECC_3 __REG32(HW_UMI_BASE + 0x5c) | ||
73 | /* BCH WR ECC 155:128 */ | ||
74 | #define REG_UMI_BCH_WR_ECC_4 __REG32(HW_UMI_BASE + 0x60) | ||
75 | /* BCH Read Error Location 1,0 */ | ||
76 | #define REG_UMI_BCH_RD_ERR_LOC_1_0 __REG32(HW_UMI_BASE + 0x64) | ||
77 | /* BCH Read Error Location 3,2 */ | ||
78 | #define REG_UMI_BCH_RD_ERR_LOC_3_2 __REG32(HW_UMI_BASE + 0x68) | ||
79 | /* BCH Read Error Location 5,4 */ | ||
80 | #define REG_UMI_BCH_RD_ERR_LOC_5_4 __REG32(HW_UMI_BASE + 0x6c) | ||
81 | /* BCH Read Error Location 7,6 */ | ||
82 | #define REG_UMI_BCH_RD_ERR_LOC_7_6 __REG32(HW_UMI_BASE + 0x70) | ||
83 | /* BCH Read Error Location 9,8 */ | ||
84 | #define REG_UMI_BCH_RD_ERR_LOC_9_8 __REG32(HW_UMI_BASE + 0x74) | ||
85 | /* BCH Read Error Location 11,10 */ | ||
86 | #define REG_UMI_BCH_RD_ERR_LOC_B_A __REG32(HW_UMI_BASE + 0x78) | ||
87 | |||
88 | /* REG_UMI_FLASH0/1/2_TCR, REG_UMI_SRAM0/1_TCR bits */ | ||
89 | /* Enable wait pin during burst write or read */ | ||
90 | #define REG_UMI_TCR_WAITEN 0x80000000 | ||
91 | /* Enable mem ctrlr to work iwth ext mem of lower freq than AHB clk */ | ||
92 | #define REG_UMI_TCR_LOWFREQ 0x40000000 | ||
93 | /* 1=synch write, 0=async write */ | ||
94 | #define REG_UMI_TCR_MEMTYPE_SYNCWRITE 0x20000000 | ||
95 | /* 1=synch read, 0=async read */ | ||
96 | #define REG_UMI_TCR_MEMTYPE_SYNCREAD 0x10000000 | ||
97 | /* 1=page mode read, 0=normal mode read */ | ||
98 | #define REG_UMI_TCR_MEMTYPE_PAGEREAD 0x08000000 | ||
99 | /* page size/burst size (wrap only) */ | ||
100 | #define REG_UMI_TCR_MEMTYPE_PGSZ_MASK 0x07000000 | ||
101 | /* 4 word */ | ||
102 | #define REG_UMI_TCR_MEMTYPE_PGSZ_4 0x00000000 | ||
103 | /* 8 word */ | ||
104 | #define REG_UMI_TCR_MEMTYPE_PGSZ_8 0x01000000 | ||
105 | /* 16 word */ | ||
106 | #define REG_UMI_TCR_MEMTYPE_PGSZ_16 0x02000000 | ||
107 | /* 32 word */ | ||
108 | #define REG_UMI_TCR_MEMTYPE_PGSZ_32 0x03000000 | ||
109 | /* 64 word */ | ||
110 | #define REG_UMI_TCR_MEMTYPE_PGSZ_64 0x04000000 | ||
111 | /* 128 word */ | ||
112 | #define REG_UMI_TCR_MEMTYPE_PGSZ_128 0x05000000 | ||
113 | /* 256 word */ | ||
114 | #define REG_UMI_TCR_MEMTYPE_PGSZ_256 0x06000000 | ||
115 | /* 512 word */ | ||
116 | #define REG_UMI_TCR_MEMTYPE_PGSZ_512 0x07000000 | ||
117 | /* Page read access cycle / Burst write latency (n+2 / n+1) */ | ||
118 | #define REG_UMI_TCR_TPRC_TWLC_MASK 0x00f80000 | ||
119 | /* Bus turnaround cycle (n) */ | ||
120 | #define REG_UMI_TCR_TBTA_MASK 0x00070000 | ||
121 | /* Write pulse width cycle (n+1) */ | ||
122 | #define REG_UMI_TCR_TWP_MASK 0x0000f800 | ||
123 | /* Write recovery cycle (n+1) */ | ||
124 | #define REG_UMI_TCR_TWR_MASK 0x00000600 | ||
125 | /* Write address setup cycle (n+1) */ | ||
126 | #define REG_UMI_TCR_TAS_MASK 0x00000180 | ||
127 | /* Output enable delay cycle (n) */ | ||
128 | #define REG_UMI_TCR_TOE_MASK 0x00000060 | ||
129 | /* Read access cycle / Burst read latency (n+2 / n+1) */ | ||
130 | #define REG_UMI_TCR_TRC_TLC_MASK 0x0000001f | ||
131 | |||
132 | /* REG_UMI_MMD_ICR bits */ | ||
133 | /* Flash write protection pin control */ | ||
134 | #define REG_UMI_MMD_ICR_FLASH_WP 0x8000 | ||
135 | /* Extend hold time for sram0, sram1 csn (39 MHz operation) */ | ||
136 | #define REG_UMI_MMD_ICR_XHCS 0x4000 | ||
137 | /* Enable SDRAM 2 interface control */ | ||
138 | #define REG_UMI_MMD_ICR_SDRAM2EN 0x2000 | ||
139 | /* Enable merge of flash banks 0/1 to 512 MBit bank */ | ||
140 | #define REG_UMI_MMD_ICR_INST512 0x1000 | ||
141 | /* Enable merge of flash banks 1/2 to 512 MBit bank */ | ||
142 | #define REG_UMI_MMD_ICR_DATA512 0x0800 | ||
143 | /* Enable SDRAM interface control */ | ||
144 | #define REG_UMI_MMD_ICR_SDRAMEN 0x0400 | ||
145 | /* Polarity of busy state of Burst Wait Signal */ | ||
146 | #define REG_UMI_MMD_ICR_WAITPOL 0x0200 | ||
147 | /* Enable burst clock stopped when not accessing external burst flash/sram */ | ||
148 | #define REG_UMI_MMD_ICR_BCLKSTOP 0x0100 | ||
149 | /* Enable the peri1_csn to replace flash1_csn in 512 Mb flash mode */ | ||
150 | #define REG_UMI_MMD_ICR_PERI1EN 0x0080 | ||
151 | /* Enable the peri2_csn to replace sdram_csn */ | ||
152 | #define REG_UMI_MMD_ICR_PERI2EN 0x0040 | ||
153 | /* Enable the peri3_csn to replace sdram2_csn */ | ||
154 | #define REG_UMI_MMD_ICR_PERI3EN 0x0020 | ||
155 | /* Enable sram bank1 for H/W controlled MRS */ | ||
156 | #define REG_UMI_MMD_ICR_MRSB1 0x0010 | ||
157 | /* Enable sram bank0 for H/W controlled MRS */ | ||
158 | #define REG_UMI_MMD_ICR_MRSB0 0x0008 | ||
159 | /* Polarity for assert3ed state of H/W controlled MRS */ | ||
160 | #define REG_UMI_MMD_ICR_MRSPOL 0x0004 | ||
161 | /* 0: S/W controllable ZZ/MRS/CRE/P-Mode pin */ | ||
162 | /* 1: H/W controlled ZZ/MRS/CRE/P-Mode, same timing as CS */ | ||
163 | #define REG_UMI_MMD_ICR_MRSMODE 0x0002 | ||
164 | /* MRS state for S/W controlled mode */ | ||
165 | #define REG_UMI_MMD_ICR_MRSSTATE 0x0001 | ||
166 | |||
167 | /* REG_UMI_NAND_TCR bits */ | ||
168 | /* Enable software to control CS */ | ||
169 | #define REG_UMI_NAND_TCR_CS_SWCTRL 0x80000000 | ||
170 | /* 16-bit nand wordsize if set */ | ||
171 | #define REG_UMI_NAND_TCR_WORD16 0x40000000 | ||
172 | /* Bus turnaround cycle (n) */ | ||
173 | #define REG_UMI_NAND_TCR_TBTA_MASK 0x00070000 | ||
174 | /* Write pulse width cycle (n+1) */ | ||
175 | #define REG_UMI_NAND_TCR_TWP_MASK 0x0000f800 | ||
176 | /* Write recovery cycle (n+1) */ | ||
177 | #define REG_UMI_NAND_TCR_TWR_MASK 0x00000600 | ||
178 | /* Write address setup cycle (n+1) */ | ||
179 | #define REG_UMI_NAND_TCR_TAS_MASK 0x00000180 | ||
180 | /* Output enable delay cycle (n) */ | ||
181 | #define REG_UMI_NAND_TCR_TOE_MASK 0x00000060 | ||
182 | /* Read access cycle (n+2) */ | ||
183 | #define REG_UMI_NAND_TCR_TRC_TLC_MASK 0x0000001f | ||
184 | |||
185 | /* REG_UMI_NAND_RCSR bits */ | ||
186 | /* Status: Ready=1, Busy=0 */ | ||
187 | #define REG_UMI_NAND_RCSR_RDY 0x02 | ||
188 | /* Keep CS asserted during operation */ | ||
189 | #define REG_UMI_NAND_RCSR_CS_ASSERTED 0x01 | ||
190 | |||
191 | /* REG_UMI_NAND_ECC_CSR bits */ | ||
192 | /* Interrupt status - read-only */ | ||
193 | #define REG_UMI_NAND_ECC_CSR_NANDINT 0x80000000 | ||
194 | /* Read: Status of ECC done, Write: clear ECC interrupt */ | ||
195 | #define REG_UMI_NAND_ECC_CSR_ECCINT_RAW 0x00800000 | ||
196 | /* Read: Status of R/B, Write: clear R/B interrupt */ | ||
197 | #define REG_UMI_NAND_ECC_CSR_RBINT_RAW 0x00400000 | ||
198 | /* 1 = Enable ECC Interrupt */ | ||
199 | #define REG_UMI_NAND_ECC_CSR_ECCINT_ENABLE 0x00008000 | ||
200 | /* 1 = Assert interrupt at rising edge of R/B_ */ | ||
201 | #define REG_UMI_NAND_ECC_CSR_RBINT_ENABLE 0x00004000 | ||
202 | /* Calculate ECC by 0=512 bytes, 1=256 bytes */ | ||
203 | #define REG_UMI_NAND_ECC_CSR_256BYTE 0x00000080 | ||
204 | /* Enable ECC in hardware */ | ||
205 | #define REG_UMI_NAND_ECC_CSR_ECC_ENABLE 0x00000001 | ||
206 | |||
207 | /* REG_UMI_BCH_CTRL_STATUS bits */ | ||
208 | /* Shift to Indicate Number of correctable errors detected */ | ||
209 | #define REG_UMI_BCH_CTRL_STATUS_NB_CORR_ERROR_SHIFT 20 | ||
210 | /* Indicate Number of correctable errors detected */ | ||
211 | #define REG_UMI_BCH_CTRL_STATUS_NB_CORR_ERROR 0x00F00000 | ||
212 | /* Indicate Errors detected during read but uncorrectable */ | ||
213 | #define REG_UMI_BCH_CTRL_STATUS_UNCORR_ERR 0x00080000 | ||
214 | /* Indicate Errors detected during read and are correctable */ | ||
215 | #define REG_UMI_BCH_CTRL_STATUS_CORR_ERR 0x00040000 | ||
216 | /* Flag indicates BCH's ECC status of read process are valid */ | ||
217 | #define REG_UMI_BCH_CTRL_STATUS_RD_ECC_VALID 0x00020000 | ||
218 | /* Flag indicates BCH's ECC status of write process are valid */ | ||
219 | #define REG_UMI_BCH_CTRL_STATUS_WR_ECC_VALID 0x00010000 | ||
220 | /* Pause ECC calculation */ | ||
221 | #define REG_UMI_BCH_CTRL_STATUS_PAUSE_ECC_DEC 0x00000010 | ||
222 | /* Enable Interrupt */ | ||
223 | #define REG_UMI_BCH_CTRL_STATUS_INT_EN 0x00000004 | ||
224 | /* Enable ECC during read */ | ||
225 | #define REG_UMI_BCH_CTRL_STATUS_ECC_RD_EN 0x00000002 | ||
226 | /* Enable ECC during write */ | ||
227 | #define REG_UMI_BCH_CTRL_STATUS_ECC_WR_EN 0x00000001 | ||
228 | /* Mask for location */ | ||
229 | #define REG_UMI_BCH_ERR_LOC_MASK 0x00001FFF | ||
230 | /* location within a byte */ | ||
231 | #define REG_UMI_BCH_ERR_LOC_BYTE 0x00000007 | ||
232 | /* location within a word */ | ||
233 | #define REG_UMI_BCH_ERR_LOC_WORD 0x00000018 | ||
234 | /* location within a page (512 byte) */ | ||
235 | #define REG_UMI_BCH_ERR_LOC_PAGE 0x00001FE0 | ||
236 | #define REG_UMI_BCH_ERR_LOC_ADDR(index) (__REG32(HW_UMI_BASE + 0x64 + (index / 2)*4) >> ((index % 2) * 16)) | ||
237 | #endif | ||
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index 62b98bffc158..07de8db14581 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
@@ -339,6 +339,15 @@ static struct davinci_mmc_config da850_mmc_config = { | |||
339 | .version = MMC_CTLR_VERSION_2, | 339 | .version = MMC_CTLR_VERSION_2, |
340 | }; | 340 | }; |
341 | 341 | ||
342 | static void da850_panel_power_ctrl(int val) | ||
343 | { | ||
344 | /* lcd backlight */ | ||
345 | gpio_set_value(DA850_LCD_BL_PIN, val); | ||
346 | |||
347 | /* lcd power */ | ||
348 | gpio_set_value(DA850_LCD_PWR_PIN, val); | ||
349 | } | ||
350 | |||
342 | static int da850_lcd_hw_init(void) | 351 | static int da850_lcd_hw_init(void) |
343 | { | 352 | { |
344 | int status; | 353 | int status; |
@@ -356,17 +365,11 @@ static int da850_lcd_hw_init(void) | |||
356 | gpio_direction_output(DA850_LCD_BL_PIN, 0); | 365 | gpio_direction_output(DA850_LCD_BL_PIN, 0); |
357 | gpio_direction_output(DA850_LCD_PWR_PIN, 0); | 366 | gpio_direction_output(DA850_LCD_PWR_PIN, 0); |
358 | 367 | ||
359 | /* disable lcd backlight */ | 368 | /* Switch off panel power and backlight */ |
360 | gpio_set_value(DA850_LCD_BL_PIN, 0); | 369 | da850_panel_power_ctrl(0); |
361 | |||
362 | /* disable lcd power */ | ||
363 | gpio_set_value(DA850_LCD_PWR_PIN, 0); | ||
364 | |||
365 | /* enable lcd power */ | ||
366 | gpio_set_value(DA850_LCD_PWR_PIN, 1); | ||
367 | 370 | ||
368 | /* enable lcd backlight */ | 371 | /* Switch on panel power and backlight */ |
369 | gpio_set_value(DA850_LCD_BL_PIN, 1); | 372 | da850_panel_power_ctrl(1); |
370 | 373 | ||
371 | return 0; | 374 | return 0; |
372 | } | 375 | } |
@@ -674,6 +677,7 @@ static __init void da850_evm_init(void) | |||
674 | pr_warning("da850_evm_init: lcd initialization failed: %d\n", | 677 | pr_warning("da850_evm_init: lcd initialization failed: %d\n", |
675 | ret); | 678 | ret); |
676 | 679 | ||
680 | sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl, | ||
677 | ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata); | 681 | ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata); |
678 | if (ret) | 682 | if (ret) |
679 | pr_warning("da850_evm_init: lcdc registration failed: %d\n", | 683 | pr_warning("da850_evm_init: lcdc registration failed: %d\n", |
diff --git a/arch/arm/mach-davinci/include/mach/nand.h b/arch/arm/mach-davinci/include/mach/nand.h index b520c4b5678a..b2ad8090bd10 100644 --- a/arch/arm/mach-davinci/include/mach/nand.h +++ b/arch/arm/mach-davinci/include/mach/nand.h | |||
@@ -79,6 +79,10 @@ struct davinci_nand_pdata { /* platform_data */ | |||
79 | 79 | ||
80 | /* e.g. NAND_BUSWIDTH_16 or NAND_USE_FLASH_BBT */ | 80 | /* e.g. NAND_BUSWIDTH_16 or NAND_USE_FLASH_BBT */ |
81 | unsigned options; | 81 | unsigned options; |
82 | |||
83 | /* Main and mirror bbt descriptor overrides */ | ||
84 | struct nand_bbt_descr *bbt_td; | ||
85 | struct nand_bbt_descr *bbt_md; | ||
82 | }; | 86 | }; |
83 | 87 | ||
84 | #endif /* __ARCH_ARM_DAVINCI_NAND_H */ | 88 | #endif /* __ARCH_ARM_DAVINCI_NAND_H */ |
diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h b/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h index 83f31cd0a274..62d17421e48c 100644 --- a/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h +++ b/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h | |||
@@ -5,9 +5,6 @@ | |||
5 | #ifndef __ASM_ARCH_EP93XX_KEYPAD_H | 5 | #ifndef __ASM_ARCH_EP93XX_KEYPAD_H |
6 | #define __ASM_ARCH_EP93XX_KEYPAD_H | 6 | #define __ASM_ARCH_EP93XX_KEYPAD_H |
7 | 7 | ||
8 | #define MAX_MATRIX_KEY_ROWS (8) | ||
9 | #define MAX_MATRIX_KEY_COLS (8) | ||
10 | |||
11 | /* flags for the ep93xx_keypad driver */ | 8 | /* flags for the ep93xx_keypad driver */ |
12 | #define EP93XX_KEYPAD_DISABLE_3_KEY (1<<0) /* disable 3-key reset */ | 9 | #define EP93XX_KEYPAD_DISABLE_3_KEY (1<<0) /* disable 3-key reset */ |
13 | #define EP93XX_KEYPAD_DIAG_MODE (1<<1) /* diagnostic mode */ | 10 | #define EP93XX_KEYPAD_DIAG_MODE (1<<1) /* diagnostic mode */ |
@@ -18,8 +15,6 @@ | |||
18 | 15 | ||
19 | /** | 16 | /** |
20 | * struct ep93xx_keypad_platform_data - platform specific device structure | 17 | * struct ep93xx_keypad_platform_data - platform specific device structure |
21 | * @matrix_key_rows: number of rows in the keypad matrix | ||
22 | * @matrix_key_cols: number of columns in the keypad matrix | ||
23 | * @matrix_key_map: array of keycodes defining the keypad matrix | 18 | * @matrix_key_map: array of keycodes defining the keypad matrix |
24 | * @matrix_key_map_size: ARRAY_SIZE(matrix_key_map) | 19 | * @matrix_key_map_size: ARRAY_SIZE(matrix_key_map) |
25 | * @debounce: debounce start count; terminal count is 0xff | 20 | * @debounce: debounce start count; terminal count is 0xff |
@@ -27,8 +22,6 @@ | |||
27 | * @flags: see above | 22 | * @flags: see above |
28 | */ | 23 | */ |
29 | struct ep93xx_keypad_platform_data { | 24 | struct ep93xx_keypad_platform_data { |
30 | unsigned int matrix_key_rows; | ||
31 | unsigned int matrix_key_cols; | ||
32 | unsigned int *matrix_key_map; | 25 | unsigned int *matrix_key_map; |
33 | int matrix_key_map_size; | 26 | int matrix_key_map_size; |
34 | unsigned int debounce; | 27 | unsigned int debounce; |
@@ -36,7 +29,7 @@ struct ep93xx_keypad_platform_data { | |||
36 | unsigned int flags; | 29 | unsigned int flags; |
37 | }; | 30 | }; |
38 | 31 | ||
39 | /* macro for creating the matrix_key_map table */ | 32 | #define EP93XX_MATRIX_ROWS (8) |
40 | #define KEY(row, col, val) (((row) << 28) | ((col) << 24) | (val)) | 33 | #define EP93XX_MATRIX_COLS (8) |
41 | 34 | ||
42 | #endif /* __ASM_ARCH_EP93XX_KEYPAD_H */ | 35 | #endif /* __ASM_ARCH_EP93XX_KEYPAD_H */ |
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c index 116394484e71..9438bf6613a3 100644 --- a/arch/arm/mach-nomadik/board-nhk8815.c +++ b/arch/arm/mach-nomadik/board-nhk8815.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/mtd/mtd.h> | 19 | #include <linux/mtd/mtd.h> |
20 | #include <linux/mtd/nand.h> | 20 | #include <linux/mtd/nand.h> |
21 | #include <linux/mtd/onenand.h> | ||
21 | #include <linux/mtd/partitions.h> | 22 | #include <linux/mtd/partitions.h> |
22 | #include <linux/io.h> | 23 | #include <linux/io.h> |
23 | #include <asm/sizes.h> | 24 | #include <asm/sizes.h> |
@@ -149,7 +150,7 @@ static struct mtd_partition nhk8815_onenand_partitions[] = { | |||
149 | } | 150 | } |
150 | }; | 151 | }; |
151 | 152 | ||
152 | static struct flash_platform_data nhk8815_onenand_data = { | 153 | static struct onenand_platform_data nhk8815_onenand_data = { |
153 | .parts = nhk8815_onenand_partitions, | 154 | .parts = nhk8815_onenand_partitions, |
154 | .nr_parts = ARRAY_SIZE(nhk8815_onenand_partitions), | 155 | .nr_parts = ARRAY_SIZE(nhk8815_onenand_partitions), |
155 | }; | 156 | }; |
@@ -163,7 +164,7 @@ static struct resource nhk8815_onenand_resource[] = { | |||
163 | }; | 164 | }; |
164 | 165 | ||
165 | static struct platform_device nhk8815_onenand_device = { | 166 | static struct platform_device nhk8815_onenand_device = { |
166 | .name = "onenand", | 167 | .name = "onenand-flash", |
167 | .id = -1, | 168 | .id = -1, |
168 | .dev = { | 169 | .dev = { |
169 | .platform_data = &nhk8815_onenand_data, | 170 | .platform_data = &nhk8815_onenand_data, |
@@ -174,10 +175,10 @@ static struct platform_device nhk8815_onenand_device = { | |||
174 | 175 | ||
175 | static void __init nhk8815_onenand_init(void) | 176 | static void __init nhk8815_onenand_init(void) |
176 | { | 177 | { |
177 | #ifdef CONFIG_ONENAND | 178 | #ifdef CONFIG_MTD_ONENAND |
178 | /* Set up SMCS0 for OneNand */ | 179 | /* Set up SMCS0 for OneNand */ |
179 | writel(0x000030db, FSMC_BCR0); | 180 | writel(0x000030db, FSMC_BCR(0)); |
180 | writel(0x02100551, FSMC_BTR0); | 181 | writel(0x02100551, FSMC_BTR(0)); |
181 | #endif | 182 | #endif |
182 | } | 183 | } |
183 | 184 | ||
diff --git a/arch/arm/mach-ns9xxx/irq.c b/arch/arm/mach-ns9xxx/irq.c index feb0e54a91de..038f24d47023 100644 --- a/arch/arm/mach-ns9xxx/irq.c +++ b/arch/arm/mach-ns9xxx/irq.c | |||
@@ -66,7 +66,7 @@ static void handle_prio_irq(unsigned int irq, struct irq_desc *desc) | |||
66 | struct irqaction *action; | 66 | struct irqaction *action; |
67 | irqreturn_t action_ret; | 67 | irqreturn_t action_ret; |
68 | 68 | ||
69 | spin_lock(&desc->lock); | 69 | raw_spin_lock(&desc->lock); |
70 | 70 | ||
71 | BUG_ON(desc->status & IRQ_INPROGRESS); | 71 | BUG_ON(desc->status & IRQ_INPROGRESS); |
72 | 72 | ||
@@ -78,7 +78,7 @@ static void handle_prio_irq(unsigned int irq, struct irq_desc *desc) | |||
78 | goto out_mask; | 78 | goto out_mask; |
79 | 79 | ||
80 | desc->status |= IRQ_INPROGRESS; | 80 | desc->status |= IRQ_INPROGRESS; |
81 | spin_unlock(&desc->lock); | 81 | raw_spin_unlock(&desc->lock); |
82 | 82 | ||
83 | action_ret = handle_IRQ_event(irq, action); | 83 | action_ret = handle_IRQ_event(irq, action); |
84 | 84 | ||
@@ -87,7 +87,7 @@ static void handle_prio_irq(unsigned int irq, struct irq_desc *desc) | |||
87 | * Maybe this function should go to kernel/irq/chip.c? */ | 87 | * Maybe this function should go to kernel/irq/chip.c? */ |
88 | note_interrupt(irq, desc, action_ret); | 88 | note_interrupt(irq, desc, action_ret); |
89 | 89 | ||
90 | spin_lock(&desc->lock); | 90 | raw_spin_lock(&desc->lock); |
91 | desc->status &= ~IRQ_INPROGRESS; | 91 | desc->status &= ~IRQ_INPROGRESS; |
92 | 92 | ||
93 | if (desc->status & IRQ_DISABLED) | 93 | if (desc->status & IRQ_DISABLED) |
@@ -97,7 +97,7 @@ out_mask: | |||
97 | /* ack unconditionally to unmask lower prio irqs */ | 97 | /* ack unconditionally to unmask lower prio irqs */ |
98 | desc->chip->ack(irq); | 98 | desc->chip->ack(irq); |
99 | 99 | ||
100 | spin_unlock(&desc->lock); | 100 | raw_spin_unlock(&desc->lock); |
101 | } | 101 | } |
102 | #define handle_irq handle_prio_irq | 102 | #define handle_irq handle_prio_irq |
103 | #endif | 103 | #endif |
diff --git a/arch/arm/mach-s3c2442/mach-gta02.c b/arch/arm/mach-s3c2442/mach-gta02.c index f76d6ff4aeb9..0b4a3a03071f 100644 --- a/arch/arm/mach-s3c2442/mach-gta02.c +++ b/arch/arm/mach-s3c2442/mach-gta02.c | |||
@@ -268,6 +268,9 @@ struct pcf50633_platform_data gta02_pcf_pdata = { | |||
268 | 268 | ||
269 | .batteries = gta02_batteries, | 269 | .batteries = gta02_batteries, |
270 | .num_batteries = ARRAY_SIZE(gta02_batteries), | 270 | .num_batteries = ARRAY_SIZE(gta02_batteries), |
271 | |||
272 | .charger_reference_current_ma = 1000, | ||
273 | |||
271 | .reg_init_data = { | 274 | .reg_init_data = { |
272 | [PCF50633_REGULATOR_AUTO] = { | 275 | [PCF50633_REGULATOR_AUTO] = { |
273 | .constraints = { | 276 | .constraints = { |
diff --git a/arch/arm/mach-u300/include/mach/coh901318.h b/arch/arm/mach-u300/include/mach/coh901318.h new file mode 100644 index 000000000000..f4cfee9c7d28 --- /dev/null +++ b/arch/arm/mach-u300/include/mach/coh901318.h | |||
@@ -0,0 +1,281 @@ | |||
1 | /* | ||
2 | * | ||
3 | * include/linux/coh901318.h | ||
4 | * | ||
5 | * | ||
6 | * Copyright (C) 2007-2009 ST-Ericsson | ||
7 | * License terms: GNU General Public License (GPL) version 2 | ||
8 | * DMA driver for COH 901 318 | ||
9 | * Author: Per Friden <per.friden@stericsson.com> | ||
10 | */ | ||
11 | |||
12 | #ifndef COH901318_H | ||
13 | #define COH901318_H | ||
14 | |||
15 | #include <linux/device.h> | ||
16 | #include <linux/dmaengine.h> | ||
17 | |||
18 | #define MAX_DMA_PACKET_SIZE_SHIFT 11 | ||
19 | #define MAX_DMA_PACKET_SIZE (1 << MAX_DMA_PACKET_SIZE_SHIFT) | ||
20 | |||
21 | /** | ||
22 | * struct coh901318_lli - linked list item for DMAC | ||
23 | * @control: control settings for DMAC | ||
24 | * @src_addr: transfer source address | ||
25 | * @dst_addr: transfer destination address | ||
26 | * @link_addr: physical address to next lli | ||
27 | * @virt_link_addr: virtual addres of next lli (only used by pool_free) | ||
28 | * @phy_this: physical address of current lli (only used by pool_free) | ||
29 | */ | ||
30 | struct coh901318_lli { | ||
31 | u32 control; | ||
32 | dma_addr_t src_addr; | ||
33 | dma_addr_t dst_addr; | ||
34 | dma_addr_t link_addr; | ||
35 | |||
36 | void *virt_link_addr; | ||
37 | dma_addr_t phy_this; | ||
38 | }; | ||
39 | /** | ||
40 | * struct coh901318_params - parameters for DMAC configuration | ||
41 | * @config: DMA config register | ||
42 | * @ctrl_lli_last: DMA control register for the last lli in the list | ||
43 | * @ctrl_lli: DMA control register for an lli | ||
44 | * @ctrl_lli_chained: DMA control register for a chained lli | ||
45 | */ | ||
46 | struct coh901318_params { | ||
47 | u32 config; | ||
48 | u32 ctrl_lli_last; | ||
49 | u32 ctrl_lli; | ||
50 | u32 ctrl_lli_chained; | ||
51 | }; | ||
52 | /** | ||
53 | * struct coh_dma_channel - dma channel base | ||
54 | * @name: ascii name of dma channel | ||
55 | * @number: channel id number | ||
56 | * @desc_nbr_max: number of preallocated descriptortors | ||
57 | * @priority_high: prio of channel, 0 low otherwise high. | ||
58 | * @param: configuration parameters | ||
59 | * @dev_addr: physical address of periphal connected to channel | ||
60 | */ | ||
61 | struct coh_dma_channel { | ||
62 | const char name[32]; | ||
63 | const int number; | ||
64 | const int desc_nbr_max; | ||
65 | const int priority_high; | ||
66 | const struct coh901318_params param; | ||
67 | const dma_addr_t dev_addr; | ||
68 | }; | ||
69 | |||
70 | /** | ||
71 | * dma_access_memory_state_t - register dma for memory access | ||
72 | * | ||
73 | * @dev: The dma device | ||
74 | * @active: 1 means dma intends to access memory | ||
75 | * 0 means dma wont access memory | ||
76 | */ | ||
77 | typedef void (*dma_access_memory_state_t)(struct device *dev, | ||
78 | bool active); | ||
79 | |||
80 | /** | ||
81 | * struct powersave - DMA power save structure | ||
82 | * @lock: lock protecting data in this struct | ||
83 | * @started_channels: bit mask indicating active dma channels | ||
84 | */ | ||
85 | struct powersave { | ||
86 | spinlock_t lock; | ||
87 | u64 started_channels; | ||
88 | }; | ||
89 | /** | ||
90 | * struct coh901318_platform - platform arch structure | ||
91 | * @chans_slave: specifying dma slave channels | ||
92 | * @chans_memcpy: specifying dma memcpy channels | ||
93 | * @access_memory_state: requesting DMA memeory access (on / off) | ||
94 | * @chan_conf: dma channel configurations | ||
95 | * @max_channels: max number of dma chanenls | ||
96 | */ | ||
97 | struct coh901318_platform { | ||
98 | const int *chans_slave; | ||
99 | const int *chans_memcpy; | ||
100 | const dma_access_memory_state_t access_memory_state; | ||
101 | const struct coh_dma_channel *chan_conf; | ||
102 | const int max_channels; | ||
103 | }; | ||
104 | |||
105 | /** | ||
106 | * coh901318_get_bytes_left() - Get number of bytes left on a current transfer | ||
107 | * @chan: dma channel handle | ||
108 | * return number of bytes left, or negative on error | ||
109 | */ | ||
110 | u32 coh901318_get_bytes_left(struct dma_chan *chan); | ||
111 | |||
112 | /** | ||
113 | * coh901318_stop() - Stops dma transfer | ||
114 | * @chan: dma channel handle | ||
115 | * return 0 on success otherwise negative value | ||
116 | */ | ||
117 | void coh901318_stop(struct dma_chan *chan); | ||
118 | |||
119 | /** | ||
120 | * coh901318_continue() - Resumes a stopped dma transfer | ||
121 | * @chan: dma channel handle | ||
122 | * return 0 on success otherwise negative value | ||
123 | */ | ||
124 | void coh901318_continue(struct dma_chan *chan); | ||
125 | |||
126 | /** | ||
127 | * coh901318_filter_id() - DMA channel filter function | ||
128 | * @chan: dma channel handle | ||
129 | * @chan_id: id of dma channel to be filter out | ||
130 | * | ||
131 | * In dma_request_channel() it specifies what channel id to be requested | ||
132 | */ | ||
133 | bool coh901318_filter_id(struct dma_chan *chan, void *chan_id); | ||
134 | |||
135 | /* | ||
136 | * DMA Controller - this access the static mappings of the coh901318 dma. | ||
137 | * | ||
138 | */ | ||
139 | |||
140 | #define COH901318_MOD32_MASK (0x1F) | ||
141 | #define COH901318_WORD_MASK (0xFFFFFFFF) | ||
142 | /* INT_STATUS - Interrupt Status Registers 32bit (R/-) */ | ||
143 | #define COH901318_INT_STATUS1 (0x0000) | ||
144 | #define COH901318_INT_STATUS2 (0x0004) | ||
145 | /* TC_INT_STATUS - Terminal Count Interrupt Status Registers 32bit (R/-) */ | ||
146 | #define COH901318_TC_INT_STATUS1 (0x0008) | ||
147 | #define COH901318_TC_INT_STATUS2 (0x000C) | ||
148 | /* TC_INT_CLEAR - Terminal Count Interrupt Clear Registers 32bit (-/W) */ | ||
149 | #define COH901318_TC_INT_CLEAR1 (0x0010) | ||
150 | #define COH901318_TC_INT_CLEAR2 (0x0014) | ||
151 | /* RAW_TC_INT_STATUS - Raw Term Count Interrupt Status Registers 32bit (R/-) */ | ||
152 | #define COH901318_RAW_TC_INT_STATUS1 (0x0018) | ||
153 | #define COH901318_RAW_TC_INT_STATUS2 (0x001C) | ||
154 | /* BE_INT_STATUS - Bus Error Interrupt Status Registers 32bit (R/-) */ | ||
155 | #define COH901318_BE_INT_STATUS1 (0x0020) | ||
156 | #define COH901318_BE_INT_STATUS2 (0x0024) | ||
157 | /* BE_INT_CLEAR - Bus Error Interrupt Clear Registers 32bit (-/W) */ | ||
158 | #define COH901318_BE_INT_CLEAR1 (0x0028) | ||
159 | #define COH901318_BE_INT_CLEAR2 (0x002C) | ||
160 | /* RAW_BE_INT_STATUS - Raw Term Count Interrupt Status Registers 32bit (R/-) */ | ||
161 | #define COH901318_RAW_BE_INT_STATUS1 (0x0030) | ||
162 | #define COH901318_RAW_BE_INT_STATUS2 (0x0034) | ||
163 | |||
164 | /* | ||
165 | * CX_CFG - Channel Configuration Registers 32bit (R/W) | ||
166 | */ | ||
167 | #define COH901318_CX_CFG (0x0100) | ||
168 | #define COH901318_CX_CFG_SPACING (0x04) | ||
169 | /* Channel enable activates tha dma job */ | ||
170 | #define COH901318_CX_CFG_CH_ENABLE (0x00000001) | ||
171 | #define COH901318_CX_CFG_CH_DISABLE (0x00000000) | ||
172 | /* Request Mode */ | ||
173 | #define COH901318_CX_CFG_RM_MASK (0x00000006) | ||
174 | #define COH901318_CX_CFG_RM_MEMORY_TO_MEMORY (0x0 << 1) | ||
175 | #define COH901318_CX_CFG_RM_PRIMARY_TO_MEMORY (0x1 << 1) | ||
176 | #define COH901318_CX_CFG_RM_MEMORY_TO_PRIMARY (0x1 << 1) | ||
177 | #define COH901318_CX_CFG_RM_PRIMARY_TO_SECONDARY (0x3 << 1) | ||
178 | #define COH901318_CX_CFG_RM_SECONDARY_TO_PRIMARY (0x3 << 1) | ||
179 | /* Linked channel request field. RM must == 11 */ | ||
180 | #define COH901318_CX_CFG_LCRF_SHIFT 3 | ||
181 | #define COH901318_CX_CFG_LCRF_MASK (0x000001F8) | ||
182 | #define COH901318_CX_CFG_LCR_DISABLE (0x00000000) | ||
183 | /* Terminal Counter Interrupt Request Mask */ | ||
184 | #define COH901318_CX_CFG_TC_IRQ_ENABLE (0x00000200) | ||
185 | #define COH901318_CX_CFG_TC_IRQ_DISABLE (0x00000000) | ||
186 | /* Bus Error interrupt Mask */ | ||
187 | #define COH901318_CX_CFG_BE_IRQ_ENABLE (0x00000400) | ||
188 | #define COH901318_CX_CFG_BE_IRQ_DISABLE (0x00000000) | ||
189 | |||
190 | /* | ||
191 | * CX_STAT - Channel Status Registers 32bit (R/-) | ||
192 | */ | ||
193 | #define COH901318_CX_STAT (0x0200) | ||
194 | #define COH901318_CX_STAT_SPACING (0x04) | ||
195 | #define COH901318_CX_STAT_RBE_IRQ_IND (0x00000008) | ||
196 | #define COH901318_CX_STAT_RTC_IRQ_IND (0x00000004) | ||
197 | #define COH901318_CX_STAT_ACTIVE (0x00000002) | ||
198 | #define COH901318_CX_STAT_ENABLED (0x00000001) | ||
199 | |||
200 | /* | ||
201 | * CX_CTRL - Channel Control Registers 32bit (R/W) | ||
202 | */ | ||
203 | #define COH901318_CX_CTRL (0x0400) | ||
204 | #define COH901318_CX_CTRL_SPACING (0x10) | ||
205 | /* Transfer Count Enable */ | ||
206 | #define COH901318_CX_CTRL_TC_ENABLE (0x00001000) | ||
207 | #define COH901318_CX_CTRL_TC_DISABLE (0x00000000) | ||
208 | /* Transfer Count Value 0 - 4095 */ | ||
209 | #define COH901318_CX_CTRL_TC_VALUE_MASK (0x00000FFF) | ||
210 | /* Burst count */ | ||
211 | #define COH901318_CX_CTRL_BURST_COUNT_MASK (0x0000E000) | ||
212 | #define COH901318_CX_CTRL_BURST_COUNT_64_BYTES (0x7 << 13) | ||
213 | #define COH901318_CX_CTRL_BURST_COUNT_48_BYTES (0x6 << 13) | ||
214 | #define COH901318_CX_CTRL_BURST_COUNT_32_BYTES (0x5 << 13) | ||
215 | #define COH901318_CX_CTRL_BURST_COUNT_16_BYTES (0x4 << 13) | ||
216 | #define COH901318_CX_CTRL_BURST_COUNT_8_BYTES (0x3 << 13) | ||
217 | #define COH901318_CX_CTRL_BURST_COUNT_4_BYTES (0x2 << 13) | ||
218 | #define COH901318_CX_CTRL_BURST_COUNT_2_BYTES (0x1 << 13) | ||
219 | #define COH901318_CX_CTRL_BURST_COUNT_1_BYTE (0x0 << 13) | ||
220 | /* Source bus size */ | ||
221 | #define COH901318_CX_CTRL_SRC_BUS_SIZE_MASK (0x00030000) | ||
222 | #define COH901318_CX_CTRL_SRC_BUS_SIZE_32_BITS (0x2 << 16) | ||
223 | #define COH901318_CX_CTRL_SRC_BUS_SIZE_16_BITS (0x1 << 16) | ||
224 | #define COH901318_CX_CTRL_SRC_BUS_SIZE_8_BITS (0x0 << 16) | ||
225 | /* Source address increment */ | ||
226 | #define COH901318_CX_CTRL_SRC_ADDR_INC_ENABLE (0x00040000) | ||
227 | #define COH901318_CX_CTRL_SRC_ADDR_INC_DISABLE (0x00000000) | ||
228 | /* Destination Bus Size */ | ||
229 | #define COH901318_CX_CTRL_DST_BUS_SIZE_MASK (0x00180000) | ||
230 | #define COH901318_CX_CTRL_DST_BUS_SIZE_32_BITS (0x2 << 19) | ||
231 | #define COH901318_CX_CTRL_DST_BUS_SIZE_16_BITS (0x1 << 19) | ||
232 | #define COH901318_CX_CTRL_DST_BUS_SIZE_8_BITS (0x0 << 19) | ||
233 | /* Destination address increment */ | ||
234 | #define COH901318_CX_CTRL_DST_ADDR_INC_ENABLE (0x00200000) | ||
235 | #define COH901318_CX_CTRL_DST_ADDR_INC_DISABLE (0x00000000) | ||
236 | /* Master Mode (Master2 is only connected to MSL) */ | ||
237 | #define COH901318_CX_CTRL_MASTER_MODE_MASK (0x00C00000) | ||
238 | #define COH901318_CX_CTRL_MASTER_MODE_M2R_M1W (0x3 << 22) | ||
239 | #define COH901318_CX_CTRL_MASTER_MODE_M1R_M2W (0x2 << 22) | ||
240 | #define COH901318_CX_CTRL_MASTER_MODE_M2RW (0x1 << 22) | ||
241 | #define COH901318_CX_CTRL_MASTER_MODE_M1RW (0x0 << 22) | ||
242 | /* Terminal Count flag to PER enable */ | ||
243 | #define COH901318_CX_CTRL_TCP_ENABLE (0x01000000) | ||
244 | #define COH901318_CX_CTRL_TCP_DISABLE (0x00000000) | ||
245 | /* Terminal Count flags to CPU enable */ | ||
246 | #define COH901318_CX_CTRL_TC_IRQ_ENABLE (0x02000000) | ||
247 | #define COH901318_CX_CTRL_TC_IRQ_DISABLE (0x00000000) | ||
248 | /* Hand shake to peripheral */ | ||
249 | #define COH901318_CX_CTRL_HSP_ENABLE (0x04000000) | ||
250 | #define COH901318_CX_CTRL_HSP_DISABLE (0x00000000) | ||
251 | #define COH901318_CX_CTRL_HSS_ENABLE (0x08000000) | ||
252 | #define COH901318_CX_CTRL_HSS_DISABLE (0x00000000) | ||
253 | /* DMA mode */ | ||
254 | #define COH901318_CX_CTRL_DDMA_MASK (0x30000000) | ||
255 | #define COH901318_CX_CTRL_DDMA_LEGACY (0x0 << 28) | ||
256 | #define COH901318_CX_CTRL_DDMA_DEMAND_DMA1 (0x1 << 28) | ||
257 | #define COH901318_CX_CTRL_DDMA_DEMAND_DMA2 (0x2 << 28) | ||
258 | /* Primary Request Data Destination */ | ||
259 | #define COH901318_CX_CTRL_PRDD_MASK (0x40000000) | ||
260 | #define COH901318_CX_CTRL_PRDD_DEST (0x1 << 30) | ||
261 | #define COH901318_CX_CTRL_PRDD_SOURCE (0x0 << 30) | ||
262 | |||
263 | /* | ||
264 | * CX_SRC_ADDR - Channel Source Address Registers 32bit (R/W) | ||
265 | */ | ||
266 | #define COH901318_CX_SRC_ADDR (0x0404) | ||
267 | #define COH901318_CX_SRC_ADDR_SPACING (0x10) | ||
268 | |||
269 | /* | ||
270 | * CX_DST_ADDR - Channel Destination Address Registers 32bit R/W | ||
271 | */ | ||
272 | #define COH901318_CX_DST_ADDR (0x0408) | ||
273 | #define COH901318_CX_DST_ADDR_SPACING (0x10) | ||
274 | |||
275 | /* | ||
276 | * CX_LNK_ADDR - Channel Link Address Registers 32bit (R/W) | ||
277 | */ | ||
278 | #define COH901318_CX_LNK_ADDR (0x040C) | ||
279 | #define COH901318_CX_LNK_ADDR_SPACING (0x10) | ||
280 | #define COH901318_CX_LNK_LINK_IMMEDIATE (0x00000001) | ||
281 | #endif /* COH901318_H */ | ||
diff --git a/arch/arm/plat-mxc/include/mach/mxc_nand.h b/arch/arm/plat-mxc/include/mach/mxc_nand.h index 2b972df22d12..5d2d21d414e0 100644 --- a/arch/arm/plat-mxc/include/mach/mxc_nand.h +++ b/arch/arm/plat-mxc/include/mach/mxc_nand.h | |||
@@ -22,6 +22,7 @@ | |||
22 | 22 | ||
23 | struct mxc_nand_platform_data { | 23 | struct mxc_nand_platform_data { |
24 | int width; /* data bus width in bytes */ | 24 | int width; /* data bus width in bytes */ |
25 | int hw_ecc; /* 0 if supress hardware ECC */ | 25 | int hw_ecc:1; /* 0 if supress hardware ECC */ |
26 | int flash_bbt:1; /* set to 1 to use a flash based bbt */ | ||
26 | }; | 27 | }; |
27 | #endif /* __ASM_ARCH_NAND_H */ | 28 | #endif /* __ASM_ARCH_NAND_H */ |
diff --git a/arch/arm/plat-omap/debug-leds.c b/arch/arm/plat-omap/debug-leds.c index 6c768b71ad64..53fcef7c5201 100644 --- a/arch/arm/plat-omap/debug-leds.c +++ b/arch/arm/plat-omap/debug-leds.c | |||
@@ -293,7 +293,7 @@ static int fpga_resume_noirq(struct device *dev) | |||
293 | return 0; | 293 | return 0; |
294 | } | 294 | } |
295 | 295 | ||
296 | static struct dev_pm_ops fpga_dev_pm_ops = { | 296 | static const struct dev_pm_ops fpga_dev_pm_ops = { |
297 | .suspend_noirq = fpga_suspend_noirq, | 297 | .suspend_noirq = fpga_suspend_noirq, |
298 | .resume_noirq = fpga_resume_noirq, | 298 | .resume_noirq = fpga_resume_noirq, |
299 | }; | 299 | }; |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 055160e0620e..04846811d0aa 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -1431,7 +1431,7 @@ static int omap_mpuio_resume_noirq(struct device *dev) | |||
1431 | return 0; | 1431 | return 0; |
1432 | } | 1432 | } |
1433 | 1433 | ||
1434 | static struct dev_pm_ops omap_mpuio_dev_pm_ops = { | 1434 | static const struct dev_pm_ops omap_mpuio_dev_pm_ops = { |
1435 | .suspend_noirq = omap_mpuio_suspend_noirq, | 1435 | .suspend_noirq = omap_mpuio_suspend_noirq, |
1436 | .resume_noirq = omap_mpuio_resume_noirq, | 1436 | .resume_noirq = omap_mpuio_resume_noirq, |
1437 | }; | 1437 | }; |
diff --git a/arch/arm/plat-s3c/include/plat/nand.h b/arch/arm/plat-s3c/include/plat/nand.h index 065985978413..226147b7e026 100644 --- a/arch/arm/plat-s3c/include/plat/nand.h +++ b/arch/arm/plat-s3c/include/plat/nand.h | |||
@@ -17,6 +17,7 @@ | |||
17 | * Setting this flag will allow the kernel to | 17 | * Setting this flag will allow the kernel to |
18 | * look for it at boot time and also skip the NAND | 18 | * look for it at boot time and also skip the NAND |
19 | * scan. | 19 | * scan. |
20 | * @options: Default value to set into 'struct nand_chip' options. | ||
20 | * @nr_chips: Number of chips in this set | 21 | * @nr_chips: Number of chips in this set |
21 | * @nr_partitions: Number of partitions pointed to by @partitions | 22 | * @nr_partitions: Number of partitions pointed to by @partitions |
22 | * @name: Name of set (optional) | 23 | * @name: Name of set (optional) |
@@ -31,6 +32,7 @@ struct s3c2410_nand_set { | |||
31 | unsigned int disable_ecc:1; | 32 | unsigned int disable_ecc:1; |
32 | unsigned int flash_bbt:1; | 33 | unsigned int flash_bbt:1; |
33 | 34 | ||
35 | unsigned int options; | ||
34 | int nr_chips; | 36 | int nr_chips; |
35 | int nr_partitions; | 37 | int nr_partitions; |
36 | char *name; | 38 | char *name; |