diff options
Diffstat (limited to 'arch/arm')
127 files changed, 1033 insertions, 325 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 2aef8a5a3661..5cff165b7eb0 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -1277,7 +1277,7 @@ config SMP | |||
1277 | config SMP_ON_UP | 1277 | config SMP_ON_UP |
1278 | bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)" | 1278 | bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)" |
1279 | depends on EXPERIMENTAL | 1279 | depends on EXPERIMENTAL |
1280 | depends on SMP && !XIP | 1280 | depends on SMP && !XIP_KERNEL |
1281 | default y | 1281 | default y |
1282 | help | 1282 | help |
1283 | SMP kernels contain instructions which fail on non-SMP processors. | 1283 | SMP kernels contain instructions which fail on non-SMP processors. |
diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c index 978e83217311..fcddd48fe9da 100644 --- a/arch/arm/common/it8152.c +++ b/arch/arm/common/it8152.c | |||
@@ -240,7 +240,7 @@ static struct resource it8152_mem = { | |||
240 | 240 | ||
241 | /* | 241 | /* |
242 | * The following functions are needed for DMA bouncing. | 242 | * The following functions are needed for DMA bouncing. |
243 | * ITE8152 chip can addrees up to 64MByte, so all the devices | 243 | * ITE8152 chip can address up to 64MByte, so all the devices |
244 | * connected to ITE8152 (PCI and USB) should have limited DMA window | 244 | * connected to ITE8152 (PCI and USB) should have limited DMA window |
245 | */ | 245 | */ |
246 | 246 | ||
diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c index 9dce36e372ff..ae5fe7292e0d 100644 --- a/arch/arm/common/vic.c +++ b/arch/arm/common/vic.c | |||
@@ -70,7 +70,7 @@ static inline struct vic_device *to_vic(struct sys_device *sys) | |||
70 | * vic_init2 - common initialisation code | 70 | * vic_init2 - common initialisation code |
71 | * @base: Base of the VIC. | 71 | * @base: Base of the VIC. |
72 | * | 72 | * |
73 | * Common initialisation code for registeration | 73 | * Common initialisation code for registration |
74 | * and resume. | 74 | * and resume. |
75 | */ | 75 | */ |
76 | static void vic_init2(void __iomem *base) | 76 | static void vic_init2(void __iomem *base) |
diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h index 338ff19ae447..7b1bb2bbaf88 100644 --- a/arch/arm/include/asm/bitops.h +++ b/arch/arm/include/asm/bitops.h | |||
@@ -285,7 +285,7 @@ static inline int fls(int x) | |||
285 | if (__builtin_constant_p(x)) | 285 | if (__builtin_constant_p(x)) |
286 | return constant_fls(x); | 286 | return constant_fls(x); |
287 | 287 | ||
288 | asm("clz\t%0, %1" : "=r" (ret) : "r" (x) : "cc"); | 288 | asm("clz\t%0, %1" : "=r" (ret) : "r" (x)); |
289 | ret = 32 - ret; | 289 | ret = 32 - ret; |
290 | return ret; | 290 | return ret; |
291 | } | 291 | } |
diff --git a/arch/arm/include/asm/sched_clock.h b/arch/arm/include/asm/sched_clock.h index a84628be1a7b..c8e6ddf3e860 100644 --- a/arch/arm/include/asm/sched_clock.h +++ b/arch/arm/include/asm/sched_clock.h | |||
@@ -115,4 +115,6 @@ static inline void init_fixed_sched_clock(struct clock_data *cd, | |||
115 | } | 115 | } |
116 | } | 116 | } |
117 | 117 | ||
118 | extern void sched_clock_postinit(void); | ||
119 | |||
118 | #endif | 120 | #endif |
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S index bbecaac1e013..8f57515bbdb0 100644 --- a/arch/arm/kernel/head-common.S +++ b/arch/arm/kernel/head-common.S | |||
@@ -60,6 +60,8 @@ str_a1: .asciz "\nError: unrecognized/unsupported machine ID (r1 = 0x" | |||
60 | str_a2: .asciz ").\n\nAvailable machine support:\n\nID (hex)\tNAME\n" | 60 | str_a2: .asciz ").\n\nAvailable machine support:\n\nID (hex)\tNAME\n" |
61 | str_a3: .asciz "\nPlease check your kernel config and/or bootloader.\n" | 61 | str_a3: .asciz "\nPlease check your kernel config and/or bootloader.\n" |
62 | .align | 62 | .align |
63 | #else | ||
64 | b __error | ||
63 | #endif | 65 | #endif |
64 | 66 | ||
65 | /* | 67 | /* |
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c index 0c1bb68ff4a8..2cfe8161b478 100644 --- a/arch/arm/kernel/module.c +++ b/arch/arm/kernel/module.c | |||
@@ -38,17 +38,9 @@ | |||
38 | #ifdef CONFIG_MMU | 38 | #ifdef CONFIG_MMU |
39 | void *module_alloc(unsigned long size) | 39 | void *module_alloc(unsigned long size) |
40 | { | 40 | { |
41 | struct vm_struct *area; | 41 | return __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END, |
42 | 42 | GFP_KERNEL, PAGE_KERNEL_EXEC, -1, | |
43 | size = PAGE_ALIGN(size); | 43 | __builtin_return_address(0)); |
44 | if (!size) | ||
45 | return NULL; | ||
46 | |||
47 | area = __get_vm_area(size, VM_ALLOC, MODULES_VADDR, MODULES_END); | ||
48 | if (!area) | ||
49 | return NULL; | ||
50 | |||
51 | return __vmalloc_area(area, GFP_KERNEL, PAGE_KERNEL_EXEC); | ||
52 | } | 44 | } |
53 | #else /* CONFIG_MMU */ | 45 | #else /* CONFIG_MMU */ |
54 | void *module_alloc(unsigned long size) | 46 | void *module_alloc(unsigned long size) |
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index e76fcaadce03..94bbedbed639 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -483,6 +483,7 @@ unsigned long arch_randomize_brk(struct mm_struct *mm) | |||
483 | return randomize_range(mm->brk, range_end, 0) ? : mm->brk; | 483 | return randomize_range(mm->brk, range_end, 0) ? : mm->brk; |
484 | } | 484 | } |
485 | 485 | ||
486 | #ifdef CONFIG_MMU | ||
486 | /* | 487 | /* |
487 | * The vectors page is always readable from user space for the | 488 | * The vectors page is always readable from user space for the |
488 | * atomic helpers and the signal restart code. Let's declare a mapping | 489 | * atomic helpers and the signal restart code. Let's declare a mapping |
@@ -503,3 +504,4 @@ const char *arch_vma_name(struct vm_area_struct *vma) | |||
503 | { | 504 | { |
504 | return (vma->vm_start == 0xffff0000) ? "[vectors]" : NULL; | 505 | return (vma->vm_start == 0xffff0000) ? "[vectors]" : NULL; |
505 | } | 506 | } |
507 | #endif | ||
diff --git a/arch/arm/kernel/sched_clock.c b/arch/arm/kernel/sched_clock.c index 2cdcc9287c74..9a46370fe9da 100644 --- a/arch/arm/kernel/sched_clock.c +++ b/arch/arm/kernel/sched_clock.c | |||
@@ -34,7 +34,7 @@ void __init init_sched_clock(struct clock_data *cd, void (*update)(void), | |||
34 | sched_clock_update_fn = update; | 34 | sched_clock_update_fn = update; |
35 | 35 | ||
36 | /* calculate the mult/shift to convert counter ticks to ns. */ | 36 | /* calculate the mult/shift to convert counter ticks to ns. */ |
37 | clocks_calc_mult_shift(&cd->mult, &cd->shift, rate, NSEC_PER_SEC, 60); | 37 | clocks_calc_mult_shift(&cd->mult, &cd->shift, rate, NSEC_PER_SEC, 0); |
38 | 38 | ||
39 | r = rate; | 39 | r = rate; |
40 | if (r >= 4000000) { | 40 | if (r >= 4000000) { |
@@ -60,10 +60,15 @@ void __init init_sched_clock(struct clock_data *cd, void (*update)(void), | |||
60 | * sets the initial epoch. | 60 | * sets the initial epoch. |
61 | */ | 61 | */ |
62 | sched_clock_timer.data = msecs_to_jiffies(w - (w / 10)); | 62 | sched_clock_timer.data = msecs_to_jiffies(w - (w / 10)); |
63 | sched_clock_poll(sched_clock_timer.data); | 63 | update(); |
64 | 64 | ||
65 | /* | 65 | /* |
66 | * Ensure that sched_clock() starts off at 0ns | 66 | * Ensure that sched_clock() starts off at 0ns |
67 | */ | 67 | */ |
68 | cd->epoch_ns = 0; | 68 | cd->epoch_ns = 0; |
69 | } | 69 | } |
70 | |||
71 | void __init sched_clock_postinit(void) | ||
72 | { | ||
73 | sched_clock_poll(sched_clock_timer.data); | ||
74 | } | ||
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 3455ad33de4c..420b8d6485d6 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -518,25 +518,21 @@ setup_ramdisk(int doload, int prompt, int image_start, unsigned int rd_sz) | |||
518 | #endif | 518 | #endif |
519 | } | 519 | } |
520 | 520 | ||
521 | static void __init | 521 | static void __init request_standard_resources(struct machine_desc *mdesc) |
522 | request_standard_resources(struct meminfo *mi, struct machine_desc *mdesc) | ||
523 | { | 522 | { |
523 | struct memblock_region *region; | ||
524 | struct resource *res; | 524 | struct resource *res; |
525 | int i; | ||
526 | 525 | ||
527 | kernel_code.start = virt_to_phys(_text); | 526 | kernel_code.start = virt_to_phys(_text); |
528 | kernel_code.end = virt_to_phys(_etext - 1); | 527 | kernel_code.end = virt_to_phys(_etext - 1); |
529 | kernel_data.start = virt_to_phys(_sdata); | 528 | kernel_data.start = virt_to_phys(_sdata); |
530 | kernel_data.end = virt_to_phys(_end - 1); | 529 | kernel_data.end = virt_to_phys(_end - 1); |
531 | 530 | ||
532 | for (i = 0; i < mi->nr_banks; i++) { | 531 | for_each_memblock(memory, region) { |
533 | if (mi->bank[i].size == 0) | ||
534 | continue; | ||
535 | |||
536 | res = alloc_bootmem_low(sizeof(*res)); | 532 | res = alloc_bootmem_low(sizeof(*res)); |
537 | res->name = "System RAM"; | 533 | res->name = "System RAM"; |
538 | res->start = mi->bank[i].start; | 534 | res->start = __pfn_to_phys(memblock_region_memory_base_pfn(region)); |
539 | res->end = mi->bank[i].start + mi->bank[i].size - 1; | 535 | res->end = __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1; |
540 | res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; | 536 | res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; |
541 | 537 | ||
542 | request_resource(&iomem_resource, res); | 538 | request_resource(&iomem_resource, res); |
@@ -650,15 +646,17 @@ static int __init parse_tag_revision(const struct tag *tag) | |||
650 | 646 | ||
651 | __tagtable(ATAG_REVISION, parse_tag_revision); | 647 | __tagtable(ATAG_REVISION, parse_tag_revision); |
652 | 648 | ||
653 | #ifndef CONFIG_CMDLINE_FORCE | ||
654 | static int __init parse_tag_cmdline(const struct tag *tag) | 649 | static int __init parse_tag_cmdline(const struct tag *tag) |
655 | { | 650 | { |
651 | #ifndef CONFIG_CMDLINE_FORCE | ||
656 | strlcpy(default_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE); | 652 | strlcpy(default_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE); |
653 | #else | ||
654 | pr_warning("Ignoring tag cmdline (using the default kernel command line)\n"); | ||
655 | #endif /* CONFIG_CMDLINE_FORCE */ | ||
657 | return 0; | 656 | return 0; |
658 | } | 657 | } |
659 | 658 | ||
660 | __tagtable(ATAG_CMDLINE, parse_tag_cmdline); | 659 | __tagtable(ATAG_CMDLINE, parse_tag_cmdline); |
661 | #endif /* CONFIG_CMDLINE_FORCE */ | ||
662 | 660 | ||
663 | /* | 661 | /* |
664 | * Scan the tag table for this tag, and call its parse function. | 662 | * Scan the tag table for this tag, and call its parse function. |
@@ -857,7 +855,7 @@ void __init setup_arch(char **cmdline_p) | |||
857 | arm_memblock_init(&meminfo, mdesc); | 855 | arm_memblock_init(&meminfo, mdesc); |
858 | 856 | ||
859 | paging_init(mdesc); | 857 | paging_init(mdesc); |
860 | request_standard_resources(&meminfo, mdesc); | 858 | request_standard_resources(mdesc); |
861 | 859 | ||
862 | #ifdef CONFIG_SMP | 860 | #ifdef CONFIG_SMP |
863 | if (is_smp()) | 861 | if (is_smp()) |
diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c index dd790745b3ef..fd9156698ab9 100644 --- a/arch/arm/kernel/smp_twd.c +++ b/arch/arm/kernel/smp_twd.c | |||
@@ -114,7 +114,7 @@ static void __cpuinit twd_calibrate_rate(void) | |||
114 | twd_timer_rate = (0xFFFFFFFFU - count) * (HZ / 5); | 114 | twd_timer_rate = (0xFFFFFFFFU - count) * (HZ / 5); |
115 | 115 | ||
116 | printk("%lu.%02luMHz.\n", twd_timer_rate / 1000000, | 116 | printk("%lu.%02luMHz.\n", twd_timer_rate / 1000000, |
117 | (twd_timer_rate / 100000) % 100); | 117 | (twd_timer_rate / 1000000) % 100); |
118 | } | 118 | } |
119 | 119 | ||
120 | load = twd_timer_rate / HZ; | 120 | load = twd_timer_rate / HZ; |
diff --git a/arch/arm/kernel/stacktrace.c b/arch/arm/kernel/stacktrace.c index c2e112e1a05f..381d23a497c1 100644 --- a/arch/arm/kernel/stacktrace.c +++ b/arch/arm/kernel/stacktrace.c | |||
@@ -94,10 +94,13 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) | |||
94 | if (tsk != current) { | 94 | if (tsk != current) { |
95 | #ifdef CONFIG_SMP | 95 | #ifdef CONFIG_SMP |
96 | /* | 96 | /* |
97 | * What guarantees do we have here that 'tsk' | 97 | * What guarantees do we have here that 'tsk' is not |
98 | * is not running on another CPU? | 98 | * running on another CPU? For now, ignore it as we |
99 | * can't guarantee we won't explode. | ||
99 | */ | 100 | */ |
100 | BUG(); | 101 | if (trace->nr_entries < trace->max_entries) |
102 | trace->entries[trace->nr_entries++] = ULONG_MAX; | ||
103 | return; | ||
101 | #else | 104 | #else |
102 | data.no_sched_functions = 1; | 105 | data.no_sched_functions = 1; |
103 | frame.fp = thread_saved_fp(tsk); | 106 | frame.fp = thread_saved_fp(tsk); |
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index f1e2eb19a67d..3d76bf233734 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c | |||
@@ -29,6 +29,7 @@ | |||
29 | 29 | ||
30 | #include <asm/leds.h> | 30 | #include <asm/leds.h> |
31 | #include <asm/thread_info.h> | 31 | #include <asm/thread_info.h> |
32 | #include <asm/sched_clock.h> | ||
32 | #include <asm/stacktrace.h> | 33 | #include <asm/stacktrace.h> |
33 | #include <asm/mach/arch.h> | 34 | #include <asm/mach/arch.h> |
34 | #include <asm/mach/time.h> | 35 | #include <asm/mach/time.h> |
@@ -163,5 +164,8 @@ void __init time_init(void) | |||
163 | { | 164 | { |
164 | system_timer = machine_desc->timer; | 165 | system_timer = machine_desc->timer; |
165 | system_timer->init(); | 166 | system_timer->init(); |
167 | #ifdef CONFIG_HAVE_SCHED_CLOCK | ||
168 | sched_clock_postinit(); | ||
169 | #endif | ||
166 | } | 170 | } |
167 | 171 | ||
diff --git a/arch/arm/lib/delay.S b/arch/arm/lib/delay.S index 8d6a8762ab88..3c9a05c8d20b 100644 --- a/arch/arm/lib/delay.S +++ b/arch/arm/lib/delay.S | |||
@@ -25,11 +25,15 @@ ENTRY(__udelay) | |||
25 | ldr r2, .LC1 | 25 | ldr r2, .LC1 |
26 | mul r0, r2, r0 | 26 | mul r0, r2, r0 |
27 | ENTRY(__const_udelay) @ 0 <= r0 <= 0x7fffff06 | 27 | ENTRY(__const_udelay) @ 0 <= r0 <= 0x7fffff06 |
28 | mov r1, #-1 | ||
28 | ldr r2, .LC0 | 29 | ldr r2, .LC0 |
29 | ldr r2, [r2] @ max = 0x01ffffff | 30 | ldr r2, [r2] @ max = 0x01ffffff |
31 | add r0, r0, r1, lsr #32-14 | ||
30 | mov r0, r0, lsr #14 @ max = 0x0001ffff | 32 | mov r0, r0, lsr #14 @ max = 0x0001ffff |
33 | add r2, r2, r1, lsr #32-10 | ||
31 | mov r2, r2, lsr #10 @ max = 0x00007fff | 34 | mov r2, r2, lsr #10 @ max = 0x00007fff |
32 | mul r0, r2, r0 @ max = 2^32-1 | 35 | mul r0, r2, r0 @ max = 2^32-1 |
36 | add r0, r0, r1, lsr #32-6 | ||
33 | movs r0, r0, lsr #6 | 37 | movs r0, r0, lsr #6 |
34 | moveq pc, lr | 38 | moveq pc, lr |
35 | 39 | ||
diff --git a/arch/arm/mach-at91/board-ecbat91.c b/arch/arm/mach-at91/board-ecbat91.c index 7b58c948a957..de2fd04e7c8a 100644 --- a/arch/arm/mach-at91/board-ecbat91.c +++ b/arch/arm/mach-at91/board-ecbat91.c | |||
@@ -128,17 +128,17 @@ static struct spi_board_info __initdata ecb_at91spi_devices[] = { | |||
128 | .platform_data = &my_flash0_platform, | 128 | .platform_data = &my_flash0_platform, |
129 | #endif | 129 | #endif |
130 | }, | 130 | }, |
131 | { /* User accessable spi - cs1 (250KHz) */ | 131 | { /* User accessible spi - cs1 (250KHz) */ |
132 | .modalias = "spi-cs1", | 132 | .modalias = "spi-cs1", |
133 | .chip_select = 1, | 133 | .chip_select = 1, |
134 | .max_speed_hz = 250 * 1000, | 134 | .max_speed_hz = 250 * 1000, |
135 | }, | 135 | }, |
136 | { /* User accessable spi - cs2 (1MHz) */ | 136 | { /* User accessible spi - cs2 (1MHz) */ |
137 | .modalias = "spi-cs2", | 137 | .modalias = "spi-cs2", |
138 | .chip_select = 2, | 138 | .chip_select = 2, |
139 | .max_speed_hz = 1 * 1000 * 1000, | 139 | .max_speed_hz = 1 * 1000 * 1000, |
140 | }, | 140 | }, |
141 | { /* User accessable spi - cs3 (10MHz) */ | 141 | { /* User accessible spi - cs3 (10MHz) */ |
142 | .modalias = "spi-cs3", | 142 | .modalias = "spi-cs3", |
143 | .chip_select = 3, | 143 | .chip_select = 3, |
144 | .max_speed_hz = 10 * 1000 * 1000, | 144 | .max_speed_hz = 10 * 1000 * 1000, |
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c index dafbacc25eb1..ea53f4d9b283 100644 --- a/arch/arm/mach-at91/pm.c +++ b/arch/arm/mach-at91/pm.c | |||
@@ -301,7 +301,7 @@ static void at91_pm_end(void) | |||
301 | } | 301 | } |
302 | 302 | ||
303 | 303 | ||
304 | static struct platform_suspend_ops at91_pm_ops ={ | 304 | static const struct platform_suspend_ops at91_pm_ops = { |
305 | .valid = at91_pm_valid_state, | 305 | .valid = at91_pm_valid_state, |
306 | .begin = at91_pm_begin, | 306 | .begin = at91_pm_begin, |
307 | .enter = at91_pm_enter, | 307 | .enter = at91_pm_enter, |
diff --git a/arch/arm/mach-bcmring/csp/chipc/chipcHw.c b/arch/arm/mach-bcmring/csp/chipc/chipcHw.c index b3a61d860c65..96273ff34956 100644 --- a/arch/arm/mach-bcmring/csp/chipc/chipcHw.c +++ b/arch/arm/mach-bcmring/csp/chipc/chipcHw.c | |||
@@ -757,7 +757,7 @@ static int chipcHw_divide(int num, int denom) | |||
757 | t = t << 1; | 757 | t = t << 1; |
758 | } | 758 | } |
759 | 759 | ||
760 | /* Intialize the result */ | 760 | /* Initialize the result */ |
761 | r = 0; | 761 | r = 0; |
762 | 762 | ||
763 | do { | 763 | do { |
diff --git a/arch/arm/mach-bcmring/csp/dmac/dmacHw.c b/arch/arm/mach-bcmring/csp/dmac/dmacHw.c index 7b9bac2d79a5..6b9be2e98e51 100644 --- a/arch/arm/mach-bcmring/csp/dmac/dmacHw.c +++ b/arch/arm/mach-bcmring/csp/dmac/dmacHw.c | |||
@@ -893,7 +893,7 @@ int dmacHw_setDataDescriptor(dmacHw_CONFIG_t *pConfig, /* [ IN ] Configuration | |||
893 | */ | 893 | */ |
894 | /****************************************************************************/ | 894 | /****************************************************************************/ |
895 | uint32_t dmacHw_getDmaControllerAttribute(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ | 895 | uint32_t dmacHw_getDmaControllerAttribute(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ |
896 | dmacHw_CONTROLLER_ATTRIB_e attr /* [ IN ] DMA Controler attribute of type dmacHw_CONTROLLER_ATTRIB_e */ | 896 | dmacHw_CONTROLLER_ATTRIB_e attr /* [ IN ] DMA Controller attribute of type dmacHw_CONTROLLER_ATTRIB_e */ |
897 | ) { | 897 | ) { |
898 | dmacHw_CBLK_t *pCblk = dmacHw_HANDLE_TO_CBLK(handle); | 898 | dmacHw_CBLK_t *pCblk = dmacHw_HANDLE_TO_CBLK(handle); |
899 | 899 | ||
diff --git a/arch/arm/mach-bcmring/csp/dmac/dmacHw_extra.c b/arch/arm/mach-bcmring/csp/dmac/dmacHw_extra.c index ff7b436d0935..77f84b40dda9 100644 --- a/arch/arm/mach-bcmring/csp/dmac/dmacHw_extra.c +++ b/arch/arm/mach-bcmring/csp/dmac/dmacHw_extra.c | |||
@@ -316,7 +316,7 @@ static void DisplayDescRing(void *pDescriptor, /* [ IN ] Descriptor buffer */ | |||
316 | /** | 316 | /** |
317 | * @brief Check if DMA channel is the flow controller | 317 | * @brief Check if DMA channel is the flow controller |
318 | * | 318 | * |
319 | * @return 1 : If DMA is a flow controler | 319 | * @return 1 : If DMA is a flow controller |
320 | * 0 : Peripheral is the flow controller | 320 | * 0 : Peripheral is the flow controller |
321 | * | 321 | * |
322 | * @note | 322 | * @note |
diff --git a/arch/arm/mach-bcmring/csp/tmr/tmrHw.c b/arch/arm/mach-bcmring/csp/tmr/tmrHw.c index 5c1c9a0e5ed2..16225e43f3c3 100644 --- a/arch/arm/mach-bcmring/csp/tmr/tmrHw.c +++ b/arch/arm/mach-bcmring/csp/tmr/tmrHw.c | |||
@@ -558,7 +558,7 @@ static int tmrHw_divide(int num, int denom) | |||
558 | t = t << 1; | 558 | t = t << 1; |
559 | } | 559 | } |
560 | 560 | ||
561 | /* Intialize the result */ | 561 | /* Initialize the result */ |
562 | r = 0; | 562 | r = 0; |
563 | 563 | ||
564 | do { | 564 | do { |
diff --git a/arch/arm/mach-bcmring/dma.c b/arch/arm/mach-bcmring/dma.c index 77eb35c89cd0..8d1baf3f4683 100644 --- a/arch/arm/mach-bcmring/dma.c +++ b/arch/arm/mach-bcmring/dma.c | |||
@@ -671,7 +671,7 @@ static int ConfigChannel(DMA_Handle_t handle) | |||
671 | 671 | ||
672 | /****************************************************************************/ | 672 | /****************************************************************************/ |
673 | /** | 673 | /** |
674 | * Intializes all of the data structures associated with the DMA. | 674 | * Initializes all of the data structures associated with the DMA. |
675 | * @return | 675 | * @return |
676 | * >= 0 - Initialization was successfull. | 676 | * >= 0 - Initialization was successfull. |
677 | * | 677 | * |
diff --git a/arch/arm/mach-bcmring/include/csp/dmacHw.h b/arch/arm/mach-bcmring/include/csp/dmacHw.h index 5d510130a25f..6c8da2b9fc1f 100644 --- a/arch/arm/mach-bcmring/include/csp/dmacHw.h +++ b/arch/arm/mach-bcmring/include/csp/dmacHw.h | |||
@@ -590,7 +590,7 @@ void dmacHw_printDebugInfo(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle | |||
590 | */ | 590 | */ |
591 | /****************************************************************************/ | 591 | /****************************************************************************/ |
592 | uint32_t dmacHw_getDmaControllerAttribute(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ | 592 | uint32_t dmacHw_getDmaControllerAttribute(dmacHw_HANDLE_t handle, /* [ IN ] DMA Channel handle */ |
593 | dmacHw_CONTROLLER_ATTRIB_e attr /* [ IN ] DMA Controler attribute of type dmacHw_CONTROLLER_ATTRIB_e */ | 593 | dmacHw_CONTROLLER_ATTRIB_e attr /* [ IN ] DMA Controller attribute of type dmacHw_CONTROLLER_ATTRIB_e */ |
594 | ); | 594 | ); |
595 | 595 | ||
596 | #endif /* _DMACHW_H */ | 596 | #endif /* _DMACHW_H */ |
diff --git a/arch/arm/mach-bcmring/include/csp/tmrHw.h b/arch/arm/mach-bcmring/include/csp/tmrHw.h index f1236d00cb97..2cbb530db8ea 100644 --- a/arch/arm/mach-bcmring/include/csp/tmrHw.h +++ b/arch/arm/mach-bcmring/include/csp/tmrHw.h | |||
@@ -76,7 +76,7 @@ tmrHw_RATE_t tmrHw_setPeriodicTimerRate(tmrHw_ID_t timerId, /* [ IN ] Timer Id | |||
76 | * certain time interval | 76 | * certain time interval |
77 | * | 77 | * |
78 | * This function initializes a periodic timer to generate timer interrupt | 78 | * This function initializes a periodic timer to generate timer interrupt |
79 | * after every time interval in milisecond | 79 | * after every time interval in millisecond |
80 | * | 80 | * |
81 | * @return On success: Effective interval set in mili-second | 81 | * @return On success: Effective interval set in mili-second |
82 | * On failure: 0 | 82 | * On failure: 0 |
@@ -93,7 +93,7 @@ tmrHw_INTERVAL_t tmrHw_setPeriodicTimerInterval(tmrHw_ID_t timerId, /* [ IN ] T | |||
93 | * after certain time interval | 93 | * after certain time interval |
94 | * | 94 | * |
95 | * This function initializes a periodic timer to generate a single ticks after | 95 | * This function initializes a periodic timer to generate a single ticks after |
96 | * certain time interval in milisecond | 96 | * certain time interval in millisecond |
97 | * | 97 | * |
98 | * @return On success: Effective interval set in mili-second | 98 | * @return On success: Effective interval set in mili-second |
99 | * On failure: 0 | 99 | * On failure: 0 |
diff --git a/arch/arm/mach-bcmring/include/mach/csp/dmacHw_priv.h b/arch/arm/mach-bcmring/include/mach/csp/dmacHw_priv.h index cbf334d1c761..d67e2f8c22de 100644 --- a/arch/arm/mach-bcmring/include/mach/csp/dmacHw_priv.h +++ b/arch/arm/mach-bcmring/include/mach/csp/dmacHw_priv.h | |||
@@ -28,7 +28,7 @@ | |||
28 | 28 | ||
29 | /* Data type for DMA Link List Item */ | 29 | /* Data type for DMA Link List Item */ |
30 | typedef struct { | 30 | typedef struct { |
31 | uint32_t sar; /* Source Adress Register. | 31 | uint32_t sar; /* Source Address Register. |
32 | Address must be aligned to CTLx.SRC_TR_WIDTH. */ | 32 | Address must be aligned to CTLx.SRC_TR_WIDTH. */ |
33 | uint32_t dar; /* Destination Address Register. | 33 | uint32_t dar; /* Destination Address Register. |
34 | Address must be aligned to CTLx.DST_TR_WIDTH. */ | 34 | Address must be aligned to CTLx.DST_TR_WIDTH. */ |
diff --git a/arch/arm/mach-bcmring/include/mach/csp/dmacHw_reg.h b/arch/arm/mach-bcmring/include/mach/csp/dmacHw_reg.h index 891cea87e333..f1ecf96f2da5 100644 --- a/arch/arm/mach-bcmring/include/mach/csp/dmacHw_reg.h +++ b/arch/arm/mach-bcmring/include/mach/csp/dmacHw_reg.h | |||
@@ -35,7 +35,7 @@ typedef struct { | |||
35 | 35 | ||
36 | /* Data type representing DMA channel registers */ | 36 | /* Data type representing DMA channel registers */ |
37 | typedef struct { | 37 | typedef struct { |
38 | dmacHw_REG64_t ChannelSar; /* Source Adress Register. 64 bits (upper 32 bits are reserved) | 38 | dmacHw_REG64_t ChannelSar; /* Source Address Register. 64 bits (upper 32 bits are reserved) |
39 | Address must be aligned to CTLx.SRC_TR_WIDTH. | 39 | Address must be aligned to CTLx.SRC_TR_WIDTH. |
40 | */ | 40 | */ |
41 | dmacHw_REG64_t ChannelDar; /* Destination Address Register.64 bits (upper 32 bits are reserved) | 41 | dmacHw_REG64_t ChannelDar; /* Destination Address Register.64 bits (upper 32 bits are reserved) |
diff --git a/arch/arm/mach-davinci/pm.c b/arch/arm/mach-davinci/pm.c index fab953b43dea..1bd73a04be20 100644 --- a/arch/arm/mach-davinci/pm.c +++ b/arch/arm/mach-davinci/pm.c | |||
@@ -110,7 +110,7 @@ static int davinci_pm_enter(suspend_state_t state) | |||
110 | return ret; | 110 | return ret; |
111 | } | 111 | } |
112 | 112 | ||
113 | static struct platform_suspend_ops davinci_pm_ops = { | 113 | static const struct platform_suspend_ops davinci_pm_ops = { |
114 | .enter = davinci_pm_enter, | 114 | .enter = davinci_pm_enter, |
115 | .valid = suspend_valid_only_mem, | 115 | .valid = suspend_valid_only_mem, |
116 | }; | 116 | }; |
diff --git a/arch/arm/mach-gemini/include/mach/hardware.h b/arch/arm/mach-gemini/include/mach/hardware.h index 213a4fcfeb1c..8c950e1d06be 100644 --- a/arch/arm/mach-gemini/include/mach/hardware.h +++ b/arch/arm/mach-gemini/include/mach/hardware.h | |||
@@ -33,7 +33,7 @@ | |||
33 | #define GEMINI_LPC_HOST_BASE 0x47000000 | 33 | #define GEMINI_LPC_HOST_BASE 0x47000000 |
34 | #define GEMINI_LPC_IO_BASE 0x47800000 | 34 | #define GEMINI_LPC_IO_BASE 0x47800000 |
35 | #define GEMINI_INTERRUPT_BASE 0x48000000 | 35 | #define GEMINI_INTERRUPT_BASE 0x48000000 |
36 | /* TODO: Different interrupt controlers when SMP | 36 | /* TODO: Different interrupt controllers when SMP |
37 | * #define GEMINI_INTERRUPT0_BASE 0x48000000 | 37 | * #define GEMINI_INTERRUPT0_BASE 0x48000000 |
38 | * #define GEMINI_INTERRUPT1_BASE 0x49000000 | 38 | * #define GEMINI_INTERRUPT1_BASE 0x49000000 |
39 | */ | 39 | */ |
diff --git a/arch/arm/mach-h720x/h7201-eval.c b/arch/arm/mach-h720x/h7201-eval.c index 79f0b896e446..629454d71c8d 100644 --- a/arch/arm/mach-h720x/h7201-eval.c +++ b/arch/arm/mach-h720x/h7201-eval.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <asm/types.h> | 23 | #include <asm/types.h> |
24 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
25 | #include <asm/page.h> | 25 | #include <asm/page.h> |
26 | #include <asm/pgtable.h> | ||
27 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
28 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
29 | #include "common.h" | 28 | #include "common.h" |
diff --git a/arch/arm/mach-h720x/h7202-eval.c b/arch/arm/mach-h720x/h7202-eval.c index cc28b1efe047..e9f46b696354 100644 --- a/arch/arm/mach-h720x/h7202-eval.c +++ b/arch/arm/mach-h720x/h7202-eval.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <asm/types.h> | 23 | #include <asm/types.h> |
24 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
25 | #include <asm/page.h> | 25 | #include <asm/page.h> |
26 | #include <asm/pgtable.h> | ||
27 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
28 | #include <mach/irqs.h> | 27 | #include <mach/irqs.h> |
29 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
diff --git a/arch/arm/mach-imx/mach-pcm038.c b/arch/arm/mach-imx/mach-pcm038.c index f667a262dfc1..505614803bc6 100644 --- a/arch/arm/mach-imx/mach-pcm038.c +++ b/arch/arm/mach-imx/mach-pcm038.c | |||
@@ -254,10 +254,10 @@ static struct regulator_init_data cam_data = { | |||
254 | 254 | ||
255 | static struct mc13783_regulator_init_data pcm038_regulators[] = { | 255 | static struct mc13783_regulator_init_data pcm038_regulators[] = { |
256 | { | 256 | { |
257 | .id = MC13783_REGU_VCAM, | 257 | .id = MC13783_REG_VCAM, |
258 | .init_data = &cam_data, | 258 | .init_data = &cam_data, |
259 | }, { | 259 | }, { |
260 | .id = MC13783_REGU_VMMC1, | 260 | .id = MC13783_REG_VMMC1, |
261 | .init_data = &sdhc1_data, | 261 | .init_data = &sdhc1_data, |
262 | }, | 262 | }, |
263 | }; | 263 | }; |
diff --git a/arch/arm/mach-imx/pm-imx27.c b/arch/arm/mach-imx/pm-imx27.c index 6bf81ceea137..acf17691d2cc 100644 --- a/arch/arm/mach-imx/pm-imx27.c +++ b/arch/arm/mach-imx/pm-imx27.c | |||
@@ -32,7 +32,7 @@ static int mx27_suspend_enter(suspend_state_t state) | |||
32 | return 0; | 32 | return 0; |
33 | } | 33 | } |
34 | 34 | ||
35 | static struct platform_suspend_ops mx27_suspend_ops = { | 35 | static const struct platform_suspend_ops mx27_suspend_ops = { |
36 | .enter = mx27_suspend_enter, | 36 | .enter = mx27_suspend_enter, |
37 | .valid = suspend_valid_only_mem, | 37 | .valid = suspend_valid_only_mem, |
38 | }; | 38 | }; |
diff --git a/arch/arm/mach-integrator/cpu.c b/arch/arm/mach-integrator/cpu.c index a3fbcb3adc29..fbb457779895 100644 --- a/arch/arm/mach-integrator/cpu.c +++ b/arch/arm/mach-integrator/cpu.c | |||
@@ -173,7 +173,7 @@ static unsigned int integrator_get(unsigned int cpu) | |||
173 | 173 | ||
174 | if (machine_is_integrator()) { | 174 | if (machine_is_integrator()) { |
175 | vco.s = (cm_osc >> 8) & 7; | 175 | vco.s = (cm_osc >> 8) & 7; |
176 | } else if (machine_is_cintegrator()) { | 176 | } else { |
177 | vco.s = 1; | 177 | vco.s = 1; |
178 | } | 178 | } |
179 | vco.v = cm_osc & 255; | 179 | vco.v = cm_osc & 255; |
diff --git a/arch/arm/mach-kirkwood/openrd-setup.c b/arch/arm/mach-kirkwood/openrd-setup.c index c9d77fad10ab..cfcca4174e25 100644 --- a/arch/arm/mach-kirkwood/openrd-setup.c +++ b/arch/arm/mach-kirkwood/openrd-setup.c | |||
@@ -171,7 +171,7 @@ static void __init openrd_init(void) | |||
171 | 171 | ||
172 | kirkwood_i2c_init(); | 172 | kirkwood_i2c_init(); |
173 | 173 | ||
174 | if (machine_is_openrd_client()) { | 174 | if (machine_is_openrd_client() || machine_is_openrd_ultimate()) { |
175 | i2c_register_board_info(0, i2c_board_info, | 175 | i2c_register_board_info(0, i2c_board_info, |
176 | ARRAY_SIZE(i2c_board_info)); | 176 | ARRAY_SIZE(i2c_board_info)); |
177 | kirkwood_audio_init(); | 177 | kirkwood_audio_init(); |
diff --git a/arch/arm/mach-lpc32xx/pm.c b/arch/arm/mach-lpc32xx/pm.c index a6e2aed9a49f..e76d41bb7056 100644 --- a/arch/arm/mach-lpc32xx/pm.c +++ b/arch/arm/mach-lpc32xx/pm.c | |||
@@ -123,7 +123,7 @@ static int lpc32xx_pm_enter(suspend_state_t state) | |||
123 | return 0; | 123 | return 0; |
124 | } | 124 | } |
125 | 125 | ||
126 | static struct platform_suspend_ops lpc32xx_pm_ops = { | 126 | static const struct platform_suspend_ops lpc32xx_pm_ops = { |
127 | .valid = suspend_valid_only_mem, | 127 | .valid = suspend_valid_only_mem, |
128 | .enter = lpc32xx_pm_enter, | 128 | .enter = lpc32xx_pm_enter, |
129 | }; | 129 | }; |
diff --git a/arch/arm/mach-msm/include/mach/entry-macro-qgic.S b/arch/arm/mach-msm/include/mach/entry-macro-qgic.S index 4dc99aa65d07..12467157afb9 100644 --- a/arch/arm/mach-msm/include/mach/entry-macro-qgic.S +++ b/arch/arm/mach-msm/include/mach/entry-macro-qgic.S | |||
@@ -26,7 +26,7 @@ | |||
26 | * The interrupt numbering scheme is defined in the | 26 | * The interrupt numbering scheme is defined in the |
27 | * interrupt controller spec. To wit: | 27 | * interrupt controller spec. To wit: |
28 | * | 28 | * |
29 | * Migrated the code from ARM MP port to be more consistant | 29 | * Migrated the code from ARM MP port to be more consistent |
30 | * with interrupt processing , the following still holds true | 30 | * with interrupt processing , the following still holds true |
31 | * however, all interrupts are treated the same regardless of | 31 | * however, all interrupts are treated the same regardless of |
32 | * if they are local IPI or PPI | 32 | * if they are local IPI or PPI |
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c index 800f327a7ecc..1260007a9dd1 100644 --- a/arch/arm/mach-msm/io.c +++ b/arch/arm/mach-msm/io.c | |||
@@ -154,7 +154,7 @@ __msm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype) | |||
154 | { | 154 | { |
155 | if (mtype == MT_DEVICE) { | 155 | if (mtype == MT_DEVICE) { |
156 | /* The peripherals in the 88000000 - D0000000 range | 156 | /* The peripherals in the 88000000 - D0000000 range |
157 | * are only accessable by type MT_DEVICE_NONSHARED. | 157 | * are only accessible by type MT_DEVICE_NONSHARED. |
158 | * Adjust mtype as necessary to make this "just work." | 158 | * Adjust mtype as necessary to make this "just work." |
159 | */ | 159 | */ |
160 | if ((phys_addr >= 0x88000000) && (phys_addr < 0xD0000000)) | 160 | if ((phys_addr >= 0x88000000) && (phys_addr < 0xD0000000)) |
diff --git a/arch/arm/mach-mx3/mach-mx31_3ds.c b/arch/arm/mach-mx3/mach-mx31_3ds.c index 6b4aa2c47107..0d65db885be7 100644 --- a/arch/arm/mach-mx3/mach-mx31_3ds.c +++ b/arch/arm/mach-mx3/mach-mx31_3ds.c | |||
@@ -140,10 +140,10 @@ static struct regulator_init_data gpo_init = { | |||
140 | 140 | ||
141 | static struct mc13783_regulator_init_data mx31_3ds_regulators[] = { | 141 | static struct mc13783_regulator_init_data mx31_3ds_regulators[] = { |
142 | { | 142 | { |
143 | .id = MC13783_REGU_PWGT1SPI, /* Power Gate for ARM core. */ | 143 | .id = MC13783_REG_PWGT1SPI, /* Power Gate for ARM core. */ |
144 | .init_data = &pwgtx_init, | 144 | .init_data = &pwgtx_init, |
145 | }, { | 145 | }, { |
146 | .id = MC13783_REGU_PWGT2SPI, /* Power Gate for L2 Cache. */ | 146 | .id = MC13783_REG_PWGT2SPI, /* Power Gate for L2 Cache. */ |
147 | .init_data = &pwgtx_init, | 147 | .init_data = &pwgtx_init, |
148 | }, { | 148 | }, { |
149 | 149 | ||
diff --git a/arch/arm/mach-mx3/mach-mx31moboard.c b/arch/arm/mach-mx3/mach-mx31moboard.c index 203d21a510aa..1aa8d65fccbb 100644 --- a/arch/arm/mach-mx3/mach-mx31moboard.c +++ b/arch/arm/mach-mx3/mach-mx31moboard.c | |||
@@ -216,11 +216,11 @@ static struct regulator_init_data cam_vreg_data = { | |||
216 | 216 | ||
217 | static struct mc13783_regulator_init_data moboard_regulators[] = { | 217 | static struct mc13783_regulator_init_data moboard_regulators[] = { |
218 | { | 218 | { |
219 | .id = MC13783_REGU_VMMC1, | 219 | .id = MC13783_REG_VMMC1, |
220 | .init_data = &sdhc_vreg_data, | 220 | .init_data = &sdhc_vreg_data, |
221 | }, | 221 | }, |
222 | { | 222 | { |
223 | .id = MC13783_REGU_VCAM, | 223 | .id = MC13783_REG_VCAM, |
224 | .init_data = &cam_vreg_data, | 224 | .init_data = &cam_vreg_data, |
225 | }, | 225 | }, |
226 | }; | 226 | }; |
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c index 0cca23a85175..98ba9784aa15 100644 --- a/arch/arm/mach-omap1/pm.c +++ b/arch/arm/mach-omap1/pm.c | |||
@@ -647,7 +647,7 @@ static struct irqaction omap_wakeup_irq = { | |||
647 | 647 | ||
648 | 648 | ||
649 | 649 | ||
650 | static struct platform_suspend_ops omap_pm_ops ={ | 650 | static const struct platform_suspend_ops omap_pm_ops = { |
651 | .prepare = omap_pm_prepare, | 651 | .prepare = omap_pm_prepare, |
652 | .enter = omap_pm_enter, | 652 | .enter = omap_pm_enter, |
653 | .finish = omap_pm_finish, | 653 | .finish = omap_pm_finish, |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index cd7332f50b2d..1c0c2b02d870 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -187,16 +187,19 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ | |||
187 | hsmmc.o | 187 | hsmmc.o |
188 | obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom.o \ | 188 | obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom.o \ |
189 | board-zoom-peripherals.o \ | 189 | board-zoom-peripherals.o \ |
190 | board-zoom-display.o \ | ||
190 | board-flash.o \ | 191 | board-flash.o \ |
191 | hsmmc.o \ | 192 | hsmmc.o \ |
192 | board-zoom-debugboard.o | 193 | board-zoom-debugboard.o |
193 | obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom.o \ | 194 | obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom.o \ |
194 | board-zoom-peripherals.o \ | 195 | board-zoom-peripherals.o \ |
196 | board-zoom-display.o \ | ||
195 | board-flash.o \ | 197 | board-flash.o \ |
196 | hsmmc.o \ | 198 | hsmmc.o \ |
197 | board-zoom-debugboard.o | 199 | board-zoom-debugboard.o |
198 | obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o \ | 200 | obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o \ |
199 | board-zoom-peripherals.o \ | 201 | board-zoom-peripherals.o \ |
202 | board-zoom-display.o \ | ||
200 | board-flash.o \ | 203 | board-flash.o \ |
201 | hsmmc.o | 204 | hsmmc.o |
202 | obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o \ | 205 | obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o \ |
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c index 3b39ef1a680a..d4e41ef86aa5 100644 --- a/arch/arm/mach-omap2/board-3430sdp.c +++ b/arch/arm/mach-omap2/board-3430sdp.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <plat/dma.h> | 38 | #include <plat/dma.h> |
39 | #include <plat/gpmc.h> | 39 | #include <plat/gpmc.h> |
40 | #include <plat/display.h> | 40 | #include <plat/display.h> |
41 | #include <plat/panel-generic-dpi.h> | ||
41 | 42 | ||
42 | #include <plat/gpmc-smc91x.h> | 43 | #include <plat/gpmc-smc91x.h> |
43 | 44 | ||
@@ -270,13 +271,18 @@ static struct omap_dss_device sdp3430_lcd_device = { | |||
270 | .platform_disable = sdp3430_panel_disable_lcd, | 271 | .platform_disable = sdp3430_panel_disable_lcd, |
271 | }; | 272 | }; |
272 | 273 | ||
274 | static struct panel_generic_dpi_data dvi_panel = { | ||
275 | .name = "generic", | ||
276 | .platform_enable = sdp3430_panel_enable_dvi, | ||
277 | .platform_disable = sdp3430_panel_disable_dvi, | ||
278 | }; | ||
279 | |||
273 | static struct omap_dss_device sdp3430_dvi_device = { | 280 | static struct omap_dss_device sdp3430_dvi_device = { |
274 | .name = "dvi", | 281 | .name = "dvi", |
275 | .driver_name = "generic_panel", | ||
276 | .type = OMAP_DISPLAY_TYPE_DPI, | 282 | .type = OMAP_DISPLAY_TYPE_DPI, |
283 | .driver_name = "generic_dpi_panel", | ||
284 | .data = &dvi_panel, | ||
277 | .phy.dpi.data_lines = 24, | 285 | .phy.dpi.data_lines = 24, |
278 | .platform_enable = sdp3430_panel_enable_dvi, | ||
279 | .platform_disable = sdp3430_panel_disable_dvi, | ||
280 | }; | 286 | }; |
281 | 287 | ||
282 | static struct omap_dss_device sdp3430_tv_device = { | 288 | static struct omap_dss_device sdp3430_tv_device = { |
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c index 5d41dbe059a3..62645640f5e4 100644 --- a/arch/arm/mach-omap2/board-3630sdp.c +++ b/arch/arm/mach-omap2/board-3630sdp.c | |||
@@ -207,6 +207,7 @@ static void __init omap_sdp_init(void) | |||
207 | { | 207 | { |
208 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBP); | 208 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBP); |
209 | zoom_peripherals_init(); | 209 | zoom_peripherals_init(); |
210 | zoom_display_init(); | ||
210 | board_smc91x_init(); | 211 | board_smc91x_init(); |
211 | board_flash_init(sdp_flash_partitions, chip_sel_sdp); | 212 | board_flash_init(sdp_flash_partitions, chip_sel_sdp); |
212 | enable_board_wakeup_source(); | 213 | enable_board_wakeup_source(); |
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index a70bdf28e2bc..07d1b20b1148 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -554,6 +554,7 @@ static void __init omap_sfh7741prox_init(void) | |||
554 | 554 | ||
555 | #ifdef CONFIG_OMAP_MUX | 555 | #ifdef CONFIG_OMAP_MUX |
556 | static struct omap_board_mux board_mux[] __initdata = { | 556 | static struct omap_board_mux board_mux[] __initdata = { |
557 | OMAP4_MUX(USBB2_ULPITLL_CLK, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | ||
557 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 558 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
558 | }; | 559 | }; |
559 | #else | 560 | #else |
@@ -576,11 +577,12 @@ static void __init omap_4430sdp_init(void) | |||
576 | omap4_twl6030_hsmmc_init(mmc); | 577 | omap4_twl6030_hsmmc_init(mmc); |
577 | 578 | ||
578 | /* Power on the ULPI PHY */ | 579 | /* Power on the ULPI PHY */ |
579 | if (gpio_is_valid(OMAP4SDP_MDM_PWR_EN_GPIO)) { | 580 | status = gpio_request(OMAP4SDP_MDM_PWR_EN_GPIO, "USBB1 PHY VMDM_3V3"); |
580 | /* FIXME: Assumes pad is already muxed for GPIO mode */ | 581 | if (status) |
581 | gpio_request(OMAP4SDP_MDM_PWR_EN_GPIO, "USBB1 PHY VMDM_3V3"); | 582 | pr_err("%s: Could not get USBB1 PHY GPIO\n", __func__); |
583 | else | ||
582 | gpio_direction_output(OMAP4SDP_MDM_PWR_EN_GPIO, 1); | 584 | gpio_direction_output(OMAP4SDP_MDM_PWR_EN_GPIO, 1); |
583 | } | 585 | |
584 | usb_ehci_init(&ehci_pdata); | 586 | usb_ehci_init(&ehci_pdata); |
585 | usb_musb_init(&musb_board_data); | 587 | usb_musb_init(&musb_board_data); |
586 | 588 | ||
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index bc1562648020..10d60b7743cf 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <plat/common.h> | 35 | #include <plat/common.h> |
36 | #include <plat/usb.h> | 36 | #include <plat/usb.h> |
37 | #include <plat/display.h> | 37 | #include <plat/display.h> |
38 | #include <plat/panel-generic-dpi.h> | ||
38 | 39 | ||
39 | #include "mux.h" | 40 | #include "mux.h" |
40 | #include "control.h" | 41 | #include "control.h" |
@@ -303,13 +304,18 @@ static void am3517_evm_panel_disable_lcd(struct omap_dss_device *dssdev) | |||
303 | lcd_enabled = 0; | 304 | lcd_enabled = 0; |
304 | } | 305 | } |
305 | 306 | ||
307 | static struct panel_generic_dpi_data lcd_panel = { | ||
308 | .name = "sharp_lq", | ||
309 | .platform_enable = am3517_evm_panel_enable_lcd, | ||
310 | .platform_disable = am3517_evm_panel_disable_lcd, | ||
311 | }; | ||
312 | |||
306 | static struct omap_dss_device am3517_evm_lcd_device = { | 313 | static struct omap_dss_device am3517_evm_lcd_device = { |
307 | .type = OMAP_DISPLAY_TYPE_DPI, | 314 | .type = OMAP_DISPLAY_TYPE_DPI, |
308 | .name = "lcd", | 315 | .name = "lcd", |
309 | .driver_name = "sharp_lq_panel", | 316 | .driver_name = "generic_dpi_panel", |
317 | .data = &lcd_panel, | ||
310 | .phy.dpi.data_lines = 16, | 318 | .phy.dpi.data_lines = 16, |
311 | .platform_enable = am3517_evm_panel_enable_lcd, | ||
312 | .platform_disable = am3517_evm_panel_disable_lcd, | ||
313 | }; | 319 | }; |
314 | 320 | ||
315 | static int am3517_evm_panel_enable_tv(struct omap_dss_device *dssdev) | 321 | static int am3517_evm_panel_enable_tv(struct omap_dss_device *dssdev) |
@@ -346,13 +352,18 @@ static void am3517_evm_panel_disable_dvi(struct omap_dss_device *dssdev) | |||
346 | dvi_enabled = 0; | 352 | dvi_enabled = 0; |
347 | } | 353 | } |
348 | 354 | ||
355 | static struct panel_generic_dpi_data dvi_panel = { | ||
356 | .name = "generic", | ||
357 | .platform_enable = am3517_evm_panel_enable_dvi, | ||
358 | .platform_disable = am3517_evm_panel_disable_dvi, | ||
359 | }; | ||
360 | |||
349 | static struct omap_dss_device am3517_evm_dvi_device = { | 361 | static struct omap_dss_device am3517_evm_dvi_device = { |
350 | .type = OMAP_DISPLAY_TYPE_DPI, | 362 | .type = OMAP_DISPLAY_TYPE_DPI, |
351 | .name = "dvi", | 363 | .name = "dvi", |
352 | .driver_name = "generic_panel", | 364 | .driver_name = "generic_dpi_panel", |
365 | .data = &dvi_panel, | ||
353 | .phy.dpi.data_lines = 24, | 366 | .phy.dpi.data_lines = 24, |
354 | .platform_enable = am3517_evm_panel_enable_dvi, | ||
355 | .platform_disable = am3517_evm_panel_disable_dvi, | ||
356 | }; | 367 | }; |
357 | 368 | ||
358 | static struct omap_dss_device *am3517_evm_dss_devices[] = { | 369 | static struct omap_dss_device *am3517_evm_dss_devices[] = { |
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c index 486a3de5f401..dac141610666 100644 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #include <plat/gpmc.h> | 46 | #include <plat/gpmc.h> |
47 | #include <plat/usb.h> | 47 | #include <plat/usb.h> |
48 | #include <plat/display.h> | 48 | #include <plat/display.h> |
49 | #include <plat/panel-generic-dpi.h> | ||
49 | #include <plat/mcspi.h> | 50 | #include <plat/mcspi.h> |
50 | 51 | ||
51 | #include <mach/hardware.h> | 52 | #include <mach/hardware.h> |
@@ -351,22 +352,32 @@ static void cm_t35_panel_disable_tv(struct omap_dss_device *dssdev) | |||
351 | { | 352 | { |
352 | } | 353 | } |
353 | 354 | ||
355 | static struct panel_generic_dpi_data lcd_panel = { | ||
356 | .name = "toppoly_tdo35s", | ||
357 | .platform_enable = cm_t35_panel_enable_lcd, | ||
358 | .platform_disable = cm_t35_panel_disable_lcd, | ||
359 | }; | ||
360 | |||
354 | static struct omap_dss_device cm_t35_lcd_device = { | 361 | static struct omap_dss_device cm_t35_lcd_device = { |
355 | .name = "lcd", | 362 | .name = "lcd", |
356 | .driver_name = "toppoly_tdo35s_panel", | ||
357 | .type = OMAP_DISPLAY_TYPE_DPI, | 363 | .type = OMAP_DISPLAY_TYPE_DPI, |
364 | .driver_name = "generic_dpi_panel", | ||
365 | .data = &lcd_panel, | ||
358 | .phy.dpi.data_lines = 18, | 366 | .phy.dpi.data_lines = 18, |
359 | .platform_enable = cm_t35_panel_enable_lcd, | 367 | }; |
360 | .platform_disable = cm_t35_panel_disable_lcd, | 368 | |
369 | static struct panel_generic_dpi_data dvi_panel = { | ||
370 | .name = "generic", | ||
371 | .platform_enable = cm_t35_panel_enable_dvi, | ||
372 | .platform_disable = cm_t35_panel_disable_dvi, | ||
361 | }; | 373 | }; |
362 | 374 | ||
363 | static struct omap_dss_device cm_t35_dvi_device = { | 375 | static struct omap_dss_device cm_t35_dvi_device = { |
364 | .name = "dvi", | 376 | .name = "dvi", |
365 | .driver_name = "generic_panel", | ||
366 | .type = OMAP_DISPLAY_TYPE_DPI, | 377 | .type = OMAP_DISPLAY_TYPE_DPI, |
378 | .driver_name = "generic_dpi_panel", | ||
379 | .data = &dvi_panel, | ||
367 | .phy.dpi.data_lines = 24, | 380 | .phy.dpi.data_lines = 24, |
368 | .platform_enable = cm_t35_panel_enable_dvi, | ||
369 | .platform_disable = cm_t35_panel_disable_dvi, | ||
370 | }; | 381 | }; |
371 | 382 | ||
372 | static struct omap_dss_device cm_t35_tv_device = { | 383 | static struct omap_dss_device cm_t35_tv_device = { |
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c index 451e7ff08b18..00bb1fc5e017 100644 --- a/arch/arm/mach-omap2/board-devkit8000.c +++ b/arch/arm/mach-omap2/board-devkit8000.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #include <plat/nand.h> | 46 | #include <plat/nand.h> |
47 | #include <plat/usb.h> | 47 | #include <plat/usb.h> |
48 | #include <plat/display.h> | 48 | #include <plat/display.h> |
49 | #include <plat/panel-generic-dpi.h> | ||
49 | 50 | ||
50 | #include <plat/mcspi.h> | 51 | #include <plat/mcspi.h> |
51 | #include <linux/input/matrix_keypad.h> | 52 | #include <linux/input/matrix_keypad.h> |
@@ -149,23 +150,32 @@ static struct regulator_consumer_supply devkit8000_vmmc1_supply = | |||
149 | static struct regulator_consumer_supply devkit8000_vio_supply = | 150 | static struct regulator_consumer_supply devkit8000_vio_supply = |
150 | REGULATOR_SUPPLY("vcc", "spi2.0"); | 151 | REGULATOR_SUPPLY("vcc", "spi2.0"); |
151 | 152 | ||
153 | static struct panel_generic_dpi_data lcd_panel = { | ||
154 | .name = "generic", | ||
155 | .platform_enable = devkit8000_panel_enable_lcd, | ||
156 | .platform_disable = devkit8000_panel_disable_lcd, | ||
157 | }; | ||
158 | |||
152 | static struct omap_dss_device devkit8000_lcd_device = { | 159 | static struct omap_dss_device devkit8000_lcd_device = { |
153 | .name = "lcd", | 160 | .name = "lcd", |
154 | .driver_name = "generic_panel", | ||
155 | .type = OMAP_DISPLAY_TYPE_DPI, | 161 | .type = OMAP_DISPLAY_TYPE_DPI, |
162 | .driver_name = "generic_dpi_panel", | ||
163 | .data = &lcd_panel, | ||
156 | .phy.dpi.data_lines = 24, | 164 | .phy.dpi.data_lines = 24, |
157 | .reset_gpio = -EINVAL, /* will be replaced */ | ||
158 | .platform_enable = devkit8000_panel_enable_lcd, | ||
159 | .platform_disable = devkit8000_panel_disable_lcd, | ||
160 | }; | 165 | }; |
166 | |||
167 | static struct panel_generic_dpi_data dvi_panel = { | ||
168 | .name = "generic", | ||
169 | .platform_enable = devkit8000_panel_enable_dvi, | ||
170 | .platform_disable = devkit8000_panel_disable_dvi, | ||
171 | }; | ||
172 | |||
161 | static struct omap_dss_device devkit8000_dvi_device = { | 173 | static struct omap_dss_device devkit8000_dvi_device = { |
162 | .name = "dvi", | 174 | .name = "dvi", |
163 | .driver_name = "generic_panel", | ||
164 | .type = OMAP_DISPLAY_TYPE_DPI, | 175 | .type = OMAP_DISPLAY_TYPE_DPI, |
176 | .driver_name = "generic_dpi_panel", | ||
177 | .data = &dvi_panel, | ||
165 | .phy.dpi.data_lines = 24, | 178 | .phy.dpi.data_lines = 24, |
166 | .reset_gpio = -EINVAL, /* will be replaced */ | ||
167 | .platform_enable = devkit8000_panel_enable_dvi, | ||
168 | .platform_disable = devkit8000_panel_disable_dvi, | ||
169 | }; | 179 | }; |
170 | 180 | ||
171 | static struct omap_dss_device devkit8000_tv_device = { | 181 | static struct omap_dss_device devkit8000_tv_device = { |
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 0afa3011db0f..3be85a1f55f4 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
20 | #include <linux/input.h> | ||
20 | 21 | ||
21 | #include <linux/regulator/machine.h> | 22 | #include <linux/regulator/machine.h> |
22 | #include <linux/regulator/fixed.h> | 23 | #include <linux/regulator/fixed.h> |
@@ -31,6 +32,7 @@ | |||
31 | #include <plat/gpmc.h> | 32 | #include <plat/gpmc.h> |
32 | #include <plat/usb.h> | 33 | #include <plat/usb.h> |
33 | #include <plat/display.h> | 34 | #include <plat/display.h> |
35 | #include <plat/panel-generic-dpi.h> | ||
34 | #include <plat/onenand.h> | 36 | #include <plat/onenand.h> |
35 | 37 | ||
36 | #include "mux.h" | 38 | #include "mux.h" |
@@ -459,13 +461,18 @@ static void igep2_disable_dvi(struct omap_dss_device *dssdev) | |||
459 | gpio_direction_output(IGEP2_GPIO_DVI_PUP, 0); | 461 | gpio_direction_output(IGEP2_GPIO_DVI_PUP, 0); |
460 | } | 462 | } |
461 | 463 | ||
464 | static struct panel_generic_dpi_data dvi_panel = { | ||
465 | .name = "generic", | ||
466 | .platform_enable = igep2_enable_dvi, | ||
467 | .platform_disable = igep2_disable_dvi, | ||
468 | }; | ||
469 | |||
462 | static struct omap_dss_device igep2_dvi_device = { | 470 | static struct omap_dss_device igep2_dvi_device = { |
463 | .type = OMAP_DISPLAY_TYPE_DPI, | 471 | .type = OMAP_DISPLAY_TYPE_DPI, |
464 | .name = "dvi", | 472 | .name = "dvi", |
465 | .driver_name = "generic_panel", | 473 | .driver_name = "generic_dpi_panel", |
474 | .data = &dvi_panel, | ||
466 | .phy.dpi.data_lines = 24, | 475 | .phy.dpi.data_lines = 24, |
467 | .platform_enable = igep2_enable_dvi, | ||
468 | .platform_disable = igep2_disable_dvi, | ||
469 | }; | 476 | }; |
470 | 477 | ||
471 | static struct omap_dss_device *igep2_dss_devices[] = { | 478 | static struct omap_dss_device *igep2_dss_devices[] = { |
@@ -535,6 +542,37 @@ static struct twl4030_codec_data igep2_codec_data = { | |||
535 | .audio = &igep2_audio_data, | 542 | .audio = &igep2_audio_data, |
536 | }; | 543 | }; |
537 | 544 | ||
545 | static int igep2_keymap[] = { | ||
546 | KEY(0, 0, KEY_LEFT), | ||
547 | KEY(0, 1, KEY_RIGHT), | ||
548 | KEY(0, 2, KEY_A), | ||
549 | KEY(0, 3, KEY_B), | ||
550 | KEY(1, 0, KEY_DOWN), | ||
551 | KEY(1, 1, KEY_UP), | ||
552 | KEY(1, 2, KEY_E), | ||
553 | KEY(1, 3, KEY_F), | ||
554 | KEY(2, 0, KEY_ENTER), | ||
555 | KEY(2, 1, KEY_I), | ||
556 | KEY(2, 2, KEY_J), | ||
557 | KEY(2, 3, KEY_K), | ||
558 | KEY(3, 0, KEY_M), | ||
559 | KEY(3, 1, KEY_N), | ||
560 | KEY(3, 2, KEY_O), | ||
561 | KEY(3, 3, KEY_P) | ||
562 | }; | ||
563 | |||
564 | static struct matrix_keymap_data igep2_keymap_data = { | ||
565 | .keymap = igep2_keymap, | ||
566 | .keymap_size = ARRAY_SIZE(igep2_keymap), | ||
567 | }; | ||
568 | |||
569 | static struct twl4030_keypad_data igep2_keypad_pdata = { | ||
570 | .keymap_data = &igep2_keymap_data, | ||
571 | .rows = 4, | ||
572 | .cols = 4, | ||
573 | .rep = 1, | ||
574 | }; | ||
575 | |||
538 | static struct twl4030_platform_data igep2_twldata = { | 576 | static struct twl4030_platform_data igep2_twldata = { |
539 | .irq_base = TWL4030_IRQ_BASE, | 577 | .irq_base = TWL4030_IRQ_BASE, |
540 | .irq_end = TWL4030_IRQ_END, | 578 | .irq_end = TWL4030_IRQ_END, |
@@ -543,6 +581,7 @@ static struct twl4030_platform_data igep2_twldata = { | |||
543 | .usb = &igep2_usb_data, | 581 | .usb = &igep2_usb_data, |
544 | .codec = &igep2_codec_data, | 582 | .codec = &igep2_codec_data, |
545 | .gpio = &igep2_twl4030_gpio_pdata, | 583 | .gpio = &igep2_twl4030_gpio_pdata, |
584 | .keypad = &igep2_keypad_pdata, | ||
546 | .vmmc1 = &igep2_vmmc1, | 585 | .vmmc1 = &igep2_vmmc1, |
547 | .vpll2 = &igep2_vpll2, | 586 | .vpll2 = &igep2_vpll2, |
548 | .vio = &igep2_vio, | 587 | .vio = &igep2_vio, |
diff --git a/arch/arm/mach-omap2/board-igep0030.c b/arch/arm/mach-omap2/board-igep0030.c index bcccd68f1856..4dc62a9b9cb2 100644 --- a/arch/arm/mach-omap2/board-igep0030.c +++ b/arch/arm/mach-omap2/board-igep0030.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
20 | 20 | ||
21 | #include <linux/regulator/machine.h> | 21 | #include <linux/regulator/machine.h> |
22 | #include <linux/regulator/fixed.h> | ||
22 | #include <linux/i2c/twl.h> | 23 | #include <linux/i2c/twl.h> |
23 | #include <linux/mmc/host.h> | 24 | #include <linux/mmc/host.h> |
24 | 25 | ||
@@ -43,7 +44,7 @@ | |||
43 | #define IGEP3_GPIO_WIFI_NRESET 139 | 44 | #define IGEP3_GPIO_WIFI_NRESET 139 |
44 | #define IGEP3_GPIO_BT_NRESET 137 | 45 | #define IGEP3_GPIO_BT_NRESET 137 |
45 | 46 | ||
46 | #define IGEP3_GPIO_USBH_NRESET 115 | 47 | #define IGEP3_GPIO_USBH_NRESET 183 |
47 | 48 | ||
48 | 49 | ||
49 | #if defined(CONFIG_MTD_ONENAND_OMAP2) || \ | 50 | #if defined(CONFIG_MTD_ONENAND_OMAP2) || \ |
@@ -103,7 +104,7 @@ static struct platform_device igep3_onenand_device = { | |||
103 | }, | 104 | }, |
104 | }; | 105 | }; |
105 | 106 | ||
106 | void __init igep3_flash_init(void) | 107 | static void __init igep3_flash_init(void) |
107 | { | 108 | { |
108 | u8 cs = 0; | 109 | u8 cs = 0; |
109 | u8 onenandcs = GPMC_CS_NUM + 1; | 110 | u8 onenandcs = GPMC_CS_NUM + 1; |
@@ -137,12 +138,11 @@ void __init igep3_flash_init(void) | |||
137 | } | 138 | } |
138 | 139 | ||
139 | #else | 140 | #else |
140 | void __init igep3_flash_init(void) {} | 141 | static void __init igep3_flash_init(void) {} |
141 | #endif | 142 | #endif |
142 | 143 | ||
143 | static struct regulator_consumer_supply igep3_vmmc1_supply = { | 144 | static struct regulator_consumer_supply igep3_vmmc1_supply = |
144 | .supply = "vmmc", | 145 | REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.0"); |
145 | }; | ||
146 | 146 | ||
147 | /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */ | 147 | /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */ |
148 | static struct regulator_init_data igep3_vmmc1 = { | 148 | static struct regulator_init_data igep3_vmmc1 = { |
@@ -159,6 +159,52 @@ static struct regulator_init_data igep3_vmmc1 = { | |||
159 | .consumer_supplies = &igep3_vmmc1_supply, | 159 | .consumer_supplies = &igep3_vmmc1_supply, |
160 | }; | 160 | }; |
161 | 161 | ||
162 | static struct regulator_consumer_supply igep3_vio_supply = | ||
163 | REGULATOR_SUPPLY("vmmc_aux", "mmci-omap-hs.1"); | ||
164 | |||
165 | static struct regulator_init_data igep3_vio = { | ||
166 | .constraints = { | ||
167 | .min_uV = 1800000, | ||
168 | .max_uV = 1800000, | ||
169 | .apply_uV = 1, | ||
170 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
171 | | REGULATOR_MODE_STANDBY, | ||
172 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
173 | | REGULATOR_CHANGE_MODE | ||
174 | | REGULATOR_CHANGE_STATUS, | ||
175 | }, | ||
176 | .num_consumer_supplies = 1, | ||
177 | .consumer_supplies = &igep3_vio_supply, | ||
178 | }; | ||
179 | |||
180 | static struct regulator_consumer_supply igep3_vmmc2_supply = | ||
181 | REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.1"); | ||
182 | |||
183 | static struct regulator_init_data igep3_vmmc2 = { | ||
184 | .constraints = { | ||
185 | .valid_modes_mask = REGULATOR_MODE_NORMAL, | ||
186 | .always_on = 1, | ||
187 | }, | ||
188 | .num_consumer_supplies = 1, | ||
189 | .consumer_supplies = &igep3_vmmc2_supply, | ||
190 | }; | ||
191 | |||
192 | static struct fixed_voltage_config igep3_vwlan = { | ||
193 | .supply_name = "vwlan", | ||
194 | .microvolts = 3300000, | ||
195 | .gpio = -EINVAL, | ||
196 | .enabled_at_boot = 1, | ||
197 | .init_data = &igep3_vmmc2, | ||
198 | }; | ||
199 | |||
200 | static struct platform_device igep3_vwlan_device = { | ||
201 | .name = "reg-fixed-voltage", | ||
202 | .id = 0, | ||
203 | .dev = { | ||
204 | .platform_data = &igep3_vwlan, | ||
205 | }, | ||
206 | }; | ||
207 | |||
162 | static struct omap2_hsmmc_info mmc[] = { | 208 | static struct omap2_hsmmc_info mmc[] = { |
163 | [0] = { | 209 | [0] = { |
164 | .mmc = 1, | 210 | .mmc = 1, |
@@ -254,12 +300,6 @@ static int igep3_twl4030_gpio_setup(struct device *dev, | |||
254 | mmc[0].gpio_cd = gpio + 0; | 300 | mmc[0].gpio_cd = gpio + 0; |
255 | omap2_hsmmc_init(mmc); | 301 | omap2_hsmmc_init(mmc); |
256 | 302 | ||
257 | /* | ||
258 | * link regulators to MMC adapters ... we "know" the | ||
259 | * regulators will be set up only *after* we return. | ||
260 | */ | ||
261 | igep3_vmmc1_supply.dev = mmc[0].dev; | ||
262 | |||
263 | /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ | 303 | /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ |
264 | #if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE) | 304 | #if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE) |
265 | if ((gpio_request(gpio+TWL4030_GPIO_MAX+1, "gpio-led:green:d1") == 0) | 305 | if ((gpio_request(gpio+TWL4030_GPIO_MAX+1, "gpio-led:green:d1") == 0) |
@@ -287,6 +327,10 @@ static struct twl4030_usb_data igep3_twl4030_usb_data = { | |||
287 | .usb_mode = T2_USB_MODE_ULPI, | 327 | .usb_mode = T2_USB_MODE_ULPI, |
288 | }; | 328 | }; |
289 | 329 | ||
330 | static struct platform_device *igep3_devices[] __initdata = { | ||
331 | &igep3_vwlan_device, | ||
332 | }; | ||
333 | |||
290 | static void __init igep3_init_irq(void) | 334 | static void __init igep3_init_irq(void) |
291 | { | 335 | { |
292 | omap2_init_common_infrastructure(); | 336 | omap2_init_common_infrastructure(); |
@@ -303,6 +347,7 @@ static struct twl4030_platform_data igep3_twl4030_pdata = { | |||
303 | .usb = &igep3_twl4030_usb_data, | 347 | .usb = &igep3_twl4030_usb_data, |
304 | .gpio = &igep3_twl4030_gpio_pdata, | 348 | .gpio = &igep3_twl4030_gpio_pdata, |
305 | .vmmc1 = &igep3_vmmc1, | 349 | .vmmc1 = &igep3_vmmc1, |
350 | .vio = &igep3_vio, | ||
306 | }; | 351 | }; |
307 | 352 | ||
308 | static struct i2c_board_info __initdata igep3_i2c_boardinfo[] = { | 353 | static struct i2c_board_info __initdata igep3_i2c_boardinfo[] = { |
@@ -363,8 +408,20 @@ static void __init igep3_wifi_bt_init(void) | |||
363 | void __init igep3_wifi_bt_init(void) {} | 408 | void __init igep3_wifi_bt_init(void) {} |
364 | #endif | 409 | #endif |
365 | 410 | ||
411 | static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | ||
412 | .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, | ||
413 | .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, | ||
414 | .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, | ||
415 | |||
416 | .phy_reset = true, | ||
417 | .reset_gpio_port[0] = -EINVAL, | ||
418 | .reset_gpio_port[1] = IGEP3_GPIO_USBH_NRESET, | ||
419 | .reset_gpio_port[2] = -EINVAL, | ||
420 | }; | ||
421 | |||
366 | #ifdef CONFIG_OMAP_MUX | 422 | #ifdef CONFIG_OMAP_MUX |
367 | static struct omap_board_mux board_mux[] __initdata = { | 423 | static struct omap_board_mux board_mux[] __initdata = { |
424 | OMAP3_MUX(I2C2_SDA, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), | ||
368 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 425 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
369 | }; | 426 | }; |
370 | #endif | 427 | #endif |
@@ -375,9 +432,10 @@ static void __init igep3_init(void) | |||
375 | 432 | ||
376 | /* Register I2C busses and drivers */ | 433 | /* Register I2C busses and drivers */ |
377 | igep3_i2c_init(); | 434 | igep3_i2c_init(); |
378 | 435 | platform_add_devices(igep3_devices, ARRAY_SIZE(igep3_devices)); | |
379 | omap_serial_init(); | 436 | omap_serial_init(); |
380 | usb_musb_init(&musb_board_data); | 437 | usb_musb_init(&musb_board_data); |
438 | usb_ehci_init(&ehci_pdata); | ||
381 | 439 | ||
382 | igep3_flash_init(); | 440 | igep3_flash_init(); |
383 | igep3_leds_init(); | 441 | igep3_leds_init(); |
@@ -392,6 +450,7 @@ static void __init igep3_init(void) | |||
392 | 450 | ||
393 | MACHINE_START(IGEP0030, "IGEP OMAP3 module") | 451 | MACHINE_START(IGEP0030, "IGEP OMAP3 module") |
394 | .boot_params = 0x80000100, | 452 | .boot_params = 0x80000100, |
453 | .reserve = omap_reserve, | ||
395 | .map_io = omap3_map_io, | 454 | .map_io = omap3_map_io, |
396 | .init_irq = igep3_init_irq, | 455 | .init_irq = igep3_init_irq, |
397 | .init_machine = igep3_init, | 456 | .init_machine = igep3_init, |
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 6c127605942f..46d814ab5656 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <plat/board.h> | 41 | #include <plat/board.h> |
42 | #include <plat/common.h> | 42 | #include <plat/common.h> |
43 | #include <plat/display.h> | 43 | #include <plat/display.h> |
44 | #include <plat/panel-generic-dpi.h> | ||
44 | #include <plat/gpmc.h> | 45 | #include <plat/gpmc.h> |
45 | #include <plat/nand.h> | 46 | #include <plat/nand.h> |
46 | #include <plat/usb.h> | 47 | #include <plat/usb.h> |
@@ -194,14 +195,19 @@ static void beagle_disable_dvi(struct omap_dss_device *dssdev) | |||
194 | gpio_set_value(dssdev->reset_gpio, 0); | 195 | gpio_set_value(dssdev->reset_gpio, 0); |
195 | } | 196 | } |
196 | 197 | ||
198 | static struct panel_generic_dpi_data dvi_panel = { | ||
199 | .name = "generic", | ||
200 | .platform_enable = beagle_enable_dvi, | ||
201 | .platform_disable = beagle_disable_dvi, | ||
202 | }; | ||
203 | |||
197 | static struct omap_dss_device beagle_dvi_device = { | 204 | static struct omap_dss_device beagle_dvi_device = { |
198 | .type = OMAP_DISPLAY_TYPE_DPI, | 205 | .type = OMAP_DISPLAY_TYPE_DPI, |
199 | .name = "dvi", | 206 | .name = "dvi", |
200 | .driver_name = "generic_panel", | 207 | .driver_name = "generic_dpi_panel", |
208 | .data = &dvi_panel, | ||
201 | .phy.dpi.data_lines = 24, | 209 | .phy.dpi.data_lines = 24, |
202 | .reset_gpio = 170, | 210 | .reset_gpio = -EINVAL, |
203 | .platform_enable = beagle_enable_dvi, | ||
204 | .platform_disable = beagle_disable_dvi, | ||
205 | }; | 211 | }; |
206 | 212 | ||
207 | static struct omap_dss_device beagle_tv_device = { | 213 | static struct omap_dss_device beagle_tv_device = { |
@@ -273,6 +279,8 @@ static struct gpio_led gpio_leds[]; | |||
273 | static int beagle_twl_gpio_setup(struct device *dev, | 279 | static int beagle_twl_gpio_setup(struct device *dev, |
274 | unsigned gpio, unsigned ngpio) | 280 | unsigned gpio, unsigned ngpio) |
275 | { | 281 | { |
282 | int r; | ||
283 | |||
276 | if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) { | 284 | if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) { |
277 | mmc[0].gpio_wp = -EINVAL; | 285 | mmc[0].gpio_wp = -EINVAL; |
278 | } else if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C1_3) || | 286 | } else if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C1_3) || |
@@ -293,17 +301,63 @@ static int beagle_twl_gpio_setup(struct device *dev, | |||
293 | /* REVISIT: need ehci-omap hooks for external VBUS | 301 | /* REVISIT: need ehci-omap hooks for external VBUS |
294 | * power switch and overcurrent detect | 302 | * power switch and overcurrent detect |
295 | */ | 303 | */ |
304 | if (omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XM) { | ||
305 | r = gpio_request(gpio + 1, "EHCI_nOC"); | ||
306 | if (!r) { | ||
307 | r = gpio_direction_input(gpio + 1); | ||
308 | if (r) | ||
309 | gpio_free(gpio + 1); | ||
310 | } | ||
311 | if (r) | ||
312 | pr_err("%s: unable to configure EHCI_nOC\n", __func__); | ||
313 | } | ||
296 | 314 | ||
297 | gpio_request(gpio + 1, "EHCI_nOC"); | 315 | /* |
298 | gpio_direction_input(gpio + 1); | 316 | * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active |
299 | 317 | * high / others active low) | |
300 | /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ | 318 | */ |
301 | gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); | 319 | gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); |
302 | gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); | 320 | if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) |
321 | gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); | ||
322 | else | ||
323 | gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); | ||
324 | |||
325 | /* DVI reset GPIO is different between beagle revisions */ | ||
326 | if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) | ||
327 | beagle_dvi_device.reset_gpio = 129; | ||
328 | else | ||
329 | beagle_dvi_device.reset_gpio = 170; | ||
303 | 330 | ||
304 | /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ | 331 | /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ |
305 | gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; | 332 | gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; |
306 | 333 | ||
334 | /* | ||
335 | * gpio + 1 on Xm controls the TFP410's enable line (active low) | ||
336 | * gpio + 2 control varies depending on the board rev as follows: | ||
337 | * P7/P8 revisions(prototype): Camera EN | ||
338 | * A2+ revisions (production): LDO (supplies DVI, serial, led blocks) | ||
339 | */ | ||
340 | if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) { | ||
341 | r = gpio_request(gpio + 1, "nDVI_PWR_EN"); | ||
342 | if (!r) { | ||
343 | r = gpio_direction_output(gpio + 1, 0); | ||
344 | if (r) | ||
345 | gpio_free(gpio + 1); | ||
346 | } | ||
347 | if (r) | ||
348 | pr_err("%s: unable to configure nDVI_PWR_EN\n", | ||
349 | __func__); | ||
350 | r = gpio_request(gpio + 2, "DVI_LDO_EN"); | ||
351 | if (!r) { | ||
352 | r = gpio_direction_output(gpio + 2, 1); | ||
353 | if (r) | ||
354 | gpio_free(gpio + 2); | ||
355 | } | ||
356 | if (r) | ||
357 | pr_err("%s: unable to configure DVI_LDO_EN\n", | ||
358 | __func__); | ||
359 | } | ||
360 | |||
307 | return 0; | 361 | return 0; |
308 | } | 362 | } |
309 | 363 | ||
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index 3de8d9b8ec76..323c3809ce39 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include <plat/common.h> | 43 | #include <plat/common.h> |
44 | #include <plat/mcspi.h> | 44 | #include <plat/mcspi.h> |
45 | #include <plat/display.h> | 45 | #include <plat/display.h> |
46 | #include <plat/panel-generic-dpi.h> | ||
46 | 47 | ||
47 | #include "mux.h" | 48 | #include "mux.h" |
48 | #include "sdram-micron-mt46h32m32lf-6.h" | 49 | #include "sdram-micron-mt46h32m32lf-6.h" |
@@ -301,13 +302,18 @@ static void omap3_evm_disable_dvi(struct omap_dss_device *dssdev) | |||
301 | dvi_enabled = 0; | 302 | dvi_enabled = 0; |
302 | } | 303 | } |
303 | 304 | ||
305 | static struct panel_generic_dpi_data dvi_panel = { | ||
306 | .name = "generic", | ||
307 | .platform_enable = omap3_evm_enable_dvi, | ||
308 | .platform_disable = omap3_evm_disable_dvi, | ||
309 | }; | ||
310 | |||
304 | static struct omap_dss_device omap3_evm_dvi_device = { | 311 | static struct omap_dss_device omap3_evm_dvi_device = { |
305 | .name = "dvi", | 312 | .name = "dvi", |
306 | .driver_name = "generic_panel", | ||
307 | .type = OMAP_DISPLAY_TYPE_DPI, | 313 | .type = OMAP_DISPLAY_TYPE_DPI, |
314 | .driver_name = "generic_dpi_panel", | ||
315 | .data = &dvi_panel, | ||
308 | .phy.dpi.data_lines = 24, | 316 | .phy.dpi.data_lines = 24, |
309 | .platform_enable = omap3_evm_enable_dvi, | ||
310 | .platform_disable = omap3_evm_disable_dvi, | ||
311 | }; | 317 | }; |
312 | 318 | ||
313 | static struct omap_dss_device *omap3_evm_dss_devices[] = { | 319 | static struct omap_dss_device *omap3_evm_dss_devices[] = { |
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c index 9df9d9367608..2a2dad447e86 100644 --- a/arch/arm/mach-omap2/board-omap3stalker.c +++ b/arch/arm/mach-omap2/board-omap3stalker.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <plat/nand.h> | 40 | #include <plat/nand.h> |
41 | #include <plat/usb.h> | 41 | #include <plat/usb.h> |
42 | #include <plat/display.h> | 42 | #include <plat/display.h> |
43 | #include <plat/panel-generic-dpi.h> | ||
43 | 44 | ||
44 | #include <plat/mcspi.h> | 45 | #include <plat/mcspi.h> |
45 | #include <linux/input/matrix_keypad.h> | 46 | #include <linux/input/matrix_keypad.h> |
@@ -160,13 +161,18 @@ static void omap3_stalker_disable_lcd(struct omap_dss_device *dssdev) | |||
160 | lcd_enabled = 0; | 161 | lcd_enabled = 0; |
161 | } | 162 | } |
162 | 163 | ||
164 | static struct panel_generic_dpi_data lcd_panel = { | ||
165 | .name = "generic", | ||
166 | .platform_enable = omap3_stalker_enable_lcd, | ||
167 | .platform_disable = omap3_stalker_disable_lcd, | ||
168 | }; | ||
169 | |||
163 | static struct omap_dss_device omap3_stalker_lcd_device = { | 170 | static struct omap_dss_device omap3_stalker_lcd_device = { |
164 | .name = "lcd", | 171 | .name = "lcd", |
165 | .driver_name = "generic_panel", | 172 | .driver_name = "generic_dpi_panel", |
173 | .data = &lcd_panel, | ||
166 | .phy.dpi.data_lines = 24, | 174 | .phy.dpi.data_lines = 24, |
167 | .type = OMAP_DISPLAY_TYPE_DPI, | 175 | .type = OMAP_DISPLAY_TYPE_DPI, |
168 | .platform_enable = omap3_stalker_enable_lcd, | ||
169 | .platform_disable = omap3_stalker_disable_lcd, | ||
170 | }; | 176 | }; |
171 | 177 | ||
172 | static int omap3_stalker_enable_tv(struct omap_dss_device *dssdev) | 178 | static int omap3_stalker_enable_tv(struct omap_dss_device *dssdev) |
@@ -208,13 +214,18 @@ static void omap3_stalker_disable_dvi(struct omap_dss_device *dssdev) | |||
208 | dvi_enabled = 0; | 214 | dvi_enabled = 0; |
209 | } | 215 | } |
210 | 216 | ||
217 | static struct panel_generic_dpi_data dvi_panel = { | ||
218 | .name = "generic", | ||
219 | .platform_enable = omap3_stalker_enable_dvi, | ||
220 | .platform_disable = omap3_stalker_disable_dvi, | ||
221 | }; | ||
222 | |||
211 | static struct omap_dss_device omap3_stalker_dvi_device = { | 223 | static struct omap_dss_device omap3_stalker_dvi_device = { |
212 | .name = "dvi", | 224 | .name = "dvi", |
213 | .driver_name = "generic_panel", | ||
214 | .type = OMAP_DISPLAY_TYPE_DPI, | 225 | .type = OMAP_DISPLAY_TYPE_DPI, |
226 | .driver_name = "generic_dpi_panel", | ||
227 | .data = &dvi_panel, | ||
215 | .phy.dpi.data_lines = 24, | 228 | .phy.dpi.data_lines = 24, |
216 | .platform_enable = omap3_stalker_enable_dvi, | ||
217 | .platform_disable = omap3_stalker_disable_dvi, | ||
218 | }; | 229 | }; |
219 | 230 | ||
220 | static struct omap_dss_device *omap3_stalker_dss_devices[] = { | 231 | static struct omap_dss_device *omap3_stalker_dss_devices[] = { |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 3094e2007844..e001a048dc0c 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/clk.h> | ||
22 | #include <linux/io.h> | 23 | #include <linux/io.h> |
23 | #include <linux/leds.h> | 24 | #include <linux/leds.h> |
24 | #include <linux/gpio.h> | 25 | #include <linux/gpio.h> |
@@ -95,7 +96,16 @@ static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { | |||
95 | static void __init omap4_ehci_init(void) | 96 | static void __init omap4_ehci_init(void) |
96 | { | 97 | { |
97 | int ret; | 98 | int ret; |
99 | struct clk *phy_ref_clk; | ||
98 | 100 | ||
101 | /* FREF_CLK3 provides the 19.2 MHz reference clock to the PHY */ | ||
102 | phy_ref_clk = clk_get(NULL, "auxclk3_ck"); | ||
103 | if (IS_ERR(phy_ref_clk)) { | ||
104 | pr_err("Cannot request auxclk3\n"); | ||
105 | goto error1; | ||
106 | } | ||
107 | clk_set_rate(phy_ref_clk, 19200000); | ||
108 | clk_enable(phy_ref_clk); | ||
99 | 109 | ||
100 | /* disable the power to the usb hub prior to init */ | 110 | /* disable the power to the usb hub prior to init */ |
101 | ret = gpio_request(GPIO_HUB_POWER, "hub_power"); | 111 | ret = gpio_request(GPIO_HUB_POWER, "hub_power"); |
diff --git a/arch/arm/mach-omap2/board-zoom-display.c b/arch/arm/mach-omap2/board-zoom-display.c new file mode 100644 index 000000000000..6bcd43657aed --- /dev/null +++ b/arch/arm/mach-omap2/board-zoom-display.c | |||
@@ -0,0 +1,168 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Texas Instruments Inc. | ||
3 | * | ||
4 | * Modified from mach-omap2/board-zoom-peripherals.c | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/platform_device.h> | ||
14 | #include <linux/gpio.h> | ||
15 | #include <linux/i2c/twl.h> | ||
16 | #include <linux/spi/spi.h> | ||
17 | #include <plat/mcspi.h> | ||
18 | #include <plat/display.h> | ||
19 | |||
20 | #define LCD_PANEL_RESET_GPIO_PROD 96 | ||
21 | #define LCD_PANEL_RESET_GPIO_PILOT 55 | ||
22 | #define LCD_PANEL_QVGA_GPIO 56 | ||
23 | |||
24 | static void zoom_lcd_panel_init(void) | ||
25 | { | ||
26 | int ret; | ||
27 | unsigned char lcd_panel_reset_gpio; | ||
28 | |||
29 | lcd_panel_reset_gpio = (omap_rev() > OMAP3430_REV_ES3_0) ? | ||
30 | LCD_PANEL_RESET_GPIO_PROD : | ||
31 | LCD_PANEL_RESET_GPIO_PILOT; | ||
32 | |||
33 | ret = gpio_request(lcd_panel_reset_gpio, "lcd reset"); | ||
34 | if (ret) { | ||
35 | pr_err("Failed to get LCD reset GPIO (gpio%d).\n", | ||
36 | lcd_panel_reset_gpio); | ||
37 | return; | ||
38 | } | ||
39 | gpio_direction_output(lcd_panel_reset_gpio, 1); | ||
40 | |||
41 | ret = gpio_request(LCD_PANEL_QVGA_GPIO, "lcd qvga"); | ||
42 | if (ret) { | ||
43 | pr_err("Failed to get LCD_PANEL_QVGA_GPIO (gpio%d).\n", | ||
44 | LCD_PANEL_QVGA_GPIO); | ||
45 | goto err0; | ||
46 | } | ||
47 | gpio_direction_output(LCD_PANEL_QVGA_GPIO, 1); | ||
48 | |||
49 | return; | ||
50 | err0: | ||
51 | gpio_free(lcd_panel_reset_gpio); | ||
52 | } | ||
53 | |||
54 | static int zoom_panel_enable_lcd(struct omap_dss_device *dssdev) | ||
55 | { | ||
56 | return 0; | ||
57 | } | ||
58 | |||
59 | static void zoom_panel_disable_lcd(struct omap_dss_device *dssdev) | ||
60 | { | ||
61 | } | ||
62 | |||
63 | /* | ||
64 | * PWMA/B register offsets (TWL4030_MODULE_PWMA) | ||
65 | */ | ||
66 | #define TWL_INTBR_PMBR1 0xD | ||
67 | #define TWL_INTBR_GPBR1 0xC | ||
68 | #define TWL_LED_PWMON 0x0 | ||
69 | #define TWL_LED_PWMOFF 0x1 | ||
70 | |||
71 | static int zoom_set_bl_intensity(struct omap_dss_device *dssdev, int level) | ||
72 | { | ||
73 | unsigned char c; | ||
74 | u8 mux_pwm, enb_pwm; | ||
75 | |||
76 | if (level > 100) | ||
77 | return -1; | ||
78 | |||
79 | twl_i2c_read_u8(TWL4030_MODULE_INTBR, &mux_pwm, TWL_INTBR_PMBR1); | ||
80 | twl_i2c_read_u8(TWL4030_MODULE_INTBR, &enb_pwm, TWL_INTBR_GPBR1); | ||
81 | |||
82 | if (level == 0) { | ||
83 | /* disable pwm1 output and clock */ | ||
84 | enb_pwm = enb_pwm & 0xF5; | ||
85 | /* change pwm1 pin to gpio pin */ | ||
86 | mux_pwm = mux_pwm & 0xCF; | ||
87 | twl_i2c_write_u8(TWL4030_MODULE_INTBR, | ||
88 | enb_pwm, TWL_INTBR_GPBR1); | ||
89 | twl_i2c_write_u8(TWL4030_MODULE_INTBR, | ||
90 | mux_pwm, TWL_INTBR_PMBR1); | ||
91 | return 0; | ||
92 | } | ||
93 | |||
94 | if (!((enb_pwm & 0xA) && (mux_pwm & 0x30))) { | ||
95 | /* change gpio pin to pwm1 pin */ | ||
96 | mux_pwm = mux_pwm | 0x30; | ||
97 | /* enable pwm1 output and clock*/ | ||
98 | enb_pwm = enb_pwm | 0x0A; | ||
99 | twl_i2c_write_u8(TWL4030_MODULE_INTBR, | ||
100 | mux_pwm, TWL_INTBR_PMBR1); | ||
101 | twl_i2c_write_u8(TWL4030_MODULE_INTBR, | ||
102 | enb_pwm, TWL_INTBR_GPBR1); | ||
103 | } | ||
104 | |||
105 | c = ((50 * (100 - level)) / 100) + 1; | ||
106 | twl_i2c_write_u8(TWL4030_MODULE_PWM1, 0x7F, TWL_LED_PWMOFF); | ||
107 | twl_i2c_write_u8(TWL4030_MODULE_PWM1, c, TWL_LED_PWMON); | ||
108 | |||
109 | return 0; | ||
110 | } | ||
111 | |||
112 | static struct omap_dss_device zoom_lcd_device = { | ||
113 | .name = "lcd", | ||
114 | .driver_name = "NEC_8048_panel", | ||
115 | .type = OMAP_DISPLAY_TYPE_DPI, | ||
116 | .phy.dpi.data_lines = 24, | ||
117 | .platform_enable = zoom_panel_enable_lcd, | ||
118 | .platform_disable = zoom_panel_disable_lcd, | ||
119 | .max_backlight_level = 100, | ||
120 | .set_backlight = zoom_set_bl_intensity, | ||
121 | }; | ||
122 | |||
123 | static struct omap_dss_device *zoom_dss_devices[] = { | ||
124 | &zoom_lcd_device, | ||
125 | }; | ||
126 | |||
127 | static struct omap_dss_board_info zoom_dss_data = { | ||
128 | .num_devices = ARRAY_SIZE(zoom_dss_devices), | ||
129 | .devices = zoom_dss_devices, | ||
130 | .default_device = &zoom_lcd_device, | ||
131 | }; | ||
132 | |||
133 | static struct platform_device zoom_dss_device = { | ||
134 | .name = "omapdss", | ||
135 | .id = -1, | ||
136 | .dev = { | ||
137 | .platform_data = &zoom_dss_data, | ||
138 | }, | ||
139 | }; | ||
140 | |||
141 | static struct omap2_mcspi_device_config dss_lcd_mcspi_config = { | ||
142 | .turbo_mode = 1, | ||
143 | .single_channel = 1, /* 0: slave, 1: master */ | ||
144 | }; | ||
145 | |||
146 | static struct spi_board_info nec_8048_spi_board_info[] __initdata = { | ||
147 | [0] = { | ||
148 | .modalias = "nec_8048_spi", | ||
149 | .bus_num = 1, | ||
150 | .chip_select = 2, | ||
151 | .max_speed_hz = 375000, | ||
152 | .controller_data = &dss_lcd_mcspi_config, | ||
153 | }, | ||
154 | }; | ||
155 | |||
156 | static struct platform_device *zoom_display_devices[] __initdata = { | ||
157 | &zoom_dss_device, | ||
158 | }; | ||
159 | |||
160 | void __init zoom_display_init(void) | ||
161 | { | ||
162 | platform_add_devices(zoom_display_devices, | ||
163 | ARRAY_SIZE(zoom_display_devices)); | ||
164 | spi_register_board_info(nec_8048_spi_board_info, | ||
165 | ARRAY_SIZE(nec_8048_spi_board_info)); | ||
166 | zoom_lcd_panel_init(); | ||
167 | } | ||
168 | |||
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index 3fbd0edd712e..e0e040f34c68 100644 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c | |||
@@ -35,6 +35,8 @@ | |||
35 | #define OMAP_ZOOM_WLAN_PMENA_GPIO (101) | 35 | #define OMAP_ZOOM_WLAN_PMENA_GPIO (101) |
36 | #define OMAP_ZOOM_WLAN_IRQ_GPIO (162) | 36 | #define OMAP_ZOOM_WLAN_IRQ_GPIO (162) |
37 | 37 | ||
38 | #define LCD_PANEL_ENABLE_GPIO (7 + OMAP_MAX_GPIO_LINES) | ||
39 | |||
38 | /* Zoom2 has Qwerty keyboard*/ | 40 | /* Zoom2 has Qwerty keyboard*/ |
39 | static uint32_t board_keymap[] = { | 41 | static uint32_t board_keymap[] = { |
40 | KEY(0, 0, KEY_E), | 42 | KEY(0, 0, KEY_E), |
@@ -190,7 +192,7 @@ static struct platform_device omap_vwlan_device = { | |||
190 | }, | 192 | }, |
191 | }; | 193 | }; |
192 | 194 | ||
193 | struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { | 195 | static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { |
194 | .irq = OMAP_GPIO_IRQ(OMAP_ZOOM_WLAN_IRQ_GPIO), | 196 | .irq = OMAP_GPIO_IRQ(OMAP_ZOOM_WLAN_IRQ_GPIO), |
195 | /* ZOOM ref clock is 26 MHz */ | 197 | /* ZOOM ref clock is 26 MHz */ |
196 | .board_ref_clock = 1, | 198 | .board_ref_clock = 1, |
@@ -224,9 +226,43 @@ static struct omap2_hsmmc_info mmc[] = { | |||
224 | {} /* Terminator */ | 226 | {} /* Terminator */ |
225 | }; | 227 | }; |
226 | 228 | ||
229 | static struct regulator_consumer_supply zoom_vpll2_supply = | ||
230 | REGULATOR_SUPPLY("vdds_dsi", "omapdss"); | ||
231 | |||
232 | static struct regulator_consumer_supply zoom_vdda_dac_supply = | ||
233 | REGULATOR_SUPPLY("vdda_dac", "omapdss"); | ||
234 | |||
235 | static struct regulator_init_data zoom_vpll2 = { | ||
236 | .constraints = { | ||
237 | .min_uV = 1800000, | ||
238 | .max_uV = 1800000, | ||
239 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
240 | | REGULATOR_MODE_STANDBY, | ||
241 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
242 | | REGULATOR_CHANGE_STATUS, | ||
243 | }, | ||
244 | .num_consumer_supplies = 1, | ||
245 | .consumer_supplies = &zoom_vpll2_supply, | ||
246 | }; | ||
247 | |||
248 | static struct regulator_init_data zoom_vdac = { | ||
249 | .constraints = { | ||
250 | .min_uV = 1800000, | ||
251 | .max_uV = 1800000, | ||
252 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
253 | | REGULATOR_MODE_STANDBY, | ||
254 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
255 | | REGULATOR_CHANGE_STATUS, | ||
256 | }, | ||
257 | .num_consumer_supplies = 1, | ||
258 | .consumer_supplies = &zoom_vdda_dac_supply, | ||
259 | }; | ||
260 | |||
227 | static int zoom_twl_gpio_setup(struct device *dev, | 261 | static int zoom_twl_gpio_setup(struct device *dev, |
228 | unsigned gpio, unsigned ngpio) | 262 | unsigned gpio, unsigned ngpio) |
229 | { | 263 | { |
264 | int ret; | ||
265 | |||
230 | /* gpio + 0 is "mmc0_cd" (input/IRQ) */ | 266 | /* gpio + 0 is "mmc0_cd" (input/IRQ) */ |
231 | mmc[0].gpio_cd = gpio + 0; | 267 | mmc[0].gpio_cd = gpio + 0; |
232 | omap2_hsmmc_init(mmc); | 268 | omap2_hsmmc_init(mmc); |
@@ -238,11 +274,19 @@ static int zoom_twl_gpio_setup(struct device *dev, | |||
238 | zoom_vsim_supply.dev = mmc[0].dev; | 274 | zoom_vsim_supply.dev = mmc[0].dev; |
239 | zoom_vmmc2_supply.dev = mmc[1].dev; | 275 | zoom_vmmc2_supply.dev = mmc[1].dev; |
240 | 276 | ||
241 | return 0; | 277 | ret = gpio_request(LCD_PANEL_ENABLE_GPIO, "lcd enable"); |
278 | if (ret) { | ||
279 | pr_err("Failed to get LCD_PANEL_ENABLE_GPIO (gpio%d).\n", | ||
280 | LCD_PANEL_ENABLE_GPIO); | ||
281 | return ret; | ||
282 | } | ||
283 | gpio_direction_output(LCD_PANEL_ENABLE_GPIO, 0); | ||
284 | |||
285 | return ret; | ||
242 | } | 286 | } |
243 | 287 | ||
244 | /* EXTMUTE callback function */ | 288 | /* EXTMUTE callback function */ |
245 | void zoom2_set_hs_extmute(int mute) | 289 | static void zoom2_set_hs_extmute(int mute) |
246 | { | 290 | { |
247 | gpio_set_value(ZOOM2_HEADSET_EXTMUTE_GPIO, mute); | 291 | gpio_set_value(ZOOM2_HEADSET_EXTMUTE_GPIO, mute); |
248 | } | 292 | } |
@@ -301,7 +345,8 @@ static struct twl4030_platform_data zoom_twldata = { | |||
301 | .vmmc1 = &zoom_vmmc1, | 345 | .vmmc1 = &zoom_vmmc1, |
302 | .vmmc2 = &zoom_vmmc2, | 346 | .vmmc2 = &zoom_vmmc2, |
303 | .vsim = &zoom_vsim, | 347 | .vsim = &zoom_vsim, |
304 | 348 | .vpll2 = &zoom_vpll2, | |
349 | .vdac = &zoom_vdac, | ||
305 | }; | 350 | }; |
306 | 351 | ||
307 | static struct i2c_board_info __initdata zoom_i2c_boardinfo[] = { | 352 | static struct i2c_board_info __initdata zoom_i2c_boardinfo[] = { |
diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-omap2/board-zoom.c index e041c537ea37..e26754c24ee8 100644 --- a/arch/arm/mach-omap2/board-zoom.c +++ b/arch/arm/mach-omap2/board-zoom.c | |||
@@ -130,6 +130,7 @@ static void __init omap_zoom_init(void) | |||
130 | ARRAY_SIZE(zoom_nand_partitions), ZOOM_NAND_CS); | 130 | ARRAY_SIZE(zoom_nand_partitions), ZOOM_NAND_CS); |
131 | zoom_debugboard_init(); | 131 | zoom_debugboard_init(); |
132 | zoom_peripherals_init(); | 132 | zoom_peripherals_init(); |
133 | zoom_display_init(); | ||
133 | } | 134 | } |
134 | 135 | ||
135 | MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") | 136 | MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") |
diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-omap2/clock3xxx_data.c index d3ab1c9e50b0..403a4a1d3f9c 100644 --- a/arch/arm/mach-omap2/clock3xxx_data.c +++ b/arch/arm/mach-omap2/clock3xxx_data.c | |||
@@ -3286,7 +3286,7 @@ static struct omap_clk omap3xxx_clks[] = { | |||
3286 | CLK(NULL, "cpefuse_fck", &cpefuse_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX), | 3286 | CLK(NULL, "cpefuse_fck", &cpefuse_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX), |
3287 | CLK(NULL, "ts_fck", &ts_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX), | 3287 | CLK(NULL, "ts_fck", &ts_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX), |
3288 | CLK(NULL, "usbtll_fck", &usbtll_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX), | 3288 | CLK(NULL, "usbtll_fck", &usbtll_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX), |
3289 | CLK("ehci-omap.0", "usbtll_fck", &usbtll_fck, CK_3430ES2 | CK_AM35XX), | 3289 | CLK("ehci-omap.0", "usbtll_fck", &usbtll_fck, CK_3430ES2PLUS | CK_AM35XX | CK_36XX), |
3290 | CLK("omap-mcbsp.1", "prcm_fck", &core_96m_fck, CK_3XXX), | 3290 | CLK("omap-mcbsp.1", "prcm_fck", &core_96m_fck, CK_3XXX), |
3291 | CLK("omap-mcbsp.5", "prcm_fck", &core_96m_fck, CK_3XXX), | 3291 | CLK("omap-mcbsp.5", "prcm_fck", &core_96m_fck, CK_3XXX), |
3292 | CLK(NULL, "core_96m_fck", &core_96m_fck, CK_3XXX), | 3292 | CLK(NULL, "core_96m_fck", &core_96m_fck, CK_3XXX), |
diff --git a/arch/arm/mach-omap2/clockdomain.h b/arch/arm/mach-omap2/clockdomain.h index de3faa20b46b..9b459c26fb85 100644 --- a/arch/arm/mach-omap2/clockdomain.h +++ b/arch/arm/mach-omap2/clockdomain.h | |||
@@ -103,9 +103,7 @@ struct clockdomain { | |||
103 | const char *name; | 103 | const char *name; |
104 | struct powerdomain *ptr; | 104 | struct powerdomain *ptr; |
105 | } pwrdm; | 105 | } pwrdm; |
106 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) | ||
107 | const u16 clktrctrl_mask; | 106 | const u16 clktrctrl_mask; |
108 | #endif | ||
109 | const u8 flags; | 107 | const u8 flags; |
110 | const u8 dep_bit; | 108 | const u8 dep_bit; |
111 | const u8 prcm_partition; | 109 | const u8 prcm_partition; |
diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c index f3e043fe5eb8..f7b22a16f385 100644 --- a/arch/arm/mach-omap2/cpuidle34xx.c +++ b/arch/arm/mach-omap2/cpuidle34xx.c | |||
@@ -47,6 +47,8 @@ | |||
47 | 47 | ||
48 | #define OMAP3_STATE_MAX OMAP3_STATE_C7 | 48 | #define OMAP3_STATE_MAX OMAP3_STATE_C7 |
49 | 49 | ||
50 | #define CPUIDLE_FLAG_CHECK_BM 0x10000 /* use omap3_enter_idle_bm() */ | ||
51 | |||
50 | struct omap3_processor_cx { | 52 | struct omap3_processor_cx { |
51 | u8 valid; | 53 | u8 valid; |
52 | u8 type; | 54 | u8 type; |
@@ -252,7 +254,7 @@ static int omap3_enter_idle_bm(struct cpuidle_device *dev, | |||
252 | * FIXME: we currently manage device-specific idle states | 254 | * FIXME: we currently manage device-specific idle states |
253 | * for PER and CORE in combination with CPU-specific | 255 | * for PER and CORE in combination with CPU-specific |
254 | * idle states. This is wrong, and device-specific | 256 | * idle states. This is wrong, and device-specific |
255 | * idle managment needs to be separated out into | 257 | * idle management needs to be separated out into |
256 | * its own code. | 258 | * its own code. |
257 | */ | 259 | */ |
258 | 260 | ||
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 381f4eb92352..2c9c912f2c42 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -978,7 +978,7 @@ static int __init omap2_init_devices(void) | |||
978 | arch_initcall(omap2_init_devices); | 978 | arch_initcall(omap2_init_devices); |
979 | 979 | ||
980 | #if defined(CONFIG_OMAP_WATCHDOG) || defined(CONFIG_OMAP_WATCHDOG_MODULE) | 980 | #if defined(CONFIG_OMAP_WATCHDOG) || defined(CONFIG_OMAP_WATCHDOG_MODULE) |
981 | struct omap_device_pm_latency omap_wdt_latency[] = { | 981 | static struct omap_device_pm_latency omap_wdt_latency[] = { |
982 | [0] = { | 982 | [0] = { |
983 | .deactivate_func = omap_device_idle_hwmods, | 983 | .deactivate_func = omap_device_idle_hwmods, |
984 | .activate_func = omap_device_enable_hwmods, | 984 | .activate_func = omap_device_enable_hwmods, |
diff --git a/arch/arm/mach-omap2/include/mach/board-zoom.h b/arch/arm/mach-omap2/include/mach/board-zoom.h index f93ca3928c3b..d20bd9c1a106 100644 --- a/arch/arm/mach-omap2/include/mach/board-zoom.h +++ b/arch/arm/mach-omap2/include/mach/board-zoom.h | |||
@@ -1,9 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * Defines for zoom boards | 2 | * Defines for zoom boards |
3 | */ | 3 | */ |
4 | #include <plat/display.h> | ||
5 | |||
4 | #define ZOOM_NAND_CS 0 | 6 | #define ZOOM_NAND_CS 0 |
5 | 7 | ||
6 | extern int __init zoom_debugboard_init(void); | 8 | extern int __init zoom_debugboard_init(void); |
7 | extern void __init zoom_peripherals_init(void); | 9 | extern void __init zoom_peripherals_init(void); |
10 | extern void __init zoom_display_init(void); | ||
8 | 11 | ||
9 | #define ZOOM2_HEADSET_EXTMUTE_GPIO 153 | 12 | #define ZOOM2_HEADSET_EXTMUTE_GPIO 153 |
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 17bd6394d224..df8d2f2872c6 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c | |||
@@ -893,7 +893,7 @@ static struct omap_mux * __init omap_mux_list_add( | |||
893 | return NULL; | 893 | return NULL; |
894 | 894 | ||
895 | m = &entry->mux; | 895 | m = &entry->mux; |
896 | memcpy(m, src, sizeof(struct omap_mux_entry)); | 896 | entry->mux = *src; |
897 | 897 | ||
898 | #ifdef CONFIG_OMAP_MUX | 898 | #ifdef CONFIG_OMAP_MUX |
899 | if (omap_mux_copy_names(src, m)) { | 899 | if (omap_mux_copy_names(src, m)) { |
diff --git a/arch/arm/mach-omap2/mux34xx.c b/arch/arm/mach-omap2/mux34xx.c index 440c98e9a510..17f80e4ab162 100644 --- a/arch/arm/mach-omap2/mux34xx.c +++ b/arch/arm/mach-omap2/mux34xx.c | |||
@@ -703,7 +703,7 @@ static struct omap_mux __initdata omap3_muxmodes[] = { | |||
703 | * Signals different on CBC package compared to the superset | 703 | * Signals different on CBC package compared to the superset |
704 | */ | 704 | */ |
705 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_OMAP_PACKAGE_CBC) | 705 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_OMAP_PACKAGE_CBC) |
706 | struct omap_mux __initdata omap3_cbc_subset[] = { | 706 | static struct omap_mux __initdata omap3_cbc_subset[] = { |
707 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 707 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
708 | }; | 708 | }; |
709 | #else | 709 | #else |
@@ -721,7 +721,7 @@ struct omap_mux __initdata omap3_cbc_subset[] = { | |||
721 | */ | 721 | */ |
722 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS) \ | 722 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS) \ |
723 | && defined(CONFIG_OMAP_PACKAGE_CBC) | 723 | && defined(CONFIG_OMAP_PACKAGE_CBC) |
724 | struct omap_ball __initdata omap3_cbc_ball[] = { | 724 | static struct omap_ball __initdata omap3_cbc_ball[] = { |
725 | _OMAP3_BALLENTRY(CAM_D0, "ae16", NULL), | 725 | _OMAP3_BALLENTRY(CAM_D0, "ae16", NULL), |
726 | _OMAP3_BALLENTRY(CAM_D1, "ae15", NULL), | 726 | _OMAP3_BALLENTRY(CAM_D1, "ae15", NULL), |
727 | _OMAP3_BALLENTRY(CAM_D10, "d25", NULL), | 727 | _OMAP3_BALLENTRY(CAM_D10, "d25", NULL), |
diff --git a/arch/arm/mach-omap2/mux44xx.c b/arch/arm/mach-omap2/mux44xx.c index 980f11d45c79..c322e7bdaa17 100644 --- a/arch/arm/mach-omap2/mux44xx.c +++ b/arch/arm/mach-omap2/mux44xx.c | |||
@@ -544,7 +544,7 @@ static struct omap_mux __initdata omap4_core_muxmodes[] = { | |||
544 | */ | 544 | */ |
545 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS) \ | 545 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS) \ |
546 | && defined(CONFIG_OMAP_PACKAGE_CBL) | 546 | && defined(CONFIG_OMAP_PACKAGE_CBL) |
547 | struct omap_ball __initdata omap4_core_cbl_ball[] = { | 547 | static struct omap_ball __initdata omap4_core_cbl_ball[] = { |
548 | _OMAP4_BALLENTRY(GPMC_AD0, "c12", NULL), | 548 | _OMAP4_BALLENTRY(GPMC_AD0, "c12", NULL), |
549 | _OMAP4_BALLENTRY(GPMC_AD1, "d12", NULL), | 549 | _OMAP4_BALLENTRY(GPMC_AD1, "d12", NULL), |
550 | _OMAP4_BALLENTRY(GPMC_AD2, "c13", NULL), | 550 | _OMAP4_BALLENTRY(GPMC_AD2, "c13", NULL), |
@@ -1262,7 +1262,7 @@ static struct omap_mux __initdata omap4_es2_core_muxmodes[] = { | |||
1262 | */ | 1262 | */ |
1263 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS) \ | 1263 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS) \ |
1264 | && defined(CONFIG_OMAP_PACKAGE_CBS) | 1264 | && defined(CONFIG_OMAP_PACKAGE_CBS) |
1265 | struct omap_ball __initdata omap4_core_cbs_ball[] = { | 1265 | static struct omap_ball __initdata omap4_core_cbs_ball[] = { |
1266 | _OMAP4_BALLENTRY(GPMC_AD0, "c12", NULL), | 1266 | _OMAP4_BALLENTRY(GPMC_AD0, "c12", NULL), |
1267 | _OMAP4_BALLENTRY(GPMC_AD1, "d12", NULL), | 1267 | _OMAP4_BALLENTRY(GPMC_AD1, "d12", NULL), |
1268 | _OMAP4_BALLENTRY(GPMC_AD2, "c13", NULL), | 1268 | _OMAP4_BALLENTRY(GPMC_AD2, "c13", NULL), |
@@ -1546,7 +1546,7 @@ static struct omap_mux __initdata omap4_wkup_muxmodes[] = { | |||
1546 | */ | 1546 | */ |
1547 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS) \ | 1547 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS) \ |
1548 | && defined(CONFIG_OMAP_PACKAGE_CBL) | 1548 | && defined(CONFIG_OMAP_PACKAGE_CBL) |
1549 | struct omap_ball __initdata omap4_wkup_cbl_cbs_ball[] = { | 1549 | static struct omap_ball __initdata omap4_wkup_cbl_cbs_ball[] = { |
1550 | _OMAP4_BALLENTRY(SIM_IO, "h4", NULL), | 1550 | _OMAP4_BALLENTRY(SIM_IO, "h4", NULL), |
1551 | _OMAP4_BALLENTRY(SIM_CLK, "j2", NULL), | 1551 | _OMAP4_BALLENTRY(SIM_CLK, "j2", NULL), |
1552 | _OMAP4_BALLENTRY(SIM_RESET, "g2", NULL), | 1552 | _OMAP4_BALLENTRY(SIM_RESET, "g2", NULL), |
diff --git a/arch/arm/mach-omap2/omap_twl.c b/arch/arm/mach-omap2/omap_twl.c index 15f8c6c1bb0f..00e1d2b53683 100644 --- a/arch/arm/mach-omap2/omap_twl.c +++ b/arch/arm/mach-omap2/omap_twl.c | |||
@@ -20,6 +20,8 @@ | |||
20 | 20 | ||
21 | #include <plat/voltage.h> | 21 | #include <plat/voltage.h> |
22 | 22 | ||
23 | #include "pm.h" | ||
24 | |||
23 | #define OMAP3_SRI2C_SLAVE_ADDR 0x12 | 25 | #define OMAP3_SRI2C_SLAVE_ADDR 0x12 |
24 | #define OMAP3_VDD_MPU_SR_CONTROL_REG 0x00 | 26 | #define OMAP3_VDD_MPU_SR_CONTROL_REG 0x00 |
25 | #define OMAP3_VDD_CORE_SR_CONTROL_REG 0x01 | 27 | #define OMAP3_VDD_CORE_SR_CONTROL_REG 0x01 |
@@ -60,17 +62,17 @@ static u8 smps_offset; | |||
60 | 62 | ||
61 | #define REG_SMPS_OFFSET 0xE0 | 63 | #define REG_SMPS_OFFSET 0xE0 |
62 | 64 | ||
63 | unsigned long twl4030_vsel_to_uv(const u8 vsel) | 65 | static unsigned long twl4030_vsel_to_uv(const u8 vsel) |
64 | { | 66 | { |
65 | return (((vsel * 125) + 6000)) * 100; | 67 | return (((vsel * 125) + 6000)) * 100; |
66 | } | 68 | } |
67 | 69 | ||
68 | u8 twl4030_uv_to_vsel(unsigned long uv) | 70 | static u8 twl4030_uv_to_vsel(unsigned long uv) |
69 | { | 71 | { |
70 | return DIV_ROUND_UP(uv - 600000, 12500); | 72 | return DIV_ROUND_UP(uv - 600000, 12500); |
71 | } | 73 | } |
72 | 74 | ||
73 | unsigned long twl6030_vsel_to_uv(const u8 vsel) | 75 | static unsigned long twl6030_vsel_to_uv(const u8 vsel) |
74 | { | 76 | { |
75 | /* | 77 | /* |
76 | * In TWL6030 depending on the value of SMPS_OFFSET | 78 | * In TWL6030 depending on the value of SMPS_OFFSET |
@@ -102,7 +104,7 @@ unsigned long twl6030_vsel_to_uv(const u8 vsel) | |||
102 | return ((((vsel - 1) * 125) + 6000)) * 100; | 104 | return ((((vsel - 1) * 125) + 6000)) * 100; |
103 | } | 105 | } |
104 | 106 | ||
105 | u8 twl6030_uv_to_vsel(unsigned long uv) | 107 | static u8 twl6030_uv_to_vsel(unsigned long uv) |
106 | { | 108 | { |
107 | /* | 109 | /* |
108 | * In TWL6030 depending on the value of SMPS_OFFSET | 110 | * In TWL6030 depending on the value of SMPS_OFFSET |
diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c index dac2d1d9987d..9e5dc8ed51e9 100644 --- a/arch/arm/mach-omap2/pm24xx.c +++ b/arch/arm/mach-omap2/pm24xx.c | |||
@@ -350,7 +350,7 @@ static void omap2_pm_end(void) | |||
350 | enable_hlt(); | 350 | enable_hlt(); |
351 | } | 351 | } |
352 | 352 | ||
353 | static struct platform_suspend_ops omap_pm_ops = { | 353 | static const struct platform_suspend_ops omap_pm_ops = { |
354 | .begin = omap2_pm_begin, | 354 | .begin = omap2_pm_begin, |
355 | .enter = omap2_pm_enter, | 355 | .enter = omap2_pm_enter, |
356 | .end = omap2_pm_end, | 356 | .end = omap2_pm_end, |
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 5b323f28da2d..8cbbeade4b8a 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -605,7 +605,7 @@ static void omap3_pm_end(void) | |||
605 | return; | 605 | return; |
606 | } | 606 | } |
607 | 607 | ||
608 | static struct platform_suspend_ops omap_pm_ops = { | 608 | static const struct platform_suspend_ops omap_pm_ops = { |
609 | .begin = omap3_pm_begin, | 609 | .begin = omap3_pm_begin, |
610 | .end = omap3_pm_end, | 610 | .end = omap3_pm_end, |
611 | .enter = omap3_pm_enter, | 611 | .enter = omap3_pm_enter, |
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c index e9f4862c4de4..76cfff2db514 100644 --- a/arch/arm/mach-omap2/pm44xx.c +++ b/arch/arm/mach-omap2/pm44xx.c | |||
@@ -65,7 +65,7 @@ static void omap4_pm_end(void) | |||
65 | return; | 65 | return; |
66 | } | 66 | } |
67 | 67 | ||
68 | static struct platform_suspend_ops omap_pm_ops = { | 68 | static const struct platform_suspend_ops omap_pm_ops = { |
69 | .begin = omap4_pm_begin, | 69 | .begin = omap4_pm_begin, |
70 | .end = omap4_pm_end, | 70 | .end = omap4_pm_end, |
71 | .enter = omap4_pm_enter, | 71 | .enter = omap4_pm_enter, |
diff --git a/arch/arm/mach-omap2/pm_bus.c b/arch/arm/mach-omap2/pm_bus.c index 784989f8f2f5..5acd2ab298b1 100644 --- a/arch/arm/mach-omap2/pm_bus.c +++ b/arch/arm/mach-omap2/pm_bus.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <plat/omap-pm.h> | 20 | #include <plat/omap-pm.h> |
21 | 21 | ||
22 | #ifdef CONFIG_PM_RUNTIME | 22 | #ifdef CONFIG_PM_RUNTIME |
23 | int omap_pm_runtime_suspend(struct device *dev) | 23 | static int omap_pm_runtime_suspend(struct device *dev) |
24 | { | 24 | { |
25 | struct platform_device *pdev = to_platform_device(dev); | 25 | struct platform_device *pdev = to_platform_device(dev); |
26 | int r, ret = 0; | 26 | int r, ret = 0; |
@@ -37,7 +37,7 @@ int omap_pm_runtime_suspend(struct device *dev) | |||
37 | return ret; | 37 | return ret; |
38 | }; | 38 | }; |
39 | 39 | ||
40 | int omap_pm_runtime_resume(struct device *dev) | 40 | static int omap_pm_runtime_resume(struct device *dev) |
41 | { | 41 | { |
42 | struct platform_device *pdev = to_platform_device(dev); | 42 | struct platform_device *pdev = to_platform_device(dev); |
43 | int r; | 43 | int r; |
diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.h b/arch/arm/mach-omap2/prm2xxx_3xxx.h index 53d44f6e3736..49654c8d18f5 100644 --- a/arch/arm/mach-omap2/prm2xxx_3xxx.h +++ b/arch/arm/mach-omap2/prm2xxx_3xxx.h | |||
@@ -228,7 +228,67 @@ | |||
228 | 228 | ||
229 | 229 | ||
230 | #ifndef __ASSEMBLER__ | 230 | #ifndef __ASSEMBLER__ |
231 | 231 | /* | |
232 | * Stub omap2xxx/omap3xxx functions so that common files | ||
233 | * continue to build when custom builds are used | ||
234 | */ | ||
235 | #if defined(CONFIG_ARCH_OMAP4) && !(defined(CONFIG_ARCH_OMAP2) || \ | ||
236 | defined(CONFIG_ARCH_OMAP3)) | ||
237 | static inline u32 omap2_prm_read_mod_reg(s16 module, u16 idx) | ||
238 | { | ||
239 | WARN(1, "prm: omap2xxx/omap3xxx specific function and " | ||
240 | "not suppose to be used on omap4\n"); | ||
241 | return 0; | ||
242 | } | ||
243 | static inline void omap2_prm_write_mod_reg(u32 val, s16 module, u16 idx) | ||
244 | { | ||
245 | WARN(1, "prm: omap2xxx/omap3xxx specific function and " | ||
246 | "not suppose to be used on omap4\n"); | ||
247 | } | ||
248 | static inline u32 omap2_prm_rmw_mod_reg_bits(u32 mask, u32 bits, | ||
249 | s16 module, s16 idx) | ||
250 | { | ||
251 | WARN(1, "prm: omap2xxx/omap3xxx specific function and " | ||
252 | "not suppose to be used on omap4\n"); | ||
253 | return 0; | ||
254 | } | ||
255 | static inline u32 omap2_prm_set_mod_reg_bits(u32 bits, s16 module, s16 idx) | ||
256 | { | ||
257 | WARN(1, "prm: omap2xxx/omap3xxx specific function and " | ||
258 | "not suppose to be used on omap4\n"); | ||
259 | return 0; | ||
260 | } | ||
261 | static inline u32 omap2_prm_clear_mod_reg_bits(u32 bits, s16 module, s16 idx) | ||
262 | { | ||
263 | WARN(1, "prm: omap2xxx/omap3xxx specific function and " | ||
264 | "not suppose to be used on omap4\n"); | ||
265 | return 0; | ||
266 | } | ||
267 | static inline u32 omap2_prm_read_mod_bits_shift(s16 domain, s16 idx, u32 mask) | ||
268 | { | ||
269 | WARN(1, "prm: omap2xxx/omap3xxx specific function and " | ||
270 | "not suppose to be used on omap4\n"); | ||
271 | return 0; | ||
272 | } | ||
273 | static inline int omap2_prm_is_hardreset_asserted(s16 prm_mod, u8 shift) | ||
274 | { | ||
275 | WARN(1, "prm: omap2xxx/omap3xxx specific function and " | ||
276 | "not suppose to be used on omap4\n"); | ||
277 | return 0; | ||
278 | } | ||
279 | static inline int omap2_prm_assert_hardreset(s16 prm_mod, u8 shift) | ||
280 | { | ||
281 | WARN(1, "prm: omap2xxx/omap3xxx specific function and " | ||
282 | "not suppose to be used on omap4\n"); | ||
283 | return 0; | ||
284 | } | ||
285 | static inline int omap2_prm_deassert_hardreset(s16 prm_mod, u8 shift) | ||
286 | { | ||
287 | WARN(1, "prm: omap2xxx/omap3xxx specific function and " | ||
288 | "not suppose to be used on omap4\n"); | ||
289 | return 0; | ||
290 | } | ||
291 | #else | ||
232 | /* Power/reset management domain register get/set */ | 292 | /* Power/reset management domain register get/set */ |
233 | extern u32 omap2_prm_read_mod_reg(s16 module, u16 idx); | 293 | extern u32 omap2_prm_read_mod_reg(s16 module, u16 idx); |
234 | extern void omap2_prm_write_mod_reg(u32 val, s16 module, u16 idx); | 294 | extern void omap2_prm_write_mod_reg(u32 val, s16 module, u16 idx); |
@@ -242,6 +302,7 @@ extern int omap2_prm_is_hardreset_asserted(s16 prm_mod, u8 shift); | |||
242 | extern int omap2_prm_assert_hardreset(s16 prm_mod, u8 shift); | 302 | extern int omap2_prm_assert_hardreset(s16 prm_mod, u8 shift); |
243 | extern int omap2_prm_deassert_hardreset(s16 prm_mod, u8 shift); | 303 | extern int omap2_prm_deassert_hardreset(s16 prm_mod, u8 shift); |
244 | 304 | ||
305 | #endif /* CONFIG_ARCH_OMAP4 */ | ||
245 | #endif | 306 | #endif |
246 | 307 | ||
247 | /* | 308 | /* |
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index c64578853a8d..302da7403a10 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
@@ -852,7 +852,7 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | |||
852 | } | 852 | } |
853 | 853 | ||
854 | /** | 854 | /** |
855 | * omap_serial_init() - intialize all supported serial ports | 855 | * omap_serial_init() - initialize all supported serial ports |
856 | * | 856 | * |
857 | * Initializes all available UARTs as serial ports. Platforms | 857 | * Initializes all available UARTs as serial ports. Platforms |
858 | * can call this function when they want to have default behaviour | 858 | * can call this function when they want to have default behaviour |
diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c index 786d685c09a9..b1e0af18a26a 100644 --- a/arch/arm/mach-omap2/sr_device.c +++ b/arch/arm/mach-omap2/sr_device.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <plat/voltage.h> | 27 | #include <plat/voltage.h> |
28 | 28 | ||
29 | #include "control.h" | 29 | #include "control.h" |
30 | #include "pm.h" | ||
30 | 31 | ||
31 | static bool sr_enable_on_init; | 32 | static bool sr_enable_on_init; |
32 | 33 | ||
diff --git a/arch/arm/mach-omap2/wd_timer.c b/arch/arm/mach-omap2/wd_timer.c index b0c4907ab3ca..4067669d96c4 100644 --- a/arch/arm/mach-omap2/wd_timer.c +++ b/arch/arm/mach-omap2/wd_timer.c | |||
@@ -13,6 +13,8 @@ | |||
13 | 13 | ||
14 | #include <plat/omap_hwmod.h> | 14 | #include <plat/omap_hwmod.h> |
15 | 15 | ||
16 | #include "wd_timer.h" | ||
17 | |||
16 | /* | 18 | /* |
17 | * In order to avoid any assumptions from bootloader regarding WDT | 19 | * In order to avoid any assumptions from bootloader regarding WDT |
18 | * settings, WDT module is reset during init. This enables the watchdog | 20 | * settings, WDT module is reset during init. This enables the watchdog |
diff --git a/arch/arm/mach-pnx4008/pm.c b/arch/arm/mach-pnx4008/pm.c index ee3c29c57ae3..f3e60a049f98 100644 --- a/arch/arm/mach-pnx4008/pm.c +++ b/arch/arm/mach-pnx4008/pm.c | |||
@@ -119,7 +119,7 @@ static int pnx4008_pm_valid(suspend_state_t state) | |||
119 | (state == PM_SUSPEND_MEM); | 119 | (state == PM_SUSPEND_MEM); |
120 | } | 120 | } |
121 | 121 | ||
122 | static struct platform_suspend_ops pnx4008_pm_ops = { | 122 | static const struct platform_suspend_ops pnx4008_pm_ops = { |
123 | .enter = pnx4008_pm_enter, | 123 | .enter = pnx4008_pm_enter, |
124 | .valid = pnx4008_pm_valid, | 124 | .valid = pnx4008_pm_valid, |
125 | }; | 125 | }; |
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c index d6e15f71fc09..f5d91efc2965 100644 --- a/arch/arm/mach-pxa/generic.c +++ b/arch/arm/mach-pxa/generic.c | |||
@@ -22,7 +22,6 @@ | |||
22 | 22 | ||
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | #include <asm/system.h> | 24 | #include <asm/system.h> |
25 | #include <asm/pgtable.h> | ||
26 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
27 | #include <asm/mach-types.h> | 26 | #include <asm/mach-types.h> |
28 | 27 | ||
diff --git a/arch/arm/mach-pxa/mxm8x10.c b/arch/arm/mach-pxa/mxm8x10.c index 462167ac05f9..cdf7f41e2bb3 100644 --- a/arch/arm/mach-pxa/mxm8x10.c +++ b/arch/arm/mach-pxa/mxm8x10.c | |||
@@ -337,7 +337,7 @@ void __init mxm_8x10_mmc_init(void) | |||
337 | } | 337 | } |
338 | #endif | 338 | #endif |
339 | 339 | ||
340 | /* USB Open Host Controler Interface */ | 340 | /* USB Open Host Controller Interface */ |
341 | static struct pxaohci_platform_data mxm_8x10_ohci_platform_data = { | 341 | static struct pxaohci_platform_data mxm_8x10_ohci_platform_data = { |
342 | .port_mode = PMM_NPS_MODE, | 342 | .port_mode = PMM_NPS_MODE, |
343 | .flags = ENABLE_PORT_ALL | 343 | .flags = ENABLE_PORT_ALL |
diff --git a/arch/arm/mach-pxa/pm.c b/arch/arm/mach-pxa/pm.c index 166c15f62916..978e1b289544 100644 --- a/arch/arm/mach-pxa/pm.c +++ b/arch/arm/mach-pxa/pm.c | |||
@@ -96,7 +96,7 @@ void pxa_pm_finish(void) | |||
96 | pxa_cpu_pm_fns->finish(); | 96 | pxa_cpu_pm_fns->finish(); |
97 | } | 97 | } |
98 | 98 | ||
99 | static struct platform_suspend_ops pxa_pm_ops = { | 99 | static const struct platform_suspend_ops pxa_pm_ops = { |
100 | .valid = pxa_pm_valid, | 100 | .valid = pxa_pm_valid, |
101 | .enter = pxa_pm_enter, | 101 | .enter = pxa_pm_enter, |
102 | .prepare = pxa_pm_prepare, | 102 | .prepare = pxa_pm_prepare, |
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c index e68d46d415f3..785880f67b60 100644 --- a/arch/arm/mach-pxa/sharpsl_pm.c +++ b/arch/arm/mach-pxa/sharpsl_pm.c | |||
@@ -869,7 +869,7 @@ static void sharpsl_apm_get_power_status(struct apm_power_info *info) | |||
869 | } | 869 | } |
870 | 870 | ||
871 | #ifdef CONFIG_PM | 871 | #ifdef CONFIG_PM |
872 | static struct platform_suspend_ops sharpsl_pm_ops = { | 872 | static const struct platform_suspend_ops sharpsl_pm_ops = { |
873 | .prepare = pxa_pm_prepare, | 873 | .prepare = pxa_pm_prepare, |
874 | .finish = pxa_pm_finish, | 874 | .finish = pxa_pm_finish, |
875 | .enter = corgi_pxa_pm_enter, | 875 | .enter = corgi_pxa_pm_enter, |
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index d7ada8c7e41f..1a81fe12ccd7 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
@@ -387,7 +387,7 @@ static struct platform_device *h1940_devices[] __initdata = { | |||
387 | &s3c_device_wdt, | 387 | &s3c_device_wdt, |
388 | &s3c_device_i2c0, | 388 | &s3c_device_i2c0, |
389 | &s3c_device_iis, | 389 | &s3c_device_iis, |
390 | &s3c_device_pcm, | 390 | &samsung_asoc_dma, |
391 | &s3c_device_usbgadget, | 391 | &s3c_device_usbgadget, |
392 | &h1940_device_leds, | 392 | &h1940_device_leds, |
393 | &h1940_device_bluetooth, | 393 | &h1940_device_bluetooth, |
diff --git a/arch/arm/mach-s3c2440/mach-rx1950.c b/arch/arm/mach-s3c2440/mach-rx1950.c index e0622bbb6dfa..eab6ae50683c 100644 --- a/arch/arm/mach-s3c2440/mach-rx1950.c +++ b/arch/arm/mach-s3c2440/mach-rx1950.c | |||
@@ -692,7 +692,7 @@ static struct platform_device *rx1950_devices[] __initdata = { | |||
692 | &s3c_device_wdt, | 692 | &s3c_device_wdt, |
693 | &s3c_device_i2c0, | 693 | &s3c_device_i2c0, |
694 | &s3c_device_iis, | 694 | &s3c_device_iis, |
695 | &s3c_device_pcm, | 695 | &samsung_asoc_dma, |
696 | &s3c_device_usbgadget, | 696 | &s3c_device_usbgadget, |
697 | &s3c_device_rtc, | 697 | &s3c_device_rtc, |
698 | &s3c_device_nand, | 698 | &s3c_device_nand, |
diff --git a/arch/arm/mach-s3c64xx/dev-audio.c b/arch/arm/mach-s3c64xx/dev-audio.c index 7618627b98f5..cad67022fa25 100644 --- a/arch/arm/mach-s3c64xx/dev-audio.c +++ b/arch/arm/mach-s3c64xx/dev-audio.c | |||
@@ -296,7 +296,7 @@ static struct s3c_audio_pdata s3c_ac97_pdata; | |||
296 | static u64 s3c64xx_ac97_dmamask = DMA_BIT_MASK(32); | 296 | static u64 s3c64xx_ac97_dmamask = DMA_BIT_MASK(32); |
297 | 297 | ||
298 | struct platform_device s3c64xx_device_ac97 = { | 298 | struct platform_device s3c64xx_device_ac97 = { |
299 | .name = "s3c-ac97", | 299 | .name = "samsung-ac97", |
300 | .id = -1, | 300 | .id = -1, |
301 | .num_resources = ARRAY_SIZE(s3c64xx_ac97_resource), | 301 | .num_resources = ARRAY_SIZE(s3c64xx_ac97_resource), |
302 | .resource = s3c64xx_ac97_resource, | 302 | .resource = s3c64xx_ac97_resource, |
@@ -315,16 +315,3 @@ void __init s3c64xx_ac97_setup_gpio(int num) | |||
315 | else | 315 | else |
316 | s3c_ac97_pdata.cfg_gpio = s3c64xx_ac97_cfg_gpe; | 316 | s3c_ac97_pdata.cfg_gpio = s3c64xx_ac97_cfg_gpe; |
317 | } | 317 | } |
318 | |||
319 | static u64 s3c_device_audio_dmamask = 0xffffffffUL; | ||
320 | |||
321 | struct platform_device s3c_device_pcm = { | ||
322 | .name = "s3c24xx-pcm-audio", | ||
323 | .id = -1, | ||
324 | .dev = { | ||
325 | .dma_mask = &s3c_device_audio_dmamask, | ||
326 | .coherent_dma_mask = 0xffffffffUL | ||
327 | } | ||
328 | }; | ||
329 | EXPORT_SYMBOL(s3c_device_pcm); | ||
330 | |||
diff --git a/arch/arm/mach-s3c64xx/dma.c b/arch/arm/mach-s3c64xx/dma.c index d9aa072ecee3..135db1b41252 100644 --- a/arch/arm/mach-s3c64xx/dma.c +++ b/arch/arm/mach-s3c64xx/dma.c | |||
@@ -741,7 +741,7 @@ static int __init s3c64xx_dma_init(void) | |||
741 | /* Set all DMA configuration to be DMA, not SDMA */ | 741 | /* Set all DMA configuration to be DMA, not SDMA */ |
742 | writel(0xffffff, S3C_SYSREG(0x110)); | 742 | writel(0xffffff, S3C_SYSREG(0x110)); |
743 | 743 | ||
744 | /* Register standard DMA controlers */ | 744 | /* Register standard DMA controllers */ |
745 | s3c64xx_dma_init1(0, DMACH_UART0, IRQ_DMA0, 0x75000000); | 745 | s3c64xx_dma_init1(0, DMACH_UART0, IRQ_DMA0, 0x75000000); |
746 | s3c64xx_dma_init1(8, DMACH_PCM1_TX, IRQ_DMA1, 0x75100000); | 746 | s3c64xx_dma_init1(8, DMACH_PCM1_TX, IRQ_DMA1, 0x75100000); |
747 | 747 | ||
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c index 77488facfe4c..e85192a86fbe 100644 --- a/arch/arm/mach-s3c64xx/mach-smdk6410.c +++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c | |||
@@ -283,7 +283,7 @@ static struct platform_device *smdk6410_devices[] __initdata = { | |||
283 | &s3c_device_fb, | 283 | &s3c_device_fb, |
284 | &s3c_device_ohci, | 284 | &s3c_device_ohci, |
285 | &s3c_device_usb_hsotg, | 285 | &s3c_device_usb_hsotg, |
286 | &s3c_device_pcm, | 286 | &samsung_asoc_dma, |
287 | &s3c64xx_device_iisv4, | 287 | &s3c64xx_device_iisv4, |
288 | &samsung_device_keypad, | 288 | &samsung_device_keypad, |
289 | 289 | ||
diff --git a/arch/arm/mach-s5pc100/dev-audio.c b/arch/arm/mach-s5pc100/dev-audio.c index 10ab275ebd63..ab2d27172cbc 100644 --- a/arch/arm/mach-s5pc100/dev-audio.c +++ b/arch/arm/mach-s5pc100/dev-audio.c | |||
@@ -281,7 +281,7 @@ static struct s3c_audio_pdata s3c_ac97_pdata = { | |||
281 | static u64 s5pc100_ac97_dmamask = DMA_BIT_MASK(32); | 281 | static u64 s5pc100_ac97_dmamask = DMA_BIT_MASK(32); |
282 | 282 | ||
283 | struct platform_device s5pc100_device_ac97 = { | 283 | struct platform_device s5pc100_device_ac97 = { |
284 | .name = "s3c-ac97", | 284 | .name = "samsung-ac97", |
285 | .id = -1, | 285 | .id = -1, |
286 | .num_resources = ARRAY_SIZE(s5pc100_ac97_resource), | 286 | .num_resources = ARRAY_SIZE(s5pc100_ac97_resource), |
287 | .resource = s5pc100_ac97_resource, | 287 | .resource = s5pc100_ac97_resource, |
diff --git a/arch/arm/mach-s5pc100/mach-smdkc100.c b/arch/arm/mach-s5pc100/mach-smdkc100.c index 18b405d514d6..dd192a27524d 100644 --- a/arch/arm/mach-s5pc100/mach-smdkc100.c +++ b/arch/arm/mach-s5pc100/mach-smdkc100.c | |||
@@ -96,6 +96,7 @@ static struct s3c2410_uartcfg smdkc100_uartcfgs[] __initdata = { | |||
96 | 96 | ||
97 | /* I2C0 */ | 97 | /* I2C0 */ |
98 | static struct i2c_board_info i2c_devs0[] __initdata = { | 98 | static struct i2c_board_info i2c_devs0[] __initdata = { |
99 | {I2C_BOARD_INFO("wm8580", 0x1b),}, | ||
99 | }; | 100 | }; |
100 | 101 | ||
101 | /* I2C1 */ | 102 | /* I2C1 */ |
@@ -190,6 +191,7 @@ static struct platform_device *smdkc100_devices[] __initdata = { | |||
190 | &s3c_device_ts, | 191 | &s3c_device_ts, |
191 | &s3c_device_wdt, | 192 | &s3c_device_wdt, |
192 | &smdkc100_lcd_powerdev, | 193 | &smdkc100_lcd_powerdev, |
194 | &samsung_asoc_dma, | ||
193 | &s5pc100_device_iis0, | 195 | &s5pc100_device_iis0, |
194 | &samsung_device_keypad, | 196 | &samsung_device_keypad, |
195 | &s5pc100_device_ac97, | 197 | &s5pc100_device_ac97, |
diff --git a/arch/arm/mach-s5pv210/dev-audio.c b/arch/arm/mach-s5pv210/dev-audio.c index ddd2704b3467..8d58f1926241 100644 --- a/arch/arm/mach-s5pv210/dev-audio.c +++ b/arch/arm/mach-s5pv210/dev-audio.c | |||
@@ -311,7 +311,7 @@ static struct s3c_audio_pdata s3c_ac97_pdata = { | |||
311 | static u64 s5pv210_ac97_dmamask = DMA_BIT_MASK(32); | 311 | static u64 s5pv210_ac97_dmamask = DMA_BIT_MASK(32); |
312 | 312 | ||
313 | struct platform_device s5pv210_device_ac97 = { | 313 | struct platform_device s5pv210_device_ac97 = { |
314 | .name = "s3c-ac97", | 314 | .name = "samsung-ac97", |
315 | .id = -1, | 315 | .id = -1, |
316 | .num_resources = ARRAY_SIZE(s5pv210_ac97_resource), | 316 | .num_resources = ARRAY_SIZE(s5pv210_ac97_resource), |
317 | .resource = s5pv210_ac97_resource, | 317 | .resource = s5pv210_ac97_resource, |
diff --git a/arch/arm/mach-s5pv310/hotplug.c b/arch/arm/mach-s5pv310/hotplug.c index afa5392d9fc0..c24235c89eed 100644 --- a/arch/arm/mach-s5pv310/hotplug.c +++ b/arch/arm/mach-s5pv310/hotplug.c | |||
@@ -30,10 +30,10 @@ static inline void cpu_enter_lowpower(void) | |||
30 | * Turn off coherency | 30 | * Turn off coherency |
31 | */ | 31 | */ |
32 | " mrc p15, 0, %0, c1, c0, 1\n" | 32 | " mrc p15, 0, %0, c1, c0, 1\n" |
33 | " bic %0, %0, %2\n" | 33 | " bic %0, %0, #0x20\n" |
34 | " mcr p15, 0, %0, c1, c0, 1\n" | 34 | " mcr p15, 0, %0, c1, c0, 1\n" |
35 | " mrc p15, 0, %0, c1, c0, 0\n" | 35 | " mrc p15, 0, %0, c1, c0, 0\n" |
36 | " bic %0, %0, #0x04\n" | 36 | " bic %0, %0, %2\n" |
37 | " mcr p15, 0, %0, c1, c0, 0\n" | 37 | " mcr p15, 0, %0, c1, c0, 0\n" |
38 | : "=&r" (v) | 38 | : "=&r" (v) |
39 | : "r" (0), "Ir" (CR_C) | 39 | : "r" (0), "Ir" (CR_C) |
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c index 59d14f0fdcf8..e21f3470eece 100644 --- a/arch/arm/mach-sa1100/generic.c +++ b/arch/arm/mach-sa1100/generic.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <asm/div64.h> | 21 | #include <asm/div64.h> |
22 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
23 | #include <asm/system.h> | 23 | #include <asm/system.h> |
24 | #include <asm/pgtable.h> | ||
25 | #include <asm/mach/map.h> | 24 | #include <asm/mach/map.h> |
26 | #include <asm/mach/flash.h> | 25 | #include <asm/mach/flash.h> |
27 | #include <asm/irq.h> | 26 | #include <asm/irq.h> |
diff --git a/arch/arm/mach-sa1100/pm.c b/arch/arm/mach-sa1100/pm.c index c83fdc80edfd..ab9fc4470d36 100644 --- a/arch/arm/mach-sa1100/pm.c +++ b/arch/arm/mach-sa1100/pm.c | |||
@@ -120,7 +120,7 @@ unsigned long sleep_phys_sp(void *sp) | |||
120 | return virt_to_phys(sp); | 120 | return virt_to_phys(sp); |
121 | } | 121 | } |
122 | 122 | ||
123 | static struct platform_suspend_ops sa11x0_pm_ops = { | 123 | static const struct platform_suspend_ops sa11x0_pm_ops = { |
124 | .enter = sa11x0_pm_enter, | 124 | .enter = sa11x0_pm_enter, |
125 | .valid = suspend_valid_only_mem, | 125 | .valid = suspend_valid_only_mem, |
126 | }; | 126 | }; |
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c index cd79d7c1ba0d..3cf0951caa2d 100644 --- a/arch/arm/mach-shmobile/board-ap4evb.c +++ b/arch/arm/mach-shmobile/board-ap4evb.c | |||
@@ -247,10 +247,7 @@ static struct platform_device smc911x_device = { | |||
247 | */ | 247 | */ |
248 | static int slot_cn7_get_cd(struct platform_device *pdev) | 248 | static int slot_cn7_get_cd(struct platform_device *pdev) |
249 | { | 249 | { |
250 | if (gpio_is_valid(GPIO_PORT41)) | 250 | return !gpio_get_value(GPIO_PORT41); |
251 | return !gpio_get_value(GPIO_PORT41); | ||
252 | else | ||
253 | return -ENXIO; | ||
254 | } | 251 | } |
255 | 252 | ||
256 | /* SH_MMCIF */ | 253 | /* SH_MMCIF */ |
@@ -308,6 +305,7 @@ static struct platform_device sh_mmcif_device = { | |||
308 | static struct sh_mobile_sdhi_info sdhi0_info = { | 305 | static struct sh_mobile_sdhi_info sdhi0_info = { |
309 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, | 306 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, |
310 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, | 307 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, |
308 | .tmio_caps = MMC_CAP_SDIO_IRQ, | ||
311 | }; | 309 | }; |
312 | 310 | ||
313 | static struct resource sdhi0_resources[] = { | 311 | static struct resource sdhi0_resources[] = { |
@@ -339,7 +337,7 @@ static struct sh_mobile_sdhi_info sdhi1_info = { | |||
339 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, | 337 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, |
340 | .tmio_ocr_mask = MMC_VDD_165_195, | 338 | .tmio_ocr_mask = MMC_VDD_165_195, |
341 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, | 339 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, |
342 | .tmio_caps = MMC_CAP_NEEDS_POLL, | 340 | .tmio_caps = MMC_CAP_NEEDS_POLL | MMC_CAP_SDIO_IRQ, |
343 | .get_cd = slot_cn7_get_cd, | 341 | .get_cd = slot_cn7_get_cd, |
344 | }; | 342 | }; |
345 | 343 | ||
@@ -711,6 +709,10 @@ static struct platform_device fsi_device = { | |||
711 | }, | 709 | }, |
712 | }; | 710 | }; |
713 | 711 | ||
712 | static struct platform_device fsi_ak4643_device = { | ||
713 | .name = "sh_fsi2_a_ak4643", | ||
714 | }; | ||
715 | |||
714 | static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { | 716 | static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { |
715 | .clock_source = LCDC_CLK_EXTERNAL, | 717 | .clock_source = LCDC_CLK_EXTERNAL, |
716 | .ch[0] = { | 718 | .ch[0] = { |
@@ -933,6 +935,7 @@ static struct platform_device *ap4evb_devices[] __initdata = { | |||
933 | &sdhi1_device, | 935 | &sdhi1_device, |
934 | &usb1_host_device, | 936 | &usb1_host_device, |
935 | &fsi_device, | 937 | &fsi_device, |
938 | &fsi_ak4643_device, | ||
936 | &sh_mmcif_device, | 939 | &sh_mmcif_device, |
937 | &lcdc1_device, | 940 | &lcdc1_device, |
938 | &lcdc_device, | 941 | &lcdc_device, |
diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c index c13f01280b7e..dee3e9231fb9 100644 --- a/arch/arm/mach-shmobile/board-g4evm.c +++ b/arch/arm/mach-shmobile/board-g4evm.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <linux/io.h> | 30 | #include <linux/io.h> |
31 | #include <linux/input.h> | 31 | #include <linux/input.h> |
32 | #include <linux/input/sh_keysc.h> | 32 | #include <linux/input/sh_keysc.h> |
33 | #include <linux/mmc/host.h> | ||
33 | #include <linux/mfd/sh_mobile_sdhi.h> | 34 | #include <linux/mfd/sh_mobile_sdhi.h> |
34 | #include <linux/gpio.h> | 35 | #include <linux/gpio.h> |
35 | #include <mach/sh7377.h> | 36 | #include <mach/sh7377.h> |
@@ -196,6 +197,10 @@ static struct platform_device keysc_device = { | |||
196 | }; | 197 | }; |
197 | 198 | ||
198 | /* SDHI */ | 199 | /* SDHI */ |
200 | static struct sh_mobile_sdhi_info sdhi0_info = { | ||
201 | .tmio_caps = MMC_CAP_SDIO_IRQ, | ||
202 | }; | ||
203 | |||
199 | static struct resource sdhi0_resources[] = { | 204 | static struct resource sdhi0_resources[] = { |
200 | [0] = { | 205 | [0] = { |
201 | .name = "SDHI0", | 206 | .name = "SDHI0", |
@@ -214,6 +219,13 @@ static struct platform_device sdhi0_device = { | |||
214 | .num_resources = ARRAY_SIZE(sdhi0_resources), | 219 | .num_resources = ARRAY_SIZE(sdhi0_resources), |
215 | .resource = sdhi0_resources, | 220 | .resource = sdhi0_resources, |
216 | .id = 0, | 221 | .id = 0, |
222 | .dev = { | ||
223 | .platform_data = &sdhi0_info, | ||
224 | }, | ||
225 | }; | ||
226 | |||
227 | static struct sh_mobile_sdhi_info sdhi1_info = { | ||
228 | .tmio_caps = MMC_CAP_NONREMOVABLE | MMC_CAP_SDIO_IRQ, | ||
217 | }; | 229 | }; |
218 | 230 | ||
219 | static struct resource sdhi1_resources[] = { | 231 | static struct resource sdhi1_resources[] = { |
@@ -234,6 +246,9 @@ static struct platform_device sdhi1_device = { | |||
234 | .num_resources = ARRAY_SIZE(sdhi1_resources), | 246 | .num_resources = ARRAY_SIZE(sdhi1_resources), |
235 | .resource = sdhi1_resources, | 247 | .resource = sdhi1_resources, |
236 | .id = 1, | 248 | .id = 1, |
249 | .dev = { | ||
250 | .platform_data = &sdhi1_info, | ||
251 | }, | ||
237 | }; | 252 | }; |
238 | 253 | ||
239 | static struct platform_device *g4evm_devices[] __initdata = { | 254 | static struct platform_device *g4evm_devices[] __initdata = { |
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 5bcf5c1e1399..7b15d21f0f68 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -657,17 +657,14 @@ static struct platform_device fsi_ak4643_device = { | |||
657 | */ | 657 | */ |
658 | static int slot_cn7_get_cd(struct platform_device *pdev) | 658 | static int slot_cn7_get_cd(struct platform_device *pdev) |
659 | { | 659 | { |
660 | if (gpio_is_valid(GPIO_PORT41)) | 660 | return !gpio_get_value(GPIO_PORT41); |
661 | return !gpio_get_value(GPIO_PORT41); | ||
662 | else | ||
663 | return -ENXIO; | ||
664 | } | 661 | } |
665 | 662 | ||
666 | /* SDHI0 */ | 663 | /* SDHI0 */ |
667 | static struct sh_mobile_sdhi_info sdhi0_info = { | 664 | static struct sh_mobile_sdhi_info sdhi0_info = { |
668 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, | 665 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, |
669 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, | 666 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, |
670 | .tmio_caps = MMC_CAP_SD_HIGHSPEED, | 667 | .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ, |
671 | }; | 668 | }; |
672 | 669 | ||
673 | static struct resource sdhi0_resources[] = { | 670 | static struct resource sdhi0_resources[] = { |
@@ -700,7 +697,7 @@ static struct sh_mobile_sdhi_info sdhi1_info = { | |||
700 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, | 697 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, |
701 | .tmio_ocr_mask = MMC_VDD_165_195, | 698 | .tmio_ocr_mask = MMC_VDD_165_195, |
702 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, | 699 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, |
703 | .tmio_caps = MMC_CAP_SD_HIGHSPEED | | 700 | .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | |
704 | MMC_CAP_NEEDS_POLL, | 701 | MMC_CAP_NEEDS_POLL, |
705 | .get_cd = slot_cn7_get_cd, | 702 | .get_cd = slot_cn7_get_cd, |
706 | }; | 703 | }; |
@@ -729,13 +726,23 @@ static struct platform_device sdhi1_device = { | |||
729 | }; | 726 | }; |
730 | #endif | 727 | #endif |
731 | 728 | ||
729 | /* | ||
730 | * The card detect pin of the top SD/MMC slot (CN23) is active low and is | ||
731 | * connected to GPIO SCIFB_SCK of SH7372 (GPIO_PORT162). | ||
732 | */ | ||
733 | static int slot_cn23_get_cd(struct platform_device *pdev) | ||
734 | { | ||
735 | return !gpio_get_value(GPIO_PORT162); | ||
736 | } | ||
737 | |||
732 | /* SDHI2 */ | 738 | /* SDHI2 */ |
733 | static struct sh_mobile_sdhi_info sdhi2_info = { | 739 | static struct sh_mobile_sdhi_info sdhi2_info = { |
734 | .dma_slave_tx = SHDMA_SLAVE_SDHI2_TX, | 740 | .dma_slave_tx = SHDMA_SLAVE_SDHI2_TX, |
735 | .dma_slave_rx = SHDMA_SLAVE_SDHI2_RX, | 741 | .dma_slave_rx = SHDMA_SLAVE_SDHI2_RX, |
736 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, | 742 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, |
737 | .tmio_caps = MMC_CAP_SD_HIGHSPEED | | 743 | .tmio_caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_SDIO_IRQ | |
738 | MMC_CAP_NEEDS_POLL, | 744 | MMC_CAP_NEEDS_POLL, |
745 | .get_cd = slot_cn23_get_cd, | ||
739 | }; | 746 | }; |
740 | 747 | ||
741 | static struct resource sdhi2_resources[] = { | 748 | static struct resource sdhi2_resources[] = { |
@@ -953,6 +960,7 @@ static struct tca6416_keys_platform_data mackerel_tca6416_keys_info = { | |||
953 | }; | 960 | }; |
954 | 961 | ||
955 | /* I2C */ | 962 | /* I2C */ |
963 | #define IRQ7 evt2irq(0x02e0) | ||
956 | #define IRQ9 evt2irq(0x0320) | 964 | #define IRQ9 evt2irq(0x0320) |
957 | 965 | ||
958 | static struct i2c_board_info i2c0_devices[] = { | 966 | static struct i2c_board_info i2c0_devices[] = { |
@@ -965,6 +973,11 @@ static struct i2c_board_info i2c0_devices[] = { | |||
965 | .platform_data = &mackerel_tca6416_keys_info, | 973 | .platform_data = &mackerel_tca6416_keys_info, |
966 | .irq = IRQ9, | 974 | .irq = IRQ9, |
967 | }, | 975 | }, |
976 | /* Touchscreen */ | ||
977 | { | ||
978 | I2C_BOARD_INFO("st1232-ts", 0x55), | ||
979 | .irq = IRQ7, | ||
980 | }, | ||
968 | }; | 981 | }; |
969 | 982 | ||
970 | #define IRQ21 evt2irq(0x32a0) | 983 | #define IRQ21 evt2irq(0x32a0) |
@@ -1092,6 +1105,10 @@ static void __init mackerel_init(void) | |||
1092 | gpio_request(GPIO_FN_IRQ9_42, NULL); | 1105 | gpio_request(GPIO_FN_IRQ9_42, NULL); |
1093 | set_irq_type(IRQ9, IRQ_TYPE_LEVEL_HIGH); | 1106 | set_irq_type(IRQ9, IRQ_TYPE_LEVEL_HIGH); |
1094 | 1107 | ||
1108 | /* enable Touchscreen */ | ||
1109 | gpio_request(GPIO_FN_IRQ7_40, NULL); | ||
1110 | set_irq_type(IRQ7, IRQ_TYPE_LEVEL_LOW); | ||
1111 | |||
1095 | /* enable Accelerometer */ | 1112 | /* enable Accelerometer */ |
1096 | gpio_request(GPIO_FN_IRQ21, NULL); | 1113 | gpio_request(GPIO_FN_IRQ21, NULL); |
1097 | set_irq_type(IRQ21, IRQ_TYPE_LEVEL_HIGH); | 1114 | set_irq_type(IRQ21, IRQ_TYPE_LEVEL_HIGH); |
@@ -1127,6 +1144,10 @@ static void __init mackerel_init(void) | |||
1127 | gpio_request(GPIO_FN_SDHID2_1, NULL); | 1144 | gpio_request(GPIO_FN_SDHID2_1, NULL); |
1128 | gpio_request(GPIO_FN_SDHID2_0, NULL); | 1145 | gpio_request(GPIO_FN_SDHID2_0, NULL); |
1129 | 1146 | ||
1147 | /* card detect pin for microSD slot (CN23) */ | ||
1148 | gpio_request(GPIO_PORT162, NULL); | ||
1149 | gpio_direction_input(GPIO_PORT162); | ||
1150 | |||
1130 | /* MMCIF */ | 1151 | /* MMCIF */ |
1131 | gpio_request(GPIO_FN_MMCD0_0, NULL); | 1152 | gpio_request(GPIO_FN_MMCD0_0, NULL); |
1132 | gpio_request(GPIO_FN_MMCD0_1, NULL); | 1153 | gpio_request(GPIO_FN_MMCD0_1, NULL); |
diff --git a/arch/arm/mach-shmobile/include/mach/head-ap4evb.txt b/arch/arm/mach-shmobile/include/mach/head-ap4evb.txt index e3ebfa73956e..efd3687ba190 100644 --- a/arch/arm/mach-shmobile/include/mach/head-ap4evb.txt +++ b/arch/arm/mach-shmobile/include/mach/head-ap4evb.txt | |||
@@ -85,3 +85,10 @@ ED 0xE6150004, 0x80331050 | |||
85 | WAIT 1, 0xFE40009C | 85 | WAIT 1, 0xFE40009C |
86 | 86 | ||
87 | ED 0xE6150354, 0x00000002 | 87 | ED 0xE6150354, 0x00000002 |
88 | |||
89 | LIST "SCIF0 - Serial port for earlyprintk" | ||
90 | EB 0xE6053098, 0x11 | ||
91 | EB 0xE6053098, 0xe1 | ||
92 | EW 0xE6C40000, 0x0000 | ||
93 | EB 0xE6C40004, 0x19 | ||
94 | EW 0xE6C40008, 0x3000 | ||
diff --git a/arch/arm/mach-shmobile/include/mach/head-mackerel.txt b/arch/arm/mach-shmobile/include/mach/head-mackerel.txt index e3ebfa73956e..efd3687ba190 100644 --- a/arch/arm/mach-shmobile/include/mach/head-mackerel.txt +++ b/arch/arm/mach-shmobile/include/mach/head-mackerel.txt | |||
@@ -85,3 +85,10 @@ ED 0xE6150004, 0x80331050 | |||
85 | WAIT 1, 0xFE40009C | 85 | WAIT 1, 0xFE40009C |
86 | 86 | ||
87 | ED 0xE6150354, 0x00000002 | 87 | ED 0xE6150354, 0x00000002 |
88 | |||
89 | LIST "SCIF0 - Serial port for earlyprintk" | ||
90 | EB 0xE6053098, 0x11 | ||
91 | EB 0xE6053098, 0xe1 | ||
92 | EW 0xE6C40000, 0x0000 | ||
93 | EB 0xE6C40004, 0x19 | ||
94 | EW 0xE6C40008, 0x3000 | ||
diff --git a/arch/arm/mach-shmobile/intc-sh7367.c b/arch/arm/mach-shmobile/intc-sh7367.c index 1a20c489b20d..2fe9704d5ea1 100644 --- a/arch/arm/mach-shmobile/intc-sh7367.c +++ b/arch/arm/mach-shmobile/intc-sh7367.c | |||
@@ -189,10 +189,10 @@ static struct intc_mask_reg intca_mask_registers[] __initdata = { | |||
189 | { SCIFB, SCIFA5, SCIFA4, MSIOF1, | 189 | { SCIFB, SCIFA5, SCIFA4, MSIOF1, |
190 | 0, 0, MSIOF2, 0 } }, | 190 | 0, 0, MSIOF2, 0 } }, |
191 | { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */ | 191 | { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */ |
192 | { DISABLED, DISABLED, ENABLED, ENABLED, | 192 | { DISABLED, ENABLED, ENABLED, ENABLED, |
193 | FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } }, | 193 | FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } }, |
194 | { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */ | 194 | { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */ |
195 | { DISABLED, DISABLED, ENABLED, ENABLED, | 195 | { DISABLED, ENABLED, ENABLED, ENABLED, |
196 | TTI20, USBDMAC_USHDMI, SPU, SIU } }, | 196 | TTI20, USBDMAC_USHDMI, SPU, SIU } }, |
197 | { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */ | 197 | { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */ |
198 | { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10, | 198 | { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10, |
@@ -207,7 +207,7 @@ static struct intc_mask_reg intca_mask_registers[] __initdata = { | |||
207 | { 0, 0, TPU0, TPU1, | 207 | { 0, 0, TPU0, TPU1, |
208 | TPU2, TPU3, TPU4, 0 } }, | 208 | TPU2, TPU3, TPU4, 0 } }, |
209 | { 0xe69400b4, 0xe69400f4, 8, /* IMR13A / IMCR13A */ | 209 | { 0xe69400b4, 0xe69400f4, 8, /* IMR13A / IMCR13A */ |
210 | { DISABLED, DISABLED, ENABLED, ENABLED, | 210 | { DISABLED, ENABLED, ENABLED, ENABLED, |
211 | MISTY, CMT3, RWDT1, RWDT0 } }, | 211 | MISTY, CMT3, RWDT1, RWDT0 } }, |
212 | }; | 212 | }; |
213 | 213 | ||
diff --git a/arch/arm/mach-shmobile/intc-sh7372.c b/arch/arm/mach-shmobile/intc-sh7372.c index 30b2f400666a..f78a1ead71a5 100644 --- a/arch/arm/mach-shmobile/intc-sh7372.c +++ b/arch/arm/mach-shmobile/intc-sh7372.c | |||
@@ -230,10 +230,10 @@ static struct intc_mask_reg intca_mask_registers[] __initdata = { | |||
230 | { SCIFB, SCIFA5, SCIFA4, MSIOF1, | 230 | { SCIFB, SCIFA5, SCIFA4, MSIOF1, |
231 | 0, 0, MSIOF2, 0 } }, | 231 | 0, 0, MSIOF2, 0 } }, |
232 | { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */ | 232 | { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */ |
233 | { DISABLED, DISABLED, ENABLED, ENABLED, | 233 | { DISABLED, ENABLED, ENABLED, ENABLED, |
234 | FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } }, | 234 | FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } }, |
235 | { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */ | 235 | { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */ |
236 | { 0, DISABLED, ENABLED, ENABLED, | 236 | { 0, ENABLED, ENABLED, ENABLED, |
237 | TTI20, USBHSDMAC0_USHDMI, 0, 0 } }, | 237 | TTI20, USBHSDMAC0_USHDMI, 0, 0 } }, |
238 | { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */ | 238 | { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */ |
239 | { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10, | 239 | { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10, |
diff --git a/arch/arm/mach-shmobile/intc-sh7377.c b/arch/arm/mach-shmobile/intc-sh7377.c index 2cdeb8ccd821..dd568382cc9f 100644 --- a/arch/arm/mach-shmobile/intc-sh7377.c +++ b/arch/arm/mach-shmobile/intc-sh7377.c | |||
@@ -234,10 +234,10 @@ static struct intc_mask_reg intca_mask_registers[] __initdata = { | |||
234 | { SCIFB, SCIFA5, SCIFA4, MSIOF1, | 234 | { SCIFB, SCIFA5, SCIFA4, MSIOF1, |
235 | 0, 0, MSIOF2, 0 } }, | 235 | 0, 0, MSIOF2, 0 } }, |
236 | { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */ | 236 | { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */ |
237 | { DISABLED, DISABLED, ENABLED, ENABLED, | 237 | { DISABLED, ENABLED, ENABLED, ENABLED, |
238 | FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } }, | 238 | FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } }, |
239 | { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */ | 239 | { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */ |
240 | { DISABLED, DISABLED, ENABLED, ENABLED, | 240 | { DISABLED, ENABLED, ENABLED, ENABLED, |
241 | TTI20, USBDMAC_USHDMI, 0, MSUG } }, | 241 | TTI20, USBDMAC_USHDMI, 0, MSUG } }, |
242 | { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */ | 242 | { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */ |
243 | { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10, | 243 | { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10, |
diff --git a/arch/arm/mach-shmobile/setup-sh7367.c b/arch/arm/mach-shmobile/setup-sh7367.c index 003008c18360..ce28141662da 100644 --- a/arch/arm/mach-shmobile/setup-sh7367.c +++ b/arch/arm/mach-shmobile/setup-sh7367.c | |||
@@ -35,6 +35,8 @@ | |||
35 | static struct plat_sci_port scif0_platform_data = { | 35 | static struct plat_sci_port scif0_platform_data = { |
36 | .mapbase = 0xe6c40000, | 36 | .mapbase = 0xe6c40000, |
37 | .flags = UPF_BOOT_AUTOCONF, | 37 | .flags = UPF_BOOT_AUTOCONF, |
38 | .scscr = SCSCR_RE | SCSCR_TE, | ||
39 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
38 | .type = PORT_SCIF, | 40 | .type = PORT_SCIF, |
39 | .irqs = { evt2irq(0xc00), evt2irq(0xc00), | 41 | .irqs = { evt2irq(0xc00), evt2irq(0xc00), |
40 | evt2irq(0xc00), evt2irq(0xc00) }, | 42 | evt2irq(0xc00), evt2irq(0xc00) }, |
@@ -52,6 +54,8 @@ static struct platform_device scif0_device = { | |||
52 | static struct plat_sci_port scif1_platform_data = { | 54 | static struct plat_sci_port scif1_platform_data = { |
53 | .mapbase = 0xe6c50000, | 55 | .mapbase = 0xe6c50000, |
54 | .flags = UPF_BOOT_AUTOCONF, | 56 | .flags = UPF_BOOT_AUTOCONF, |
57 | .scscr = SCSCR_RE | SCSCR_TE, | ||
58 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
55 | .type = PORT_SCIF, | 59 | .type = PORT_SCIF, |
56 | .irqs = { evt2irq(0xc20), evt2irq(0xc20), | 60 | .irqs = { evt2irq(0xc20), evt2irq(0xc20), |
57 | evt2irq(0xc20), evt2irq(0xc20) }, | 61 | evt2irq(0xc20), evt2irq(0xc20) }, |
@@ -69,6 +73,8 @@ static struct platform_device scif1_device = { | |||
69 | static struct plat_sci_port scif2_platform_data = { | 73 | static struct plat_sci_port scif2_platform_data = { |
70 | .mapbase = 0xe6c60000, | 74 | .mapbase = 0xe6c60000, |
71 | .flags = UPF_BOOT_AUTOCONF, | 75 | .flags = UPF_BOOT_AUTOCONF, |
76 | .scscr = SCSCR_RE | SCSCR_TE, | ||
77 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
72 | .type = PORT_SCIF, | 78 | .type = PORT_SCIF, |
73 | .irqs = { evt2irq(0xc40), evt2irq(0xc40), | 79 | .irqs = { evt2irq(0xc40), evt2irq(0xc40), |
74 | evt2irq(0xc40), evt2irq(0xc40) }, | 80 | evt2irq(0xc40), evt2irq(0xc40) }, |
@@ -86,6 +92,8 @@ static struct platform_device scif2_device = { | |||
86 | static struct plat_sci_port scif3_platform_data = { | 92 | static struct plat_sci_port scif3_platform_data = { |
87 | .mapbase = 0xe6c70000, | 93 | .mapbase = 0xe6c70000, |
88 | .flags = UPF_BOOT_AUTOCONF, | 94 | .flags = UPF_BOOT_AUTOCONF, |
95 | .scscr = SCSCR_RE | SCSCR_TE, | ||
96 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
89 | .type = PORT_SCIF, | 97 | .type = PORT_SCIF, |
90 | .irqs = { evt2irq(0xc60), evt2irq(0xc60), | 98 | .irqs = { evt2irq(0xc60), evt2irq(0xc60), |
91 | evt2irq(0xc60), evt2irq(0xc60) }, | 99 | evt2irq(0xc60), evt2irq(0xc60) }, |
@@ -103,6 +111,8 @@ static struct platform_device scif3_device = { | |||
103 | static struct plat_sci_port scif4_platform_data = { | 111 | static struct plat_sci_port scif4_platform_data = { |
104 | .mapbase = 0xe6c80000, | 112 | .mapbase = 0xe6c80000, |
105 | .flags = UPF_BOOT_AUTOCONF, | 113 | .flags = UPF_BOOT_AUTOCONF, |
114 | .scscr = SCSCR_RE | SCSCR_TE, | ||
115 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
106 | .type = PORT_SCIF, | 116 | .type = PORT_SCIF, |
107 | .irqs = { evt2irq(0xd20), evt2irq(0xd20), | 117 | .irqs = { evt2irq(0xd20), evt2irq(0xd20), |
108 | evt2irq(0xd20), evt2irq(0xd20) }, | 118 | evt2irq(0xd20), evt2irq(0xd20) }, |
@@ -120,6 +130,8 @@ static struct platform_device scif4_device = { | |||
120 | static struct plat_sci_port scif5_platform_data = { | 130 | static struct plat_sci_port scif5_platform_data = { |
121 | .mapbase = 0xe6cb0000, | 131 | .mapbase = 0xe6cb0000, |
122 | .flags = UPF_BOOT_AUTOCONF, | 132 | .flags = UPF_BOOT_AUTOCONF, |
133 | .scscr = SCSCR_RE | SCSCR_TE, | ||
134 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
123 | .type = PORT_SCIF, | 135 | .type = PORT_SCIF, |
124 | .irqs = { evt2irq(0xd40), evt2irq(0xd40), | 136 | .irqs = { evt2irq(0xd40), evt2irq(0xd40), |
125 | evt2irq(0xd40), evt2irq(0xd40) }, | 137 | evt2irq(0xd40), evt2irq(0xd40) }, |
@@ -137,6 +149,8 @@ static struct platform_device scif5_device = { | |||
137 | static struct plat_sci_port scif6_platform_data = { | 149 | static struct plat_sci_port scif6_platform_data = { |
138 | .mapbase = 0xe6c30000, | 150 | .mapbase = 0xe6c30000, |
139 | .flags = UPF_BOOT_AUTOCONF, | 151 | .flags = UPF_BOOT_AUTOCONF, |
152 | .scscr = SCSCR_RE | SCSCR_TE, | ||
153 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
140 | .type = PORT_SCIF, | 154 | .type = PORT_SCIF, |
141 | .irqs = { evt2irq(0xd60), evt2irq(0xd60), | 155 | .irqs = { evt2irq(0xd60), evt2irq(0xd60), |
142 | evt2irq(0xd60), evt2irq(0xd60) }, | 156 | evt2irq(0xd60), evt2irq(0xd60) }, |
diff --git a/arch/arm/mach-shmobile/setup-sh7372.c b/arch/arm/mach-shmobile/setup-sh7372.c index 2e3e11ee7c43..ff0494f3d00c 100644 --- a/arch/arm/mach-shmobile/setup-sh7372.c +++ b/arch/arm/mach-shmobile/setup-sh7372.c | |||
@@ -38,6 +38,8 @@ | |||
38 | static struct plat_sci_port scif0_platform_data = { | 38 | static struct plat_sci_port scif0_platform_data = { |
39 | .mapbase = 0xe6c40000, | 39 | .mapbase = 0xe6c40000, |
40 | .flags = UPF_BOOT_AUTOCONF, | 40 | .flags = UPF_BOOT_AUTOCONF, |
41 | .scscr = SCSCR_RE | SCSCR_TE, | ||
42 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
41 | .type = PORT_SCIFA, | 43 | .type = PORT_SCIFA, |
42 | .irqs = { evt2irq(0x0c00), evt2irq(0x0c00), | 44 | .irqs = { evt2irq(0x0c00), evt2irq(0x0c00), |
43 | evt2irq(0x0c00), evt2irq(0x0c00) }, | 45 | evt2irq(0x0c00), evt2irq(0x0c00) }, |
@@ -55,6 +57,8 @@ static struct platform_device scif0_device = { | |||
55 | static struct plat_sci_port scif1_platform_data = { | 57 | static struct plat_sci_port scif1_platform_data = { |
56 | .mapbase = 0xe6c50000, | 58 | .mapbase = 0xe6c50000, |
57 | .flags = UPF_BOOT_AUTOCONF, | 59 | .flags = UPF_BOOT_AUTOCONF, |
60 | .scscr = SCSCR_RE | SCSCR_TE, | ||
61 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
58 | .type = PORT_SCIFA, | 62 | .type = PORT_SCIFA, |
59 | .irqs = { evt2irq(0x0c20), evt2irq(0x0c20), | 63 | .irqs = { evt2irq(0x0c20), evt2irq(0x0c20), |
60 | evt2irq(0x0c20), evt2irq(0x0c20) }, | 64 | evt2irq(0x0c20), evt2irq(0x0c20) }, |
@@ -72,6 +76,8 @@ static struct platform_device scif1_device = { | |||
72 | static struct plat_sci_port scif2_platform_data = { | 76 | static struct plat_sci_port scif2_platform_data = { |
73 | .mapbase = 0xe6c60000, | 77 | .mapbase = 0xe6c60000, |
74 | .flags = UPF_BOOT_AUTOCONF, | 78 | .flags = UPF_BOOT_AUTOCONF, |
79 | .scscr = SCSCR_RE | SCSCR_TE, | ||
80 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
75 | .type = PORT_SCIFA, | 81 | .type = PORT_SCIFA, |
76 | .irqs = { evt2irq(0x0c40), evt2irq(0x0c40), | 82 | .irqs = { evt2irq(0x0c40), evt2irq(0x0c40), |
77 | evt2irq(0x0c40), evt2irq(0x0c40) }, | 83 | evt2irq(0x0c40), evt2irq(0x0c40) }, |
@@ -89,6 +95,8 @@ static struct platform_device scif2_device = { | |||
89 | static struct plat_sci_port scif3_platform_data = { | 95 | static struct plat_sci_port scif3_platform_data = { |
90 | .mapbase = 0xe6c70000, | 96 | .mapbase = 0xe6c70000, |
91 | .flags = UPF_BOOT_AUTOCONF, | 97 | .flags = UPF_BOOT_AUTOCONF, |
98 | .scscr = SCSCR_RE | SCSCR_TE, | ||
99 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
92 | .type = PORT_SCIFA, | 100 | .type = PORT_SCIFA, |
93 | .irqs = { evt2irq(0x0c60), evt2irq(0x0c60), | 101 | .irqs = { evt2irq(0x0c60), evt2irq(0x0c60), |
94 | evt2irq(0x0c60), evt2irq(0x0c60) }, | 102 | evt2irq(0x0c60), evt2irq(0x0c60) }, |
@@ -106,6 +114,8 @@ static struct platform_device scif3_device = { | |||
106 | static struct plat_sci_port scif4_platform_data = { | 114 | static struct plat_sci_port scif4_platform_data = { |
107 | .mapbase = 0xe6c80000, | 115 | .mapbase = 0xe6c80000, |
108 | .flags = UPF_BOOT_AUTOCONF, | 116 | .flags = UPF_BOOT_AUTOCONF, |
117 | .scscr = SCSCR_RE | SCSCR_TE, | ||
118 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
109 | .type = PORT_SCIFA, | 119 | .type = PORT_SCIFA, |
110 | .irqs = { evt2irq(0x0d20), evt2irq(0x0d20), | 120 | .irqs = { evt2irq(0x0d20), evt2irq(0x0d20), |
111 | evt2irq(0x0d20), evt2irq(0x0d20) }, | 121 | evt2irq(0x0d20), evt2irq(0x0d20) }, |
@@ -123,6 +133,8 @@ static struct platform_device scif4_device = { | |||
123 | static struct plat_sci_port scif5_platform_data = { | 133 | static struct plat_sci_port scif5_platform_data = { |
124 | .mapbase = 0xe6cb0000, | 134 | .mapbase = 0xe6cb0000, |
125 | .flags = UPF_BOOT_AUTOCONF, | 135 | .flags = UPF_BOOT_AUTOCONF, |
136 | .scscr = SCSCR_RE | SCSCR_TE, | ||
137 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
126 | .type = PORT_SCIFA, | 138 | .type = PORT_SCIFA, |
127 | .irqs = { evt2irq(0x0d40), evt2irq(0x0d40), | 139 | .irqs = { evt2irq(0x0d40), evt2irq(0x0d40), |
128 | evt2irq(0x0d40), evt2irq(0x0d40) }, | 140 | evt2irq(0x0d40), evt2irq(0x0d40) }, |
@@ -140,6 +152,8 @@ static struct platform_device scif5_device = { | |||
140 | static struct plat_sci_port scif6_platform_data = { | 152 | static struct plat_sci_port scif6_platform_data = { |
141 | .mapbase = 0xe6c30000, | 153 | .mapbase = 0xe6c30000, |
142 | .flags = UPF_BOOT_AUTOCONF, | 154 | .flags = UPF_BOOT_AUTOCONF, |
155 | .scscr = SCSCR_RE | SCSCR_TE, | ||
156 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
143 | .type = PORT_SCIFB, | 157 | .type = PORT_SCIFB, |
144 | .irqs = { evt2irq(0x0d60), evt2irq(0x0d60), | 158 | .irqs = { evt2irq(0x0d60), evt2irq(0x0d60), |
145 | evt2irq(0x0d60), evt2irq(0x0d60) }, | 159 | evt2irq(0x0d60), evt2irq(0x0d60) }, |
diff --git a/arch/arm/mach-shmobile/setup-sh7377.c b/arch/arm/mach-shmobile/setup-sh7377.c index 575dbd6c2f1d..8099b0b8a934 100644 --- a/arch/arm/mach-shmobile/setup-sh7377.c +++ b/arch/arm/mach-shmobile/setup-sh7377.c | |||
@@ -36,6 +36,8 @@ | |||
36 | static struct plat_sci_port scif0_platform_data = { | 36 | static struct plat_sci_port scif0_platform_data = { |
37 | .mapbase = 0xe6c40000, | 37 | .mapbase = 0xe6c40000, |
38 | .flags = UPF_BOOT_AUTOCONF, | 38 | .flags = UPF_BOOT_AUTOCONF, |
39 | .scscr = SCSCR_RE | SCSCR_TE, | ||
40 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
39 | .type = PORT_SCIF, | 41 | .type = PORT_SCIF, |
40 | .irqs = { evt2irq(0xc00), evt2irq(0xc00), | 42 | .irqs = { evt2irq(0xc00), evt2irq(0xc00), |
41 | evt2irq(0xc00), evt2irq(0xc00) }, | 43 | evt2irq(0xc00), evt2irq(0xc00) }, |
@@ -53,6 +55,8 @@ static struct platform_device scif0_device = { | |||
53 | static struct plat_sci_port scif1_platform_data = { | 55 | static struct plat_sci_port scif1_platform_data = { |
54 | .mapbase = 0xe6c50000, | 56 | .mapbase = 0xe6c50000, |
55 | .flags = UPF_BOOT_AUTOCONF, | 57 | .flags = UPF_BOOT_AUTOCONF, |
58 | .scscr = SCSCR_RE | SCSCR_TE, | ||
59 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
56 | .type = PORT_SCIF, | 60 | .type = PORT_SCIF, |
57 | .irqs = { evt2irq(0xc20), evt2irq(0xc20), | 61 | .irqs = { evt2irq(0xc20), evt2irq(0xc20), |
58 | evt2irq(0xc20), evt2irq(0xc20) }, | 62 | evt2irq(0xc20), evt2irq(0xc20) }, |
@@ -70,6 +74,8 @@ static struct platform_device scif1_device = { | |||
70 | static struct plat_sci_port scif2_platform_data = { | 74 | static struct plat_sci_port scif2_platform_data = { |
71 | .mapbase = 0xe6c60000, | 75 | .mapbase = 0xe6c60000, |
72 | .flags = UPF_BOOT_AUTOCONF, | 76 | .flags = UPF_BOOT_AUTOCONF, |
77 | .scscr = SCSCR_RE | SCSCR_TE, | ||
78 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
73 | .type = PORT_SCIF, | 79 | .type = PORT_SCIF, |
74 | .irqs = { evt2irq(0xc40), evt2irq(0xc40), | 80 | .irqs = { evt2irq(0xc40), evt2irq(0xc40), |
75 | evt2irq(0xc40), evt2irq(0xc40) }, | 81 | evt2irq(0xc40), evt2irq(0xc40) }, |
@@ -87,6 +93,8 @@ static struct platform_device scif2_device = { | |||
87 | static struct plat_sci_port scif3_platform_data = { | 93 | static struct plat_sci_port scif3_platform_data = { |
88 | .mapbase = 0xe6c70000, | 94 | .mapbase = 0xe6c70000, |
89 | .flags = UPF_BOOT_AUTOCONF, | 95 | .flags = UPF_BOOT_AUTOCONF, |
96 | .scscr = SCSCR_RE | SCSCR_TE, | ||
97 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
90 | .type = PORT_SCIF, | 98 | .type = PORT_SCIF, |
91 | .irqs = { evt2irq(0xc60), evt2irq(0xc60), | 99 | .irqs = { evt2irq(0xc60), evt2irq(0xc60), |
92 | evt2irq(0xc60), evt2irq(0xc60) }, | 100 | evt2irq(0xc60), evt2irq(0xc60) }, |
@@ -104,6 +112,8 @@ static struct platform_device scif3_device = { | |||
104 | static struct plat_sci_port scif4_platform_data = { | 112 | static struct plat_sci_port scif4_platform_data = { |
105 | .mapbase = 0xe6c80000, | 113 | .mapbase = 0xe6c80000, |
106 | .flags = UPF_BOOT_AUTOCONF, | 114 | .flags = UPF_BOOT_AUTOCONF, |
115 | .scscr = SCSCR_RE | SCSCR_TE, | ||
116 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
107 | .type = PORT_SCIF, | 117 | .type = PORT_SCIF, |
108 | .irqs = { evt2irq(0xd20), evt2irq(0xd20), | 118 | .irqs = { evt2irq(0xd20), evt2irq(0xd20), |
109 | evt2irq(0xd20), evt2irq(0xd20) }, | 119 | evt2irq(0xd20), evt2irq(0xd20) }, |
@@ -121,6 +131,8 @@ static struct platform_device scif4_device = { | |||
121 | static struct plat_sci_port scif5_platform_data = { | 131 | static struct plat_sci_port scif5_platform_data = { |
122 | .mapbase = 0xe6cb0000, | 132 | .mapbase = 0xe6cb0000, |
123 | .flags = UPF_BOOT_AUTOCONF, | 133 | .flags = UPF_BOOT_AUTOCONF, |
134 | .scscr = SCSCR_RE | SCSCR_TE, | ||
135 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
124 | .type = PORT_SCIF, | 136 | .type = PORT_SCIF, |
125 | .irqs = { evt2irq(0xd40), evt2irq(0xd40), | 137 | .irqs = { evt2irq(0xd40), evt2irq(0xd40), |
126 | evt2irq(0xd40), evt2irq(0xd40) }, | 138 | evt2irq(0xd40), evt2irq(0xd40) }, |
@@ -138,6 +150,8 @@ static struct platform_device scif5_device = { | |||
138 | static struct plat_sci_port scif6_platform_data = { | 150 | static struct plat_sci_port scif6_platform_data = { |
139 | .mapbase = 0xe6cc0000, | 151 | .mapbase = 0xe6cc0000, |
140 | .flags = UPF_BOOT_AUTOCONF, | 152 | .flags = UPF_BOOT_AUTOCONF, |
153 | .scscr = SCSCR_RE | SCSCR_TE, | ||
154 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
141 | .type = PORT_SCIF, | 155 | .type = PORT_SCIF, |
142 | .irqs = { intcs_evt2irq(0x1a80), intcs_evt2irq(0x1a80), | 156 | .irqs = { intcs_evt2irq(0x1a80), intcs_evt2irq(0x1a80), |
143 | intcs_evt2irq(0x1a80), intcs_evt2irq(0x1a80) }, | 157 | intcs_evt2irq(0x1a80), intcs_evt2irq(0x1a80) }, |
@@ -155,6 +169,8 @@ static struct platform_device scif6_device = { | |||
155 | static struct plat_sci_port scif7_platform_data = { | 169 | static struct plat_sci_port scif7_platform_data = { |
156 | .mapbase = 0xe6c30000, | 170 | .mapbase = 0xe6c30000, |
157 | .flags = UPF_BOOT_AUTOCONF, | 171 | .flags = UPF_BOOT_AUTOCONF, |
172 | .scscr = SCSCR_RE | SCSCR_TE, | ||
173 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
158 | .type = PORT_SCIF, | 174 | .type = PORT_SCIF, |
159 | .irqs = { evt2irq(0xd60), evt2irq(0xd60), | 175 | .irqs = { evt2irq(0xd60), evt2irq(0xd60), |
160 | evt2irq(0xd60), evt2irq(0xd60) }, | 176 | evt2irq(0xd60), evt2irq(0xd60) }, |
diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c index f1eff8b37bd6..685c40a2f5e6 100644 --- a/arch/arm/mach-shmobile/setup-sh73a0.c +++ b/arch/arm/mach-shmobile/setup-sh73a0.c | |||
@@ -36,6 +36,8 @@ | |||
36 | static struct plat_sci_port scif0_platform_data = { | 36 | static struct plat_sci_port scif0_platform_data = { |
37 | .mapbase = 0xe6c40000, | 37 | .mapbase = 0xe6c40000, |
38 | .flags = UPF_BOOT_AUTOCONF, | 38 | .flags = UPF_BOOT_AUTOCONF, |
39 | .scscr = SCSCR_RE | SCSCR_TE, | ||
40 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
39 | .type = PORT_SCIFA, | 41 | .type = PORT_SCIFA, |
40 | .irqs = { gic_spi(72), gic_spi(72), | 42 | .irqs = { gic_spi(72), gic_spi(72), |
41 | gic_spi(72), gic_spi(72) }, | 43 | gic_spi(72), gic_spi(72) }, |
@@ -52,6 +54,8 @@ static struct platform_device scif0_device = { | |||
52 | static struct plat_sci_port scif1_platform_data = { | 54 | static struct plat_sci_port scif1_platform_data = { |
53 | .mapbase = 0xe6c50000, | 55 | .mapbase = 0xe6c50000, |
54 | .flags = UPF_BOOT_AUTOCONF, | 56 | .flags = UPF_BOOT_AUTOCONF, |
57 | .scscr = SCSCR_RE | SCSCR_TE, | ||
58 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
55 | .type = PORT_SCIFA, | 59 | .type = PORT_SCIFA, |
56 | .irqs = { gic_spi(73), gic_spi(73), | 60 | .irqs = { gic_spi(73), gic_spi(73), |
57 | gic_spi(73), gic_spi(73) }, | 61 | gic_spi(73), gic_spi(73) }, |
@@ -68,6 +72,8 @@ static struct platform_device scif1_device = { | |||
68 | static struct plat_sci_port scif2_platform_data = { | 72 | static struct plat_sci_port scif2_platform_data = { |
69 | .mapbase = 0xe6c60000, | 73 | .mapbase = 0xe6c60000, |
70 | .flags = UPF_BOOT_AUTOCONF, | 74 | .flags = UPF_BOOT_AUTOCONF, |
75 | .scscr = SCSCR_RE | SCSCR_TE, | ||
76 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
71 | .type = PORT_SCIFA, | 77 | .type = PORT_SCIFA, |
72 | .irqs = { gic_spi(74), gic_spi(74), | 78 | .irqs = { gic_spi(74), gic_spi(74), |
73 | gic_spi(74), gic_spi(74) }, | 79 | gic_spi(74), gic_spi(74) }, |
@@ -84,6 +90,8 @@ static struct platform_device scif2_device = { | |||
84 | static struct plat_sci_port scif3_platform_data = { | 90 | static struct plat_sci_port scif3_platform_data = { |
85 | .mapbase = 0xe6c70000, | 91 | .mapbase = 0xe6c70000, |
86 | .flags = UPF_BOOT_AUTOCONF, | 92 | .flags = UPF_BOOT_AUTOCONF, |
93 | .scscr = SCSCR_RE | SCSCR_TE, | ||
94 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
87 | .type = PORT_SCIFA, | 95 | .type = PORT_SCIFA, |
88 | .irqs = { gic_spi(75), gic_spi(75), | 96 | .irqs = { gic_spi(75), gic_spi(75), |
89 | gic_spi(75), gic_spi(75) }, | 97 | gic_spi(75), gic_spi(75) }, |
@@ -100,6 +108,8 @@ static struct platform_device scif3_device = { | |||
100 | static struct plat_sci_port scif4_platform_data = { | 108 | static struct plat_sci_port scif4_platform_data = { |
101 | .mapbase = 0xe6c80000, | 109 | .mapbase = 0xe6c80000, |
102 | .flags = UPF_BOOT_AUTOCONF, | 110 | .flags = UPF_BOOT_AUTOCONF, |
111 | .scscr = SCSCR_RE | SCSCR_TE, | ||
112 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
103 | .type = PORT_SCIFA, | 113 | .type = PORT_SCIFA, |
104 | .irqs = { gic_spi(78), gic_spi(78), | 114 | .irqs = { gic_spi(78), gic_spi(78), |
105 | gic_spi(78), gic_spi(78) }, | 115 | gic_spi(78), gic_spi(78) }, |
@@ -116,6 +126,8 @@ static struct platform_device scif4_device = { | |||
116 | static struct plat_sci_port scif5_platform_data = { | 126 | static struct plat_sci_port scif5_platform_data = { |
117 | .mapbase = 0xe6cb0000, | 127 | .mapbase = 0xe6cb0000, |
118 | .flags = UPF_BOOT_AUTOCONF, | 128 | .flags = UPF_BOOT_AUTOCONF, |
129 | .scscr = SCSCR_RE | SCSCR_TE, | ||
130 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
119 | .type = PORT_SCIFA, | 131 | .type = PORT_SCIFA, |
120 | .irqs = { gic_spi(79), gic_spi(79), | 132 | .irqs = { gic_spi(79), gic_spi(79), |
121 | gic_spi(79), gic_spi(79) }, | 133 | gic_spi(79), gic_spi(79) }, |
@@ -132,6 +144,8 @@ static struct platform_device scif5_device = { | |||
132 | static struct plat_sci_port scif6_platform_data = { | 144 | static struct plat_sci_port scif6_platform_data = { |
133 | .mapbase = 0xe6cc0000, | 145 | .mapbase = 0xe6cc0000, |
134 | .flags = UPF_BOOT_AUTOCONF, | 146 | .flags = UPF_BOOT_AUTOCONF, |
147 | .scscr = SCSCR_RE | SCSCR_TE, | ||
148 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
135 | .type = PORT_SCIFA, | 149 | .type = PORT_SCIFA, |
136 | .irqs = { gic_spi(156), gic_spi(156), | 150 | .irqs = { gic_spi(156), gic_spi(156), |
137 | gic_spi(156), gic_spi(156) }, | 151 | gic_spi(156), gic_spi(156) }, |
@@ -148,6 +162,8 @@ static struct platform_device scif6_device = { | |||
148 | static struct plat_sci_port scif7_platform_data = { | 162 | static struct plat_sci_port scif7_platform_data = { |
149 | .mapbase = 0xe6cd0000, | 163 | .mapbase = 0xe6cd0000, |
150 | .flags = UPF_BOOT_AUTOCONF, | 164 | .flags = UPF_BOOT_AUTOCONF, |
165 | .scscr = SCSCR_RE | SCSCR_TE, | ||
166 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
151 | .type = PORT_SCIFA, | 167 | .type = PORT_SCIFA, |
152 | .irqs = { gic_spi(143), gic_spi(143), | 168 | .irqs = { gic_spi(143), gic_spi(143), |
153 | gic_spi(143), gic_spi(143) }, | 169 | gic_spi(143), gic_spi(143) }, |
@@ -164,6 +180,8 @@ static struct platform_device scif7_device = { | |||
164 | static struct plat_sci_port scif8_platform_data = { | 180 | static struct plat_sci_port scif8_platform_data = { |
165 | .mapbase = 0xe6c30000, | 181 | .mapbase = 0xe6c30000, |
166 | .flags = UPF_BOOT_AUTOCONF, | 182 | .flags = UPF_BOOT_AUTOCONF, |
183 | .scscr = SCSCR_RE | SCSCR_TE, | ||
184 | .scbrr_algo_id = SCBRR_ALGO_4, | ||
167 | .type = PORT_SCIFB, | 185 | .type = PORT_SCIFB, |
168 | .irqs = { gic_spi(80), gic_spi(80), | 186 | .irqs = { gic_spi(80), gic_spi(80), |
169 | gic_spi(80), gic_spi(80) }, | 187 | gic_spi(80), gic_spi(80) }, |
diff --git a/arch/arm/mach-spear3xx/spear300.c b/arch/arm/mach-spear3xx/spear300.c index 3560f8c1e723..5aa2d54ebfaa 100644 --- a/arch/arm/mach-spear3xx/spear300.c +++ b/arch/arm/mach-spear3xx/spear300.c | |||
@@ -371,7 +371,7 @@ struct pmx_driver pmx_driver = { | |||
371 | }; | 371 | }; |
372 | 372 | ||
373 | /* Add spear300 specific devices here */ | 373 | /* Add spear300 specific devices here */ |
374 | /* arm gpio1 device registeration */ | 374 | /* arm gpio1 device registration */ |
375 | static struct pl061_platform_data gpio1_plat_data = { | 375 | static struct pl061_platform_data gpio1_plat_data = { |
376 | .gpio_base = 8, | 376 | .gpio_base = 8, |
377 | .irq_base = SPEAR_GPIO1_INT_BASE, | 377 | .irq_base = SPEAR_GPIO1_INT_BASE, |
@@ -451,7 +451,7 @@ void __init spear300_init(void) | |||
451 | /* call spear3xx family common init function */ | 451 | /* call spear3xx family common init function */ |
452 | spear3xx_init(); | 452 | spear3xx_init(); |
453 | 453 | ||
454 | /* shared irq registeration */ | 454 | /* shared irq registration */ |
455 | shirq_ras1.regs.base = | 455 | shirq_ras1.regs.base = |
456 | ioremap(SPEAR300_TELECOM_BASE, SPEAR300_TELECOM_REG_SIZE); | 456 | ioremap(SPEAR300_TELECOM_BASE, SPEAR300_TELECOM_REG_SIZE); |
457 | if (shirq_ras1.regs.base) { | 457 | if (shirq_ras1.regs.base) { |
diff --git a/arch/arm/mach-spear3xx/spear310.c b/arch/arm/mach-spear3xx/spear310.c index 96a1ab824bac..53b41b52d7ee 100644 --- a/arch/arm/mach-spear3xx/spear310.c +++ b/arch/arm/mach-spear3xx/spear310.c | |||
@@ -266,7 +266,7 @@ void __init spear310_init(void) | |||
266 | /* call spear3xx family common init function */ | 266 | /* call spear3xx family common init function */ |
267 | spear3xx_init(); | 267 | spear3xx_init(); |
268 | 268 | ||
269 | /* shared irq registeration */ | 269 | /* shared irq registration */ |
270 | base = ioremap(SPEAR310_SOC_CONFIG_BASE, SPEAR310_SOC_CONFIG_SIZE); | 270 | base = ioremap(SPEAR310_SOC_CONFIG_BASE, SPEAR310_SOC_CONFIG_SIZE); |
271 | if (base) { | 271 | if (base) { |
272 | /* shirq 1 */ | 272 | /* shirq 1 */ |
diff --git a/arch/arm/mach-spear3xx/spear320.c b/arch/arm/mach-spear3xx/spear320.c index 6a1219549369..88b465284c36 100644 --- a/arch/arm/mach-spear3xx/spear320.c +++ b/arch/arm/mach-spear3xx/spear320.c | |||
@@ -519,7 +519,7 @@ void __init spear320_init(void) | |||
519 | /* call spear3xx family common init function */ | 519 | /* call spear3xx family common init function */ |
520 | spear3xx_init(); | 520 | spear3xx_init(); |
521 | 521 | ||
522 | /* shared irq registeration */ | 522 | /* shared irq registration */ |
523 | base = ioremap(SPEAR320_SOC_CONFIG_BASE, SPEAR320_SOC_CONFIG_SIZE); | 523 | base = ioremap(SPEAR320_SOC_CONFIG_BASE, SPEAR320_SOC_CONFIG_SIZE); |
524 | if (base) { | 524 | if (base) { |
525 | /* shirq 1 */ | 525 | /* shirq 1 */ |
diff --git a/arch/arm/mach-spear3xx/spear3xx.c b/arch/arm/mach-spear3xx/spear3xx.c index e87313aeae20..52f553c8c46d 100644 --- a/arch/arm/mach-spear3xx/spear3xx.c +++ b/arch/arm/mach-spear3xx/spear3xx.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <mach/spear.h> | 22 | #include <mach/spear.h> |
23 | 23 | ||
24 | /* Add spear3xx machines common devices here */ | 24 | /* Add spear3xx machines common devices here */ |
25 | /* gpio device registeration */ | 25 | /* gpio device registration */ |
26 | static struct pl061_platform_data gpio_plat_data = { | 26 | static struct pl061_platform_data gpio_plat_data = { |
27 | .gpio_base = 0, | 27 | .gpio_base = 0, |
28 | .irq_base = SPEAR_GPIO_INT_BASE, | 28 | .irq_base = SPEAR_GPIO_INT_BASE, |
@@ -41,7 +41,7 @@ struct amba_device gpio_device = { | |||
41 | .irq = {IRQ_BASIC_GPIO, NO_IRQ}, | 41 | .irq = {IRQ_BASIC_GPIO, NO_IRQ}, |
42 | }; | 42 | }; |
43 | 43 | ||
44 | /* uart device registeration */ | 44 | /* uart device registration */ |
45 | struct amba_device uart_device = { | 45 | struct amba_device uart_device = { |
46 | .dev = { | 46 | .dev = { |
47 | .init_name = "uart", | 47 | .init_name = "uart", |
@@ -543,6 +543,6 @@ void spear_pmx_init(struct pmx_driver *pmx_driver, uint base, uint size) | |||
543 | 543 | ||
544 | pmx_fail: | 544 | pmx_fail: |
545 | if (ret) | 545 | if (ret) |
546 | printk(KERN_ERR "padmux: registeration failed. err no: %d\n", | 546 | printk(KERN_ERR "padmux: registration failed. err no: %d\n", |
547 | ret); | 547 | ret); |
548 | } | 548 | } |
diff --git a/arch/arm/mach-spear6xx/spear6xx.c b/arch/arm/mach-spear6xx/spear6xx.c index baf6bcc3169c..f2fe14e8471d 100644 --- a/arch/arm/mach-spear6xx/spear6xx.c +++ b/arch/arm/mach-spear6xx/spear6xx.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <mach/spear.h> | 23 | #include <mach/spear.h> |
24 | 24 | ||
25 | /* Add spear6xx machines common devices here */ | 25 | /* Add spear6xx machines common devices here */ |
26 | /* uart device registeration */ | 26 | /* uart device registration */ |
27 | struct amba_device uart_device[] = { | 27 | struct amba_device uart_device[] = { |
28 | { | 28 | { |
29 | .dev = { | 29 | .dev = { |
@@ -50,7 +50,7 @@ struct amba_device uart_device[] = { | |||
50 | } | 50 | } |
51 | }; | 51 | }; |
52 | 52 | ||
53 | /* gpio device registeration */ | 53 | /* gpio device registration */ |
54 | static struct pl061_platform_data gpio_plat_data[] = { | 54 | static struct pl061_platform_data gpio_plat_data[] = { |
55 | { | 55 | { |
56 | .gpio_base = 0, | 56 | .gpio_base = 0, |
diff --git a/arch/arm/mach-tegra/hotplug.c b/arch/arm/mach-tegra/hotplug.c index a5cb1ce76ff2..f3294040d357 100644 --- a/arch/arm/mach-tegra/hotplug.c +++ b/arch/arm/mach-tegra/hotplug.c | |||
@@ -26,10 +26,10 @@ static inline void cpu_enter_lowpower(void) | |||
26 | * Turn off coherency | 26 | * Turn off coherency |
27 | */ | 27 | */ |
28 | " mrc p15, 0, %0, c1, c0, 1\n" | 28 | " mrc p15, 0, %0, c1, c0, 1\n" |
29 | " bic %0, %0, %2\n" | 29 | " bic %0, %0, #0x20\n" |
30 | " mcr p15, 0, %0, c1, c0, 1\n" | 30 | " mcr p15, 0, %0, c1, c0, 1\n" |
31 | " mrc p15, 0, %0, c1, c0, 0\n" | 31 | " mrc p15, 0, %0, c1, c0, 0\n" |
32 | " bic %0, %0, #0x04\n" | 32 | " bic %0, %0, %2\n" |
33 | " mcr p15, 0, %0, c1, c0, 0\n" | 33 | " mcr p15, 0, %0, c1, c0, 0\n" |
34 | : "=&r" (v) | 34 | : "=&r" (v) |
35 | : "r" (0), "Ir" (CR_C) | 35 | : "r" (0), "Ir" (CR_C) |
diff --git a/arch/arm/mach-u300/Kconfig b/arch/arm/mach-u300/Kconfig index 801b21e7f677..32a7b0f7e9f7 100644 --- a/arch/arm/mach-u300/Kconfig +++ b/arch/arm/mach-u300/Kconfig | |||
@@ -64,7 +64,7 @@ config MACH_U300_DUAL_RAM | |||
64 | bool "Dual RAM" | 64 | bool "Dual RAM" |
65 | help | 65 | help |
66 | Select this if you want support for Dual RAM phones. | 66 | Select this if you want support for Dual RAM phones. |
67 | This is two RAM memorys on different EMIFs. | 67 | This is two RAM memories on different EMIFs. |
68 | endchoice | 68 | endchoice |
69 | 69 | ||
70 | config U300_DEBUG | 70 | config U300_DEBUG |
diff --git a/arch/arm/mach-u300/include/mach/coh901318.h b/arch/arm/mach-u300/include/mach/coh901318.h index 193da2df732c..6193aaa47794 100644 --- a/arch/arm/mach-u300/include/mach/coh901318.h +++ b/arch/arm/mach-u300/include/mach/coh901318.h | |||
@@ -24,7 +24,7 @@ | |||
24 | * @src_addr: transfer source address | 24 | * @src_addr: transfer source address |
25 | * @dst_addr: transfer destination address | 25 | * @dst_addr: transfer destination address |
26 | * @link_addr: physical address to next lli | 26 | * @link_addr: physical address to next lli |
27 | * @virt_link_addr: virtual addres of next lli (only used by pool_free) | 27 | * @virt_link_addr: virtual address of next lli (only used by pool_free) |
28 | * @phy_this: physical address of current lli (only used by pool_free) | 28 | * @phy_this: physical address of current lli (only used by pool_free) |
29 | */ | 29 | */ |
30 | struct coh901318_lli { | 30 | struct coh901318_lli { |
@@ -90,7 +90,7 @@ struct powersave { | |||
90 | * struct coh901318_platform - platform arch structure | 90 | * struct coh901318_platform - platform arch structure |
91 | * @chans_slave: specifying dma slave channels | 91 | * @chans_slave: specifying dma slave channels |
92 | * @chans_memcpy: specifying dma memcpy channels | 92 | * @chans_memcpy: specifying dma memcpy channels |
93 | * @access_memory_state: requesting DMA memeory access (on / off) | 93 | * @access_memory_state: requesting DMA memory access (on / off) |
94 | * @chan_conf: dma channel configurations | 94 | * @chan_conf: dma channel configurations |
95 | * @max_channels: max number of dma chanenls | 95 | * @max_channels: max number of dma chanenls |
96 | */ | 96 | */ |
diff --git a/arch/arm/mach-ux500/board-mop500-regulators.c b/arch/arm/mach-ux500/board-mop500-regulators.c index 1187f1fc2e53..533967c2d095 100644 --- a/arch/arm/mach-ux500/board-mop500-regulators.c +++ b/arch/arm/mach-ux500/board-mop500-regulators.c | |||
@@ -3,99 +3,94 @@ | |||
3 | * | 3 | * |
4 | * License Terms: GNU General Public License v2 | 4 | * License Terms: GNU General Public License v2 |
5 | * | 5 | * |
6 | * Author: Sundar Iyer <sundar.iyer@stericsson.com> | 6 | * Authors: Sundar Iyer <sundar.iyer@stericsson.com> |
7 | * Bengt Jonsson <bengt.g.jonsson@stericsson.com> | ||
7 | * | 8 | * |
8 | * MOP500 board specific initialization for regulators | 9 | * MOP500 board specific initialization for regulators |
9 | */ | 10 | */ |
10 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
11 | #include <linux/regulator/machine.h> | 12 | #include <linux/regulator/machine.h> |
13 | #include <linux/regulator/ab8500.h> | ||
12 | 14 | ||
13 | /* supplies to the display/camera */ | 15 | /* AB8500 regulators */ |
14 | static struct regulator_init_data ab8500_vaux1_regulator = { | 16 | struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS] = { |
15 | .constraints = { | 17 | /* supplies to the display/camera */ |
16 | .name = "V-DISPLAY", | 18 | [AB8500_LDO_AUX1] = { |
17 | .min_uV = 2500000, | 19 | .constraints = { |
18 | .max_uV = 2900000, | 20 | .name = "V-DISPLAY", |
19 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE| | 21 | .min_uV = 2500000, |
20 | REGULATOR_CHANGE_STATUS, | 22 | .max_uV = 2900000, |
23 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | | ||
24 | REGULATOR_CHANGE_STATUS, | ||
25 | }, | ||
21 | }, | 26 | }, |
22 | }; | 27 | /* supplies to the on-board eMMC */ |
23 | 28 | [AB8500_LDO_AUX2] = { | |
24 | /* supplies to the on-board eMMC */ | 29 | .constraints = { |
25 | static struct regulator_init_data ab8500_vaux2_regulator = { | 30 | .name = "V-eMMC1", |
26 | .constraints = { | 31 | .min_uV = 1100000, |
27 | .name = "V-eMMC1", | 32 | .max_uV = 3300000, |
28 | .min_uV = 1100000, | 33 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | |
29 | .max_uV = 3300000, | 34 | REGULATOR_CHANGE_STATUS, |
30 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE| | 35 | }, |
31 | REGULATOR_CHANGE_STATUS, | ||
32 | }, | 36 | }, |
33 | }; | 37 | /* supply for VAUX3, supplies to SDcard slots */ |
34 | 38 | [AB8500_LDO_AUX3] = { | |
35 | /* supply for VAUX3, supplies to SDcard slots */ | 39 | .constraints = { |
36 | static struct regulator_init_data ab8500_vaux3_regulator = { | 40 | .name = "V-MMC-SD", |
37 | .constraints = { | 41 | .min_uV = 1100000, |
38 | .name = "V-MMC-SD", | 42 | .max_uV = 3300000, |
39 | .min_uV = 1100000, | 43 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | |
40 | .max_uV = 3300000, | 44 | REGULATOR_CHANGE_STATUS, |
41 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE| | 45 | }, |
42 | REGULATOR_CHANGE_STATUS, | ||
43 | }, | 46 | }, |
44 | }; | 47 | /* supply for tvout, gpadc, TVOUT LDO */ |
45 | 48 | [AB8500_LDO_TVOUT] = { | |
46 | /* supply for tvout, gpadc, TVOUT LDO */ | 49 | .constraints = { |
47 | static struct regulator_init_data ab8500_vtvout_init = { | 50 | .name = "V-TVOUT", |
48 | .constraints = { | 51 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, |
49 | .name = "V-TVOUT", | 52 | }, |
50 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
51 | }, | 53 | }, |
52 | }; | 54 | /* supply for ab8500-vaudio, VAUDIO LDO */ |
53 | 55 | [AB8500_LDO_AUDIO] = { | |
54 | /* supply for ab8500-vaudio, VAUDIO LDO */ | 56 | .constraints = { |
55 | static struct regulator_init_data ab8500_vaudio_init = { | 57 | .name = "V-AUD", |
56 | .constraints = { | 58 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, |
57 | .name = "V-AUD", | 59 | }, |
58 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
59 | }, | 60 | }, |
60 | }; | 61 | /* supply for v-anamic1 VAMic1-LDO */ |
61 | 62 | [AB8500_LDO_ANAMIC1] = { | |
62 | /* supply for v-anamic1 VAMic1-LDO */ | 63 | .constraints = { |
63 | static struct regulator_init_data ab8500_vamic1_init = { | 64 | .name = "V-AMIC1", |
64 | .constraints = { | 65 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, |
65 | .name = "V-AMIC1", | 66 | }, |
66 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
67 | }, | 67 | }, |
68 | }; | 68 | /* supply for v-amic2, VAMIC2 LDO, reuse constants for AMIC1 */ |
69 | 69 | [AB8500_LDO_ANAMIC2] = { | |
70 | /* supply for v-amic2, VAMIC2 LDO, reuse constants for AMIC1 */ | 70 | .constraints = { |
71 | static struct regulator_init_data ab8500_vamic2_init = { | 71 | .name = "V-AMIC2", |
72 | .constraints = { | 72 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, |
73 | .name = "V-AMIC2", | 73 | }, |
74 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
75 | }, | 74 | }, |
76 | }; | 75 | /* supply for v-dmic, VDMIC LDO */ |
77 | 76 | [AB8500_LDO_DMIC] = { | |
78 | /* supply for v-dmic, VDMIC LDO */ | 77 | .constraints = { |
79 | static struct regulator_init_data ab8500_vdmic_init = { | 78 | .name = "V-DMIC", |
80 | .constraints = { | 79 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, |
81 | .name = "V-DMIC", | 80 | }, |
82 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
83 | }, | 81 | }, |
84 | }; | 82 | /* supply for v-intcore12, VINTCORE12 LDO */ |
85 | 83 | [AB8500_LDO_INTCORE] = { | |
86 | /* supply for v-intcore12, VINTCORE12 LDO */ | 84 | .constraints = { |
87 | static struct regulator_init_data ab8500_vintcore_init = { | 85 | .name = "V-INTCORE", |
88 | .constraints = { | 86 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, |
89 | .name = "V-INTCORE", | 87 | }, |
90 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
91 | }, | 88 | }, |
92 | }; | 89 | /* supply for U8500 CSI/DSI, VANA LDO */ |
93 | 90 | [AB8500_LDO_ANA] = { | |
94 | /* supply for U8500 CSI/DSI, VANA LDO */ | 91 | .constraints = { |
95 | static struct regulator_init_data ab8500_vana_init = { | 92 | .name = "V-CSI/DSI", |
96 | .constraints = { | 93 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, |
97 | .name = "V-CSI/DSI", | 94 | }, |
98 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
99 | }, | 95 | }, |
100 | }; | 96 | }; |
101 | |||
diff --git a/arch/arm/mach-ux500/board-mop500-regulators.h b/arch/arm/mach-ux500/board-mop500-regulators.h new file mode 100644 index 000000000000..2675fae52537 --- /dev/null +++ b/arch/arm/mach-ux500/board-mop500-regulators.h | |||
@@ -0,0 +1,19 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2010 | ||
3 | * | ||
4 | * License Terms: GNU General Public License v2 | ||
5 | * | ||
6 | * Author: Bengt Jonsson <bengt.g.jonsson@stericsson.com> for ST-Ericsson | ||
7 | * | ||
8 | * MOP500 board specific initialization for regulators | ||
9 | */ | ||
10 | |||
11 | #ifndef __BOARD_MOP500_REGULATORS_H | ||
12 | #define __BOARD_MOP500_REGULATORS_H | ||
13 | |||
14 | #include <linux/regulator/machine.h> | ||
15 | #include <linux/regulator/ab8500.h> | ||
16 | |||
17 | extern struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS]; | ||
18 | |||
19 | #endif | ||
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index a1c9ea1a66df..a393f57ed2a8 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include "devices-db8500.h" | 35 | #include "devices-db8500.h" |
36 | #include "pins-db8500.h" | 36 | #include "pins-db8500.h" |
37 | #include "board-mop500.h" | 37 | #include "board-mop500.h" |
38 | #include "board-mop500-regulators.h" | ||
38 | 39 | ||
39 | static pin_cfg_t mop500_pins[] = { | 40 | static pin_cfg_t mop500_pins[] = { |
40 | /* SSP0 */ | 41 | /* SSP0 */ |
@@ -80,6 +81,8 @@ static pin_cfg_t mop500_pins[] = { | |||
80 | 81 | ||
81 | static struct ab8500_platform_data ab8500_platdata = { | 82 | static struct ab8500_platform_data ab8500_platdata = { |
82 | .irq_base = MOP500_AB8500_IRQ_BASE, | 83 | .irq_base = MOP500_AB8500_IRQ_BASE, |
84 | .regulator = ab8500_regulators, | ||
85 | .num_regulator = ARRAY_SIZE(ab8500_regulators), | ||
83 | }; | 86 | }; |
84 | 87 | ||
85 | static struct resource ab8500_resources[] = { | 88 | static struct resource ab8500_resources[] = { |
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index fcc1e628e050..9d30c6f804b9 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig | |||
@@ -644,7 +644,7 @@ config ARM_THUMBEE | |||
644 | 644 | ||
645 | config SWP_EMULATE | 645 | config SWP_EMULATE |
646 | bool "Emulate SWP/SWPB instructions" | 646 | bool "Emulate SWP/SWPB instructions" |
647 | depends on CPU_V7 | 647 | depends on CPU_V7 && !CPU_V6 |
648 | select HAVE_PROC_CPU if PROC_FS | 648 | select HAVE_PROC_CPU if PROC_FS |
649 | default y if SMP | 649 | default y if SMP |
650 | help | 650 | help |
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 6b48e0a3d7aa..4771dba61448 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
@@ -577,7 +577,7 @@ EXPORT_SYMBOL(dma_map_sg); | |||
577 | * dma_unmap_sg - unmap a set of SG buffers mapped by dma_map_sg | 577 | * dma_unmap_sg - unmap a set of SG buffers mapped by dma_map_sg |
578 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | 578 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices |
579 | * @sg: list of buffers | 579 | * @sg: list of buffers |
580 | * @nents: number of buffers to unmap (returned from dma_map_sg) | 580 | * @nents: number of buffers to unmap (same as was passed to dma_map_sg) |
581 | * @dir: DMA transfer direction (same as was passed to dma_map_sg) | 581 | * @dir: DMA transfer direction (same as was passed to dma_map_sg) |
582 | * | 582 | * |
583 | * Unmap a set of streaming mode DMA translations. Again, CPU access | 583 | * Unmap a set of streaming mode DMA translations. Again, CPU access |
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index c29f2839f1d2..2b269c955524 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <asm/smp_plat.h> | 18 | #include <asm/smp_plat.h> |
19 | #include <asm/system.h> | 19 | #include <asm/system.h> |
20 | #include <asm/tlbflush.h> | 20 | #include <asm/tlbflush.h> |
21 | #include <asm/smp_plat.h> | ||
22 | 21 | ||
23 | #include "mm.h" | 22 | #include "mm.h" |
24 | 23 | ||
diff --git a/arch/arm/mm/pgd.c b/arch/arm/mm/pgd.c index 93292a18cf77..709244c66fa3 100644 --- a/arch/arm/mm/pgd.c +++ b/arch/arm/mm/pgd.c | |||
@@ -50,7 +50,7 @@ pgd_t *pgd_alloc(struct mm_struct *mm) | |||
50 | if (!new_pmd) | 50 | if (!new_pmd) |
51 | goto no_pmd; | 51 | goto no_pmd; |
52 | 52 | ||
53 | new_pte = pte_alloc_map(mm, new_pmd, 0); | 53 | new_pte = pte_alloc_map(mm, NULL, new_pmd, 0); |
54 | if (!new_pte) | 54 | if (!new_pte) |
55 | goto no_pte; | 55 | goto no_pte; |
56 | 56 | ||
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index b49fab21517c..0c1172b56b4e 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -159,7 +159,9 @@ ENTRY(cpu_v7_set_pte_ext) | |||
159 | tstne r1, #L_PTE_PRESENT | 159 | tstne r1, #L_PTE_PRESENT |
160 | moveq r3, #0 | 160 | moveq r3, #0 |
161 | 161 | ||
162 | str r3, [r0, #2048]! | 162 | ARM( str r3, [r0, #2048]! ) |
163 | THUMB( add r0, r0, #2048 ) | ||
164 | THUMB( str r3, [r0] ) | ||
163 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte | 165 | mcr p15, 0, r0, c7, c10, 1 @ flush_pte |
164 | #endif | 166 | #endif |
165 | mov pc, lr | 167 | mov pc, lr |
diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h index 58a49cc83797..ba65c9231a78 100644 --- a/arch/arm/plat-mxc/include/mach/irqs.h +++ b/arch/arm/plat-mxc/include/mach/irqs.h | |||
@@ -70,7 +70,7 @@ extern int imx_irq_set_priority(unsigned char irq, unsigned char prio); | |||
70 | 70 | ||
71 | /* all normal IRQs can be FIQs */ | 71 | /* all normal IRQs can be FIQs */ |
72 | #define FIQ_START 0 | 72 | #define FIQ_START 0 |
73 | /* switch betwean IRQ and FIQ */ | 73 | /* switch between IRQ and FIQ */ |
74 | extern int mxc_set_irq_fiq(unsigned int irq, unsigned int type); | 74 | extern int mxc_set_irq_fiq(unsigned int irq, unsigned int type); |
75 | 75 | ||
76 | #endif /* __ASM_ARCH_MXC_IRQS_H__ */ | 76 | #endif /* __ASM_ARCH_MXC_IRQS_H__ */ |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 99f57b9c7fa3..971d18636942 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -718,7 +718,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) | |||
718 | case METHOD_GPIO_24XX: | 718 | case METHOD_GPIO_24XX: |
719 | case METHOD_GPIO_44XX: | 719 | case METHOD_GPIO_44XX: |
720 | set_24xx_gpio_triggering(bank, gpio, trigger); | 720 | set_24xx_gpio_triggering(bank, gpio, trigger); |
721 | break; | 721 | return 0; |
722 | #endif | 722 | #endif |
723 | default: | 723 | default: |
724 | goto bad; | 724 | goto bad; |
@@ -756,8 +756,10 @@ static int gpio_irq_type(struct irq_data *d, unsigned type) | |||
756 | spin_lock_irqsave(&bank->lock, flags); | 756 | spin_lock_irqsave(&bank->lock, flags); |
757 | retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type); | 757 | retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type); |
758 | if (retval == 0) { | 758 | if (retval == 0) { |
759 | irq_desc[d->irq].status &= ~IRQ_TYPE_SENSE_MASK; | 759 | struct irq_desc *desc = irq_to_desc(d->irq); |
760 | irq_desc[d->irq].status |= type; | 760 | |
761 | desc->status &= ~IRQ_TYPE_SENSE_MASK; | ||
762 | desc->status |= type; | ||
761 | } | 763 | } |
762 | spin_unlock_irqrestore(&bank->lock, flags); | 764 | spin_unlock_irqrestore(&bank->lock, flags); |
763 | 765 | ||
@@ -1670,7 +1672,9 @@ static void __init omap_gpio_chip_init(struct gpio_bank *bank) | |||
1670 | 1672 | ||
1671 | for (j = bank->virtual_irq_start; | 1673 | for (j = bank->virtual_irq_start; |
1672 | j < bank->virtual_irq_start + bank_width; j++) { | 1674 | j < bank->virtual_irq_start + bank_width; j++) { |
1673 | lockdep_set_class(&irq_desc[j].lock, &gpio_lock_class); | 1675 | struct irq_desc *d = irq_to_desc(j); |
1676 | |||
1677 | lockdep_set_class(&d->lock, &gpio_lock_class); | ||
1674 | set_irq_chip_data(j, bank); | 1678 | set_irq_chip_data(j, bank); |
1675 | if (bank_is_mpuio(bank)) | 1679 | if (bank_is_mpuio(bank)) |
1676 | set_irq_chip(j, &mpuio_irq_chip); | 1680 | set_irq_chip(j, &mpuio_irq_chip); |
diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h index c915a661f1f5..537f4e449f50 100644 --- a/arch/arm/plat-omap/include/plat/display.h +++ b/arch/arm/plat-omap/include/plat/display.h | |||
@@ -42,6 +42,10 @@ | |||
42 | #define DISPC_IRQ_SYNC_LOST (1 << 14) | 42 | #define DISPC_IRQ_SYNC_LOST (1 << 14) |
43 | #define DISPC_IRQ_SYNC_LOST_DIGIT (1 << 15) | 43 | #define DISPC_IRQ_SYNC_LOST_DIGIT (1 << 15) |
44 | #define DISPC_IRQ_WAKEUP (1 << 16) | 44 | #define DISPC_IRQ_WAKEUP (1 << 16) |
45 | #define DISPC_IRQ_SYNC_LOST2 (1 << 17) | ||
46 | #define DISPC_IRQ_VSYNC2 (1 << 18) | ||
47 | #define DISPC_IRQ_ACBIAS_COUNT_STAT2 (1 << 21) | ||
48 | #define DISPC_IRQ_FRAMEDONE2 (1 << 22) | ||
45 | 49 | ||
46 | struct omap_dss_device; | 50 | struct omap_dss_device; |
47 | struct omap_overlay_manager; | 51 | struct omap_overlay_manager; |
@@ -64,6 +68,7 @@ enum omap_plane { | |||
64 | enum omap_channel { | 68 | enum omap_channel { |
65 | OMAP_DSS_CHANNEL_LCD = 0, | 69 | OMAP_DSS_CHANNEL_LCD = 0, |
66 | OMAP_DSS_CHANNEL_DIGIT = 1, | 70 | OMAP_DSS_CHANNEL_DIGIT = 1, |
71 | OMAP_DSS_CHANNEL_LCD2 = 2, | ||
67 | }; | 72 | }; |
68 | 73 | ||
69 | enum omap_color_mode { | 74 | enum omap_color_mode { |
@@ -142,6 +147,7 @@ enum omap_dss_display_state { | |||
142 | enum omap_dss_overlay_managers { | 147 | enum omap_dss_overlay_managers { |
143 | OMAP_DSS_OVL_MGR_LCD, | 148 | OMAP_DSS_OVL_MGR_LCD, |
144 | OMAP_DSS_OVL_MGR_TV, | 149 | OMAP_DSS_OVL_MGR_TV, |
150 | OMAP_DSS_OVL_MGR_LCD2, | ||
145 | }; | 151 | }; |
146 | 152 | ||
147 | enum omap_dss_rotation_type { | 153 | enum omap_dss_rotation_type { |
@@ -268,6 +274,7 @@ struct omap_overlay_info { | |||
268 | u16 out_width; /* if 0, out_width == width */ | 274 | u16 out_width; /* if 0, out_width == width */ |
269 | u16 out_height; /* if 0, out_height == height */ | 275 | u16 out_height; /* if 0, out_height == height */ |
270 | u8 global_alpha; | 276 | u8 global_alpha; |
277 | u8 pre_mult_alpha; | ||
271 | }; | 278 | }; |
272 | 279 | ||
273 | struct omap_overlay { | 280 | struct omap_overlay { |
@@ -351,6 +358,8 @@ struct omap_dss_device { | |||
351 | 358 | ||
352 | enum omap_display_type type; | 359 | enum omap_display_type type; |
353 | 360 | ||
361 | enum omap_channel channel; | ||
362 | |||
354 | union { | 363 | union { |
355 | struct { | 364 | struct { |
356 | u8 data_lines; | 365 | u8 data_lines; |
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 6864a997f2ca..1eee85a8abb3 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h | |||
@@ -351,7 +351,7 @@ struct omap_hwmod_omap2_prcm { | |||
351 | /** | 351 | /** |
352 | * struct omap_hwmod_omap4_prcm - OMAP4-specific PRCM data | 352 | * struct omap_hwmod_omap4_prcm - OMAP4-specific PRCM data |
353 | * @clkctrl_reg: PRCM address of the clock control register | 353 | * @clkctrl_reg: PRCM address of the clock control register |
354 | * @rstctrl_reg: adress of the XXX_RSTCTRL register located in the PRM | 354 | * @rstctrl_reg: address of the XXX_RSTCTRL register located in the PRM |
355 | * @submodule_wkdep_bit: bit shift of the WKDEP range | 355 | * @submodule_wkdep_bit: bit shift of the WKDEP range |
356 | */ | 356 | */ |
357 | struct omap_hwmod_omap4_prcm { | 357 | struct omap_hwmod_omap4_prcm { |
diff --git a/arch/arm/plat-omap/include/plat/panel-generic-dpi.h b/arch/arm/plat-omap/include/plat/panel-generic-dpi.h new file mode 100644 index 000000000000..790619734bcd --- /dev/null +++ b/arch/arm/plat-omap/include/plat/panel-generic-dpi.h | |||
@@ -0,0 +1,37 @@ | |||
1 | /* | ||
2 | * Header for generic DPI panel driver | ||
3 | * | ||
4 | * Copyright (C) 2010 Canonical Ltd. | ||
5 | * Author: Bryan Wu <bryan.wu@canonical.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License version 2 as published by | ||
9 | * the Free Software Foundation. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, but WITHOUT | ||
12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
14 | * more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License along with | ||
17 | * this program. If not, see <http://www.gnu.org/licenses/>. | ||
18 | */ | ||
19 | |||
20 | #ifndef __ARCH_ARM_PLAT_OMAP_PANEL_GENERIC_DPI_H | ||
21 | #define __ARCH_ARM_PLAT_OMAP_PANEL_GENERIC_DPI_H | ||
22 | |||
23 | #include "display.h" | ||
24 | |||
25 | /** | ||
26 | * struct panel_generic_dpi_data - panel driver configuration data | ||
27 | * @name: panel name | ||
28 | * @platform_enable: platform specific panel enable function | ||
29 | * @platform_disable: platform specific panel disable function | ||
30 | */ | ||
31 | struct panel_generic_dpi_data { | ||
32 | const char *name; | ||
33 | int (*platform_enable)(struct omap_dss_device *dssdev); | ||
34 | void (*platform_disable)(struct omap_dss_device *dssdev); | ||
35 | }; | ||
36 | |||
37 | #endif /* __ARCH_ARM_PLAT_OMAP_PANEL_GENERIC_DPI_H */ | ||
diff --git a/arch/arm/plat-omap/include/plat/voltage.h b/arch/arm/plat-omap/include/plat/voltage.h index 0ff123399f3b..5bd204e55c32 100644 --- a/arch/arm/plat-omap/include/plat/voltage.h +++ b/arch/arm/plat-omap/include/plat/voltage.h | |||
@@ -14,6 +14,8 @@ | |||
14 | #ifndef __ARCH_ARM_MACH_OMAP2_VOLTAGE_H | 14 | #ifndef __ARCH_ARM_MACH_OMAP2_VOLTAGE_H |
15 | #define __ARCH_ARM_MACH_OMAP2_VOLTAGE_H | 15 | #define __ARCH_ARM_MACH_OMAP2_VOLTAGE_H |
16 | 16 | ||
17 | #include <linux/err.h> | ||
18 | |||
17 | #define VOLTSCALE_VPFORCEUPDATE 1 | 19 | #define VOLTSCALE_VPFORCEUPDATE 1 |
18 | #define VOLTSCALE_VCBYPASS 2 | 20 | #define VOLTSCALE_VCBYPASS 2 |
19 | 21 | ||
@@ -65,9 +67,6 @@ struct voltagedomain { | |||
65 | char *name; | 67 | char *name; |
66 | }; | 68 | }; |
67 | 69 | ||
68 | /* API to get the voltagedomain pointer */ | ||
69 | struct voltagedomain *omap_voltage_domain_lookup(char *name); | ||
70 | |||
71 | /** | 70 | /** |
72 | * struct omap_volt_data - Omap voltage specific data. | 71 | * struct omap_volt_data - Omap voltage specific data. |
73 | * @voltage_nominal: The possible voltage value in uV | 72 | * @voltage_nominal: The possible voltage value in uV |
@@ -131,16 +130,26 @@ int omap_voltage_register_pmic(struct voltagedomain *voltdm, | |||
131 | struct omap_volt_pmic_info *pmic_info); | 130 | struct omap_volt_pmic_info *pmic_info); |
132 | void omap_change_voltscale_method(struct voltagedomain *voltdm, | 131 | void omap_change_voltscale_method(struct voltagedomain *voltdm, |
133 | int voltscale_method); | 132 | int voltscale_method); |
133 | /* API to get the voltagedomain pointer */ | ||
134 | struct voltagedomain *omap_voltage_domain_lookup(char *name); | ||
135 | |||
134 | int omap_voltage_late_init(void); | 136 | int omap_voltage_late_init(void); |
135 | #else | 137 | #else |
136 | static inline int omap_voltage_register_pmic(struct voltagedomain *voltdm, | 138 | static inline int omap_voltage_register_pmic(struct voltagedomain *voltdm, |
137 | struct omap_volt_pmic_info *pmic_info) {} | 139 | struct omap_volt_pmic_info *pmic_info) |
140 | { | ||
141 | return -EINVAL; | ||
142 | } | ||
138 | static inline void omap_change_voltscale_method(struct voltagedomain *voltdm, | 143 | static inline void omap_change_voltscale_method(struct voltagedomain *voltdm, |
139 | int voltscale_method) {} | 144 | int voltscale_method) {} |
140 | static inline int omap_voltage_late_init(void) | 145 | static inline int omap_voltage_late_init(void) |
141 | { | 146 | { |
142 | return -EINVAL; | 147 | return -EINVAL; |
143 | } | 148 | } |
149 | static inline struct voltagedomain *omap_voltage_domain_lookup(char *name) | ||
150 | { | ||
151 | return ERR_PTR(-EINVAL); | ||
152 | } | ||
144 | #endif | 153 | #endif |
145 | 154 | ||
146 | #endif | 155 | #endif |
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c index 10ce6666687e..268f3ed0a105 100644 --- a/arch/arm/plat-s3c24xx/devs.c +++ b/arch/arm/plat-s3c24xx/devs.c | |||
@@ -258,21 +258,6 @@ struct platform_device s3c_device_iis = { | |||
258 | 258 | ||
259 | EXPORT_SYMBOL(s3c_device_iis); | 259 | EXPORT_SYMBOL(s3c_device_iis); |
260 | 260 | ||
261 | /* ASoC PCM DMA */ | ||
262 | |||
263 | static u64 s3c_device_audio_dmamask = 0xffffffffUL; | ||
264 | |||
265 | struct platform_device s3c_device_pcm = { | ||
266 | .name = "s3c24xx-pcm-audio", | ||
267 | .id = -1, | ||
268 | .dev = { | ||
269 | .dma_mask = &s3c_device_audio_dmamask, | ||
270 | .coherent_dma_mask = 0xffffffffUL | ||
271 | } | ||
272 | }; | ||
273 | |||
274 | EXPORT_SYMBOL(s3c_device_pcm); | ||
275 | |||
276 | /* RTC */ | 261 | /* RTC */ |
277 | 262 | ||
278 | static struct resource s3c_rtc_resource[] = { | 263 | static struct resource s3c_rtc_resource[] = { |
@@ -495,8 +480,10 @@ static struct resource s3c_ac97_resource[] = { | |||
495 | }, | 480 | }, |
496 | }; | 481 | }; |
497 | 482 | ||
483 | static u64 s3c_device_audio_dmamask = 0xffffffffUL; | ||
484 | |||
498 | struct platform_device s3c_device_ac97 = { | 485 | struct platform_device s3c_device_ac97 = { |
499 | .name = "s3c-ac97", | 486 | .name = "samsung-ac97", |
500 | .id = -1, | 487 | .id = -1, |
501 | .num_resources = ARRAY_SIZE(s3c_ac97_resource), | 488 | .num_resources = ARRAY_SIZE(s3c_ac97_resource), |
502 | .resource = s3c_ac97_resource, | 489 | .resource = s3c_ac97_resource, |
diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile index 09dbd78b56f5..29932f88a8d6 100644 --- a/arch/arm/plat-samsung/Makefile +++ b/arch/arm/plat-samsung/Makefile | |||
@@ -17,6 +17,7 @@ obj-y += clock.o | |||
17 | obj-y += pwm-clock.o | 17 | obj-y += pwm-clock.o |
18 | obj-y += gpio.o | 18 | obj-y += gpio.o |
19 | obj-y += gpio-config.o | 19 | obj-y += gpio-config.o |
20 | obj-y += dev-asocdma.o | ||
20 | 21 | ||
21 | obj-$(CONFIG_SAMSUNG_GPIOLIB_4BIT) += gpiolib.o | 22 | obj-$(CONFIG_SAMSUNG_GPIOLIB_4BIT) += gpiolib.o |
22 | obj-$(CONFIG_SAMSUNG_CLKSRC) += clock-clksrc.o | 23 | obj-$(CONFIG_SAMSUNG_CLKSRC) += clock-clksrc.o |
diff --git a/arch/arm/plat-samsung/dev-asocdma.c b/arch/arm/plat-samsung/dev-asocdma.c new file mode 100644 index 000000000000..a068c4f42d56 --- /dev/null +++ b/arch/arm/plat-samsung/dev-asocdma.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* linux/arch/arm/plat-samsung/dev-asocdma.c | ||
2 | * | ||
3 | * Copyright (c) 2010 Samsung Electronics Co. Ltd | ||
4 | * Jaswinder Singh <jassi.brar@samsung.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #include <linux/platform_device.h> | ||
12 | #include <linux/dma-mapping.h> | ||
13 | #include <plat/devs.h> | ||
14 | |||
15 | static u64 audio_dmamask = DMA_BIT_MASK(32); | ||
16 | |||
17 | struct platform_device samsung_asoc_dma = { | ||
18 | .name = "samsung-audio", | ||
19 | .id = -1, | ||
20 | .dev = { | ||
21 | .dma_mask = &audio_dmamask, | ||
22 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
23 | } | ||
24 | }; | ||
25 | EXPORT_SYMBOL(samsung_asoc_dma); | ||
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h index 1be192209a7e..b4d208b42957 100644 --- a/arch/arm/plat-samsung/include/plat/devs.h +++ b/arch/arm/plat-samsung/include/plat/devs.h | |||
@@ -32,7 +32,7 @@ extern struct platform_device s3c64xx_device_iisv4; | |||
32 | extern struct platform_device s3c64xx_device_spi0; | 32 | extern struct platform_device s3c64xx_device_spi0; |
33 | extern struct platform_device s3c64xx_device_spi1; | 33 | extern struct platform_device s3c64xx_device_spi1; |
34 | 34 | ||
35 | extern struct platform_device s3c_device_pcm; | 35 | extern struct platform_device samsung_asoc_dma; |
36 | 36 | ||
37 | extern struct platform_device s3c64xx_device_pcm0; | 37 | extern struct platform_device s3c64xx_device_pcm0; |
38 | extern struct platform_device s3c64xx_device_pcm1; | 38 | extern struct platform_device s3c64xx_device_pcm1; |
diff --git a/arch/arm/plat-samsung/pm.c b/arch/arm/plat-samsung/pm.c index eaa57dc969ae..02d531fb3f81 100644 --- a/arch/arm/plat-samsung/pm.c +++ b/arch/arm/plat-samsung/pm.c | |||
@@ -355,7 +355,7 @@ static void s3c_pm_finish(void) | |||
355 | s3c_pm_check_cleanup(); | 355 | s3c_pm_check_cleanup(); |
356 | } | 356 | } |
357 | 357 | ||
358 | static struct platform_suspend_ops s3c_pm_ops = { | 358 | static const struct platform_suspend_ops s3c_pm_ops = { |
359 | .enter = s3c_pm_enter, | 359 | .enter = s3c_pm_enter, |
360 | .prepare = s3c_pm_prepare, | 360 | .prepare = s3c_pm_prepare, |
361 | .finish = s3c_pm_finish, | 361 | .finish = s3c_pm_finish, |