diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-08-09 13:03:13 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-08-09 13:03:13 -0400 |
commit | 492c71dd545a54dc62df8780bd8d233d771748df (patch) | |
tree | 73960c90dd47938000478b9b3b1228a8c860e65b /arch | |
parent | f0af7245f1725fdc39b32b59c20500448437ddbe (diff) | |
parent | 18365d181fe7fee8b52cd12482200d3a4c48d05e (diff) |
Merge branch 'for-rmk' of git://git.marvell.com/orion
Diffstat (limited to 'arch')
39 files changed, 703 insertions, 31 deletions
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig index 9578b5d9f9c7..1464ffe71717 100644 --- a/arch/arm/configs/orion5x_defconfig +++ b/arch/arm/configs/orion5x_defconfig | |||
@@ -757,7 +757,14 @@ CONFIG_INPUT_EVDEV=y | |||
757 | # | 757 | # |
758 | # Input Device Drivers | 758 | # Input Device Drivers |
759 | # | 759 | # |
760 | # CONFIG_INPUT_KEYBOARD is not set | 760 | CONFIG_INPUT_KEYBOARD=y |
761 | # CONFIG_KEYBOARD_ATKBD is not set | ||
762 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
763 | # CONFIG_KEYBOARD_LKKBD is not set | ||
764 | # CONFIG_KEYBOARD_XTKBD is not set | ||
765 | # CONFIG_KEYBOARD_NEWTON is not set | ||
766 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
767 | CONFIG_KEYBOARD_GPIO=y | ||
761 | # CONFIG_INPUT_MOUSE is not set | 768 | # CONFIG_INPUT_MOUSE is not set |
762 | # CONFIG_INPUT_JOYSTICK is not set | 769 | # CONFIG_INPUT_JOYSTICK is not set |
763 | # CONFIG_INPUT_TABLET is not set | 770 | # CONFIG_INPUT_TABLET is not set |
@@ -1111,11 +1118,11 @@ CONFIG_RTC_DRV_DS1307=y | |||
1111 | CONFIG_RTC_DRV_RS5C372=y | 1118 | CONFIG_RTC_DRV_RS5C372=y |
1112 | # CONFIG_RTC_DRV_ISL1208 is not set | 1119 | # CONFIG_RTC_DRV_ISL1208 is not set |
1113 | # CONFIG_RTC_DRV_X1205 is not set | 1120 | # CONFIG_RTC_DRV_X1205 is not set |
1114 | # CONFIG_RTC_DRV_PCF8563 is not set | 1121 | CONFIG_RTC_DRV_PCF8563=y |
1115 | # CONFIG_RTC_DRV_PCF8583 is not set | 1122 | # CONFIG_RTC_DRV_PCF8583 is not set |
1116 | CONFIG_RTC_DRV_M41T80=y | 1123 | CONFIG_RTC_DRV_M41T80=y |
1117 | # CONFIG_RTC_DRV_M41T80_WDT is not set | 1124 | # CONFIG_RTC_DRV_M41T80_WDT is not set |
1118 | # CONFIG_RTC_DRV_S35390A is not set | 1125 | CONFIG_RTC_DRV_S35390A=y |
1119 | 1126 | ||
1120 | # | 1127 | # |
1121 | # SPI RTC drivers | 1128 | # SPI RTC drivers |
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index 1e070a2b561a..7bcd69a9a88c 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h | |||
@@ -150,6 +150,14 @@ | |||
150 | #endif | 150 | #endif |
151 | 151 | ||
152 | /* | 152 | /* |
153 | * Amount of memory reserved for the vmalloc() area, and minimum | ||
154 | * address for vmalloc mappings. | ||
155 | */ | ||
156 | extern unsigned long vmalloc_reserve; | ||
157 | |||
158 | #define VMALLOC_MIN (void *)(VMALLOC_END - vmalloc_reserve) | ||
159 | |||
160 | /* | ||
153 | * PFNs are used to describe any physical page; this means | 161 | * PFNs are used to describe any physical page; this means |
154 | * PFN 0 == physical address 0. | 162 | * PFN 0 == physical address 0. |
155 | * | 163 | * |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 38f0e7940a13..2ca7038b67a7 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -81,6 +81,8 @@ EXPORT_SYMBOL(system_serial_high); | |||
81 | unsigned int elf_hwcap; | 81 | unsigned int elf_hwcap; |
82 | EXPORT_SYMBOL(elf_hwcap); | 82 | EXPORT_SYMBOL(elf_hwcap); |
83 | 83 | ||
84 | unsigned long __initdata vmalloc_reserve = 128 << 20; | ||
85 | |||
84 | 86 | ||
85 | #ifdef MULTI_CPU | 87 | #ifdef MULTI_CPU |
86 | struct processor processor; | 88 | struct processor processor; |
@@ -501,6 +503,17 @@ static void __init early_mem(char **p) | |||
501 | __early_param("mem=", early_mem); | 503 | __early_param("mem=", early_mem); |
502 | 504 | ||
503 | /* | 505 | /* |
506 | * vmalloc=size forces the vmalloc area to be exactly 'size' | ||
507 | * bytes. This can be used to increase (or decrease) the vmalloc | ||
508 | * area - the default is 128m. | ||
509 | */ | ||
510 | static void __init early_vmalloc(char **arg) | ||
511 | { | ||
512 | vmalloc_reserve = memparse(*arg, arg); | ||
513 | } | ||
514 | __early_param("vmalloc=", early_vmalloc); | ||
515 | |||
516 | /* | ||
504 | * Initial parsing of the command line. | 517 | * Initial parsing of the command line. |
505 | */ | 518 | */ |
506 | static void __init parse_cmdline(char **cmdline_p, char *from) | 519 | static void __init parse_cmdline(char **cmdline_p, char *from) |
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index 0e509b8ad56e..189f16f3619d 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
@@ -15,15 +15,17 @@ | |||
15 | #include <linux/mbus.h> | 15 | #include <linux/mbus.h> |
16 | #include <linux/mv643xx_eth.h> | 16 | #include <linux/mv643xx_eth.h> |
17 | #include <linux/ata_platform.h> | 17 | #include <linux/ata_platform.h> |
18 | #include <linux/spi/orion_spi.h> | ||
18 | #include <asm/page.h> | 19 | #include <asm/page.h> |
19 | #include <asm/timex.h> | 20 | #include <asm/timex.h> |
20 | #include <asm/mach/map.h> | 21 | #include <asm/mach/map.h> |
21 | #include <asm/mach/time.h> | 22 | #include <asm/mach/time.h> |
22 | #include <mach/kirkwood.h> | 23 | #include <mach/kirkwood.h> |
23 | #include <asm/plat-orion/cache-feroceon-l2.h> | 24 | #include <plat/cache-feroceon-l2.h> |
24 | #include <asm/plat-orion/ehci-orion.h> | 25 | #include <plat/ehci-orion.h> |
25 | #include <asm/plat-orion/orion_nand.h> | 26 | #include <plat/mv_xor.h> |
26 | #include <asm/plat-orion/time.h> | 27 | #include <plat/orion_nand.h> |
28 | #include <plat/time.h> | ||
27 | #include "common.h" | 29 | #include "common.h" |
28 | 30 | ||
29 | /***************************************************************************** | 31 | /***************************************************************************** |
@@ -196,6 +198,37 @@ void __init kirkwood_sata_init(struct mv_sata_platform_data *sata_data) | |||
196 | 198 | ||
197 | 199 | ||
198 | /***************************************************************************** | 200 | /***************************************************************************** |
201 | * SPI | ||
202 | ****************************************************************************/ | ||
203 | static struct orion_spi_info kirkwood_spi_plat_data = { | ||
204 | .tclk = KIRKWOOD_TCLK, | ||
205 | }; | ||
206 | |||
207 | static struct resource kirkwood_spi_resources[] = { | ||
208 | { | ||
209 | .start = SPI_PHYS_BASE, | ||
210 | .end = SPI_PHYS_BASE + SZ_512 - 1, | ||
211 | .flags = IORESOURCE_MEM, | ||
212 | }, | ||
213 | }; | ||
214 | |||
215 | static struct platform_device kirkwood_spi = { | ||
216 | .name = "orion_spi", | ||
217 | .id = 0, | ||
218 | .resource = kirkwood_spi_resources, | ||
219 | .dev = { | ||
220 | .platform_data = &kirkwood_spi_plat_data, | ||
221 | }, | ||
222 | .num_resources = ARRAY_SIZE(kirkwood_spi_resources), | ||
223 | }; | ||
224 | |||
225 | void __init kirkwood_spi_init() | ||
226 | { | ||
227 | platform_device_register(&kirkwood_spi); | ||
228 | } | ||
229 | |||
230 | |||
231 | /***************************************************************************** | ||
199 | * UART0 | 232 | * UART0 |
200 | ****************************************************************************/ | 233 | ****************************************************************************/ |
201 | static struct plat_serial8250_port kirkwood_uart0_data[] = { | 234 | static struct plat_serial8250_port kirkwood_uart0_data[] = { |
@@ -284,6 +317,212 @@ void __init kirkwood_uart1_init(void) | |||
284 | 317 | ||
285 | 318 | ||
286 | /***************************************************************************** | 319 | /***************************************************************************** |
320 | * XOR | ||
321 | ****************************************************************************/ | ||
322 | static struct mv_xor_platform_shared_data kirkwood_xor_shared_data = { | ||
323 | .dram = &kirkwood_mbus_dram_info, | ||
324 | }; | ||
325 | |||
326 | static u64 kirkwood_xor_dmamask = DMA_32BIT_MASK; | ||
327 | |||
328 | |||
329 | /***************************************************************************** | ||
330 | * XOR0 | ||
331 | ****************************************************************************/ | ||
332 | static struct resource kirkwood_xor0_shared_resources[] = { | ||
333 | { | ||
334 | .name = "xor 0 low", | ||
335 | .start = XOR0_PHYS_BASE, | ||
336 | .end = XOR0_PHYS_BASE + 0xff, | ||
337 | .flags = IORESOURCE_MEM, | ||
338 | }, { | ||
339 | .name = "xor 0 high", | ||
340 | .start = XOR0_HIGH_PHYS_BASE, | ||
341 | .end = XOR0_HIGH_PHYS_BASE + 0xff, | ||
342 | .flags = IORESOURCE_MEM, | ||
343 | }, | ||
344 | }; | ||
345 | |||
346 | static struct platform_device kirkwood_xor0_shared = { | ||
347 | .name = MV_XOR_SHARED_NAME, | ||
348 | .id = 0, | ||
349 | .dev = { | ||
350 | .platform_data = &kirkwood_xor_shared_data, | ||
351 | }, | ||
352 | .num_resources = ARRAY_SIZE(kirkwood_xor0_shared_resources), | ||
353 | .resource = kirkwood_xor0_shared_resources, | ||
354 | }; | ||
355 | |||
356 | static struct resource kirkwood_xor00_resources[] = { | ||
357 | [0] = { | ||
358 | .start = IRQ_KIRKWOOD_XOR_00, | ||
359 | .end = IRQ_KIRKWOOD_XOR_00, | ||
360 | .flags = IORESOURCE_IRQ, | ||
361 | }, | ||
362 | }; | ||
363 | |||
364 | static struct mv_xor_platform_data kirkwood_xor00_data = { | ||
365 | .shared = &kirkwood_xor0_shared, | ||
366 | .hw_id = 0, | ||
367 | .pool_size = PAGE_SIZE, | ||
368 | }; | ||
369 | |||
370 | static struct platform_device kirkwood_xor00_channel = { | ||
371 | .name = MV_XOR_NAME, | ||
372 | .id = 0, | ||
373 | .num_resources = ARRAY_SIZE(kirkwood_xor00_resources), | ||
374 | .resource = kirkwood_xor00_resources, | ||
375 | .dev = { | ||
376 | .dma_mask = &kirkwood_xor_dmamask, | ||
377 | .coherent_dma_mask = DMA_64BIT_MASK, | ||
378 | .platform_data = (void *)&kirkwood_xor00_data, | ||
379 | }, | ||
380 | }; | ||
381 | |||
382 | static struct resource kirkwood_xor01_resources[] = { | ||
383 | [0] = { | ||
384 | .start = IRQ_KIRKWOOD_XOR_01, | ||
385 | .end = IRQ_KIRKWOOD_XOR_01, | ||
386 | .flags = IORESOURCE_IRQ, | ||
387 | }, | ||
388 | }; | ||
389 | |||
390 | static struct mv_xor_platform_data kirkwood_xor01_data = { | ||
391 | .shared = &kirkwood_xor0_shared, | ||
392 | .hw_id = 1, | ||
393 | .pool_size = PAGE_SIZE, | ||
394 | }; | ||
395 | |||
396 | static struct platform_device kirkwood_xor01_channel = { | ||
397 | .name = MV_XOR_NAME, | ||
398 | .id = 1, | ||
399 | .num_resources = ARRAY_SIZE(kirkwood_xor01_resources), | ||
400 | .resource = kirkwood_xor01_resources, | ||
401 | .dev = { | ||
402 | .dma_mask = &kirkwood_xor_dmamask, | ||
403 | .coherent_dma_mask = DMA_64BIT_MASK, | ||
404 | .platform_data = (void *)&kirkwood_xor01_data, | ||
405 | }, | ||
406 | }; | ||
407 | |||
408 | void __init kirkwood_xor0_init(void) | ||
409 | { | ||
410 | platform_device_register(&kirkwood_xor0_shared); | ||
411 | |||
412 | /* | ||
413 | * two engines can't do memset simultaneously, this limitation | ||
414 | * satisfied by removing memset support from one of the engines. | ||
415 | */ | ||
416 | dma_cap_set(DMA_MEMCPY, kirkwood_xor00_data.cap_mask); | ||
417 | dma_cap_set(DMA_XOR, kirkwood_xor00_data.cap_mask); | ||
418 | platform_device_register(&kirkwood_xor00_channel); | ||
419 | |||
420 | dma_cap_set(DMA_MEMCPY, kirkwood_xor01_data.cap_mask); | ||
421 | dma_cap_set(DMA_MEMSET, kirkwood_xor01_data.cap_mask); | ||
422 | dma_cap_set(DMA_XOR, kirkwood_xor01_data.cap_mask); | ||
423 | platform_device_register(&kirkwood_xor01_channel); | ||
424 | } | ||
425 | |||
426 | |||
427 | /***************************************************************************** | ||
428 | * XOR1 | ||
429 | ****************************************************************************/ | ||
430 | static struct resource kirkwood_xor1_shared_resources[] = { | ||
431 | { | ||
432 | .name = "xor 1 low", | ||
433 | .start = XOR1_PHYS_BASE, | ||
434 | .end = XOR1_PHYS_BASE + 0xff, | ||
435 | .flags = IORESOURCE_MEM, | ||
436 | }, { | ||
437 | .name = "xor 1 high", | ||
438 | .start = XOR1_HIGH_PHYS_BASE, | ||
439 | .end = XOR1_HIGH_PHYS_BASE + 0xff, | ||
440 | .flags = IORESOURCE_MEM, | ||
441 | }, | ||
442 | }; | ||
443 | |||
444 | static struct platform_device kirkwood_xor1_shared = { | ||
445 | .name = MV_XOR_SHARED_NAME, | ||
446 | .id = 1, | ||
447 | .dev = { | ||
448 | .platform_data = &kirkwood_xor_shared_data, | ||
449 | }, | ||
450 | .num_resources = ARRAY_SIZE(kirkwood_xor1_shared_resources), | ||
451 | .resource = kirkwood_xor1_shared_resources, | ||
452 | }; | ||
453 | |||
454 | static struct resource kirkwood_xor10_resources[] = { | ||
455 | [0] = { | ||
456 | .start = IRQ_KIRKWOOD_XOR_10, | ||
457 | .end = IRQ_KIRKWOOD_XOR_10, | ||
458 | .flags = IORESOURCE_IRQ, | ||
459 | }, | ||
460 | }; | ||
461 | |||
462 | static struct mv_xor_platform_data kirkwood_xor10_data = { | ||
463 | .shared = &kirkwood_xor1_shared, | ||
464 | .hw_id = 0, | ||
465 | .pool_size = PAGE_SIZE, | ||
466 | }; | ||
467 | |||
468 | static struct platform_device kirkwood_xor10_channel = { | ||
469 | .name = MV_XOR_NAME, | ||
470 | .id = 2, | ||
471 | .num_resources = ARRAY_SIZE(kirkwood_xor10_resources), | ||
472 | .resource = kirkwood_xor10_resources, | ||
473 | .dev = { | ||
474 | .dma_mask = &kirkwood_xor_dmamask, | ||
475 | .coherent_dma_mask = DMA_64BIT_MASK, | ||
476 | .platform_data = (void *)&kirkwood_xor10_data, | ||
477 | }, | ||
478 | }; | ||
479 | |||
480 | static struct resource kirkwood_xor11_resources[] = { | ||
481 | [0] = { | ||
482 | .start = IRQ_KIRKWOOD_XOR_11, | ||
483 | .end = IRQ_KIRKWOOD_XOR_11, | ||
484 | .flags = IORESOURCE_IRQ, | ||
485 | }, | ||
486 | }; | ||
487 | |||
488 | static struct mv_xor_platform_data kirkwood_xor11_data = { | ||
489 | .shared = &kirkwood_xor1_shared, | ||
490 | .hw_id = 1, | ||
491 | .pool_size = PAGE_SIZE, | ||
492 | }; | ||
493 | |||
494 | static struct platform_device kirkwood_xor11_channel = { | ||
495 | .name = MV_XOR_NAME, | ||
496 | .id = 3, | ||
497 | .num_resources = ARRAY_SIZE(kirkwood_xor11_resources), | ||
498 | .resource = kirkwood_xor11_resources, | ||
499 | .dev = { | ||
500 | .dma_mask = &kirkwood_xor_dmamask, | ||
501 | .coherent_dma_mask = DMA_64BIT_MASK, | ||
502 | .platform_data = (void *)&kirkwood_xor11_data, | ||
503 | }, | ||
504 | }; | ||
505 | |||
506 | void __init kirkwood_xor1_init(void) | ||
507 | { | ||
508 | platform_device_register(&kirkwood_xor1_shared); | ||
509 | |||
510 | /* | ||
511 | * two engines can't do memset simultaneously, this limitation | ||
512 | * satisfied by removing memset support from one of the engines. | ||
513 | */ | ||
514 | dma_cap_set(DMA_MEMCPY, kirkwood_xor10_data.cap_mask); | ||
515 | dma_cap_set(DMA_XOR, kirkwood_xor10_data.cap_mask); | ||
516 | platform_device_register(&kirkwood_xor10_channel); | ||
517 | |||
518 | dma_cap_set(DMA_MEMCPY, kirkwood_xor11_data.cap_mask); | ||
519 | dma_cap_set(DMA_MEMSET, kirkwood_xor11_data.cap_mask); | ||
520 | dma_cap_set(DMA_XOR, kirkwood_xor11_data.cap_mask); | ||
521 | platform_device_register(&kirkwood_xor11_channel); | ||
522 | } | ||
523 | |||
524 | |||
525 | /***************************************************************************** | ||
287 | * Time handling | 526 | * Time handling |
288 | ****************************************************************************/ | 527 | ****************************************************************************/ |
289 | static void kirkwood_timer_init(void) | 528 | static void kirkwood_timer_init(void) |
diff --git a/arch/arm/mach-kirkwood/common.h b/arch/arm/mach-kirkwood/common.h index 5dee2f6b40a5..69cd113af03a 100644 --- a/arch/arm/mach-kirkwood/common.h +++ b/arch/arm/mach-kirkwood/common.h | |||
@@ -33,8 +33,11 @@ void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data); | |||
33 | void kirkwood_pcie_init(void); | 33 | void kirkwood_pcie_init(void); |
34 | void kirkwood_rtc_init(void); | 34 | void kirkwood_rtc_init(void); |
35 | void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); | 35 | void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); |
36 | void kirkwood_spi_init(void); | ||
36 | void kirkwood_uart0_init(void); | 37 | void kirkwood_uart0_init(void); |
37 | void kirkwood_uart1_init(void); | 38 | void kirkwood_uart1_init(void); |
39 | void kirkwood_xor0_init(void); | ||
40 | void kirkwood_xor1_init(void); | ||
38 | 41 | ||
39 | extern struct sys_timer kirkwood_timer; | 42 | extern struct sys_timer kirkwood_timer; |
40 | 43 | ||
diff --git a/arch/arm/mach-kirkwood/include/mach/kirkwood.h b/arch/arm/mach-kirkwood/include/mach/kirkwood.h index d1336b41f0fb..5c69992295e8 100644 --- a/arch/arm/mach-kirkwood/include/mach/kirkwood.h +++ b/arch/arm/mach-kirkwood/include/mach/kirkwood.h | |||
@@ -88,6 +88,15 @@ | |||
88 | 88 | ||
89 | #define USB_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x50000) | 89 | #define USB_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x50000) |
90 | 90 | ||
91 | #define XOR0_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x60800) | ||
92 | #define XOR0_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x60800) | ||
93 | #define XOR1_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x60900) | ||
94 | #define XOR1_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x60900) | ||
95 | #define XOR0_HIGH_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x60A00) | ||
96 | #define XOR0_HIGH_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x60A00) | ||
97 | #define XOR1_HIGH_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x60B00) | ||
98 | #define XOR1_HIGH_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0x60B00) | ||
99 | |||
91 | #define GE00_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x70000) | 100 | #define GE00_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x70000) |
92 | #define GE01_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x74000) | 101 | #define GE01_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x74000) |
93 | 102 | ||
diff --git a/arch/arm/mach-kirkwood/irq.c b/arch/arm/mach-kirkwood/irq.c index 302bb2cf6669..5790643ffe07 100644 --- a/arch/arm/mach-kirkwood/irq.c +++ b/arch/arm/mach-kirkwood/irq.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <asm/plat-orion/irq.h> | 15 | #include <plat/irq.h> |
16 | #include "common.h" | 16 | #include "common.h" |
17 | 17 | ||
18 | void __init kirkwood_init_irq(void) | 18 | void __init kirkwood_init_irq(void) |
diff --git a/arch/arm/mach-kirkwood/pcie.c b/arch/arm/mach-kirkwood/pcie.c index 8282d0ff84bf..2195fa31f6b7 100644 --- a/arch/arm/mach-kirkwood/pcie.c +++ b/arch/arm/mach-kirkwood/pcie.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/pci.h> | 12 | #include <linux/pci.h> |
13 | #include <linux/mbus.h> | 13 | #include <linux/mbus.h> |
14 | #include <asm/mach/pci.h> | 14 | #include <asm/mach/pci.h> |
15 | #include <asm/plat-orion/pcie.h> | 15 | #include <plat/pcie.h> |
16 | #include "common.h" | 16 | #include "common.h" |
17 | 17 | ||
18 | 18 | ||
diff --git a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c index 182230a5d198..a3012d445971 100644 --- a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c | |||
@@ -18,6 +18,9 @@ | |||
18 | #include <linux/timer.h> | 18 | #include <linux/timer.h> |
19 | #include <linux/ata_platform.h> | 19 | #include <linux/ata_platform.h> |
20 | #include <linux/mv643xx_eth.h> | 20 | #include <linux/mv643xx_eth.h> |
21 | #include <linux/spi/flash.h> | ||
22 | #include <linux/spi/spi.h> | ||
23 | #include <linux/spi/orion_spi.h> | ||
21 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
22 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
23 | #include <asm/mach/pci.h> | 26 | #include <asm/mach/pci.h> |
@@ -34,6 +37,21 @@ static struct mv_sata_platform_data rd88f6192_sata_data = { | |||
34 | .n_ports = 2, | 37 | .n_ports = 2, |
35 | }; | 38 | }; |
36 | 39 | ||
40 | static const struct flash_platform_data rd88F6192_spi_slave_data = { | ||
41 | .type = "m25p128", | ||
42 | }; | ||
43 | |||
44 | static struct spi_board_info __initdata rd88F6192_spi_slave_info[] = { | ||
45 | { | ||
46 | .modalias = "m25p80", | ||
47 | .platform_data = &rd88F6192_spi_slave_data, | ||
48 | .irq = -1, | ||
49 | .max_speed_hz = 20000000, | ||
50 | .bus_num = 0, | ||
51 | .chip_select = 0, | ||
52 | }, | ||
53 | }; | ||
54 | |||
37 | static void __init rd88f6192_init(void) | 55 | static void __init rd88f6192_init(void) |
38 | { | 56 | { |
39 | /* | 57 | /* |
@@ -45,7 +63,12 @@ static void __init rd88f6192_init(void) | |||
45 | kirkwood_ge00_init(&rd88f6192_ge00_data); | 63 | kirkwood_ge00_init(&rd88f6192_ge00_data); |
46 | kirkwood_rtc_init(); | 64 | kirkwood_rtc_init(); |
47 | kirkwood_sata_init(&rd88f6192_sata_data); | 65 | kirkwood_sata_init(&rd88f6192_sata_data); |
66 | spi_register_board_info(rd88F6192_spi_slave_info, | ||
67 | ARRAY_SIZE(rd88F6192_spi_slave_info)); | ||
68 | kirkwood_spi_init(); | ||
48 | kirkwood_uart0_init(); | 69 | kirkwood_uart0_init(); |
70 | kirkwood_xor0_init(); | ||
71 | kirkwood_xor1_init(); | ||
49 | } | 72 | } |
50 | 73 | ||
51 | static int __init rd88f6192_pci_init(void) | 74 | static int __init rd88f6192_pci_init(void) |
diff --git a/arch/arm/mach-kirkwood/rd88f6281-setup.c b/arch/arm/mach-kirkwood/rd88f6281-setup.c index d8a43018c7d3..d96487a0f18b 100644 --- a/arch/arm/mach-kirkwood/rd88f6281-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6281-setup.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #include <asm/mach/arch.h> | 23 | #include <asm/mach/arch.h> |
24 | #include <asm/mach/pci.h> | 24 | #include <asm/mach/pci.h> |
25 | #include <mach/kirkwood.h> | 25 | #include <mach/kirkwood.h> |
26 | #include <asm/plat-orion/orion_nand.h> | 26 | #include <plat/orion_nand.h> |
27 | #include "common.h" | 27 | #include "common.h" |
28 | 28 | ||
29 | static struct mtd_partition rd88f6281_nand_parts[] = { | 29 | static struct mtd_partition rd88f6281_nand_parts[] = { |
diff --git a/arch/arm/mach-loki/common.c b/arch/arm/mach-loki/common.c index e20cdbca1ebe..c0d2d9d12e74 100644 --- a/arch/arm/mach-loki/common.c +++ b/arch/arm/mach-loki/common.c | |||
@@ -19,8 +19,8 @@ | |||
19 | #include <asm/mach/map.h> | 19 | #include <asm/mach/map.h> |
20 | #include <asm/mach/time.h> | 20 | #include <asm/mach/time.h> |
21 | #include <mach/loki.h> | 21 | #include <mach/loki.h> |
22 | #include <asm/plat-orion/orion_nand.h> | 22 | #include <plat/orion_nand.h> |
23 | #include <asm/plat-orion/time.h> | 23 | #include <plat/time.h> |
24 | #include "common.h" | 24 | #include "common.h" |
25 | 25 | ||
26 | /***************************************************************************** | 26 | /***************************************************************************** |
diff --git a/arch/arm/mach-loki/irq.c b/arch/arm/mach-loki/irq.c index d839af91fe03..5a487930cb2f 100644 --- a/arch/arm/mach-loki/irq.c +++ b/arch/arm/mach-loki/irq.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
14 | #include <asm/io.h> | 14 | #include <asm/io.h> |
15 | #include <asm/plat-orion/irq.h> | 15 | #include <plat/irq.h> |
16 | #include "common.h" | 16 | #include "common.h" |
17 | 17 | ||
18 | void __init loki_init_irq(void) | 18 | void __init loki_init_irq(void) |
diff --git a/arch/arm/mach-mv78xx0/common.c b/arch/arm/mach-mv78xx0/common.c index e633f9cb239f..953a26c469cb 100644 --- a/arch/arm/mach-mv78xx0/common.c +++ b/arch/arm/mach-mv78xx0/common.c | |||
@@ -18,10 +18,10 @@ | |||
18 | #include <asm/mach/map.h> | 18 | #include <asm/mach/map.h> |
19 | #include <asm/mach/time.h> | 19 | #include <asm/mach/time.h> |
20 | #include <mach/mv78xx0.h> | 20 | #include <mach/mv78xx0.h> |
21 | #include <asm/plat-orion/cache-feroceon-l2.h> | 21 | #include <plat/cache-feroceon-l2.h> |
22 | #include <asm/plat-orion/ehci-orion.h> | 22 | #include <plat/ehci-orion.h> |
23 | #include <asm/plat-orion/orion_nand.h> | 23 | #include <plat/orion_nand.h> |
24 | #include <asm/plat-orion/time.h> | 24 | #include <plat/time.h> |
25 | #include "common.h" | 25 | #include "common.h" |
26 | 26 | ||
27 | 27 | ||
diff --git a/arch/arm/mach-mv78xx0/irq.c b/arch/arm/mach-mv78xx0/irq.c index 3198abf54c90..28248d37b999 100644 --- a/arch/arm/mach-mv78xx0/irq.c +++ b/arch/arm/mach-mv78xx0/irq.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/pci.h> | 13 | #include <linux/pci.h> |
14 | #include <mach/mv78xx0.h> | 14 | #include <mach/mv78xx0.h> |
15 | #include <asm/plat-orion/irq.h> | 15 | #include <plat/irq.h> |
16 | #include "common.h" | 16 | #include "common.h" |
17 | 17 | ||
18 | void __init mv78xx0_init_irq(void) | 18 | void __init mv78xx0_init_irq(void) |
diff --git a/arch/arm/mach-mv78xx0/pcie.c b/arch/arm/mach-mv78xx0/pcie.c index b78e1443159f..430ea84d587d 100644 --- a/arch/arm/mach-mv78xx0/pcie.c +++ b/arch/arm/mach-mv78xx0/pcie.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/pci.h> | 12 | #include <linux/pci.h> |
13 | #include <linux/mbus.h> | 13 | #include <linux/mbus.h> |
14 | #include <asm/mach/pci.h> | 14 | #include <asm/mach/pci.h> |
15 | #include <asm/plat-orion/pcie.h> | 15 | #include <plat/pcie.h> |
16 | #include "common.h" | 16 | #include "common.h" |
17 | 17 | ||
18 | struct pcie_port { | 18 | struct pcie_port { |
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c index 168eeacaa4c0..7b11e552bc5a 100644 --- a/arch/arm/mach-orion5x/common.c +++ b/arch/arm/mach-orion5x/common.c | |||
@@ -26,9 +26,10 @@ | |||
26 | #include <asm/mach/time.h> | 26 | #include <asm/mach/time.h> |
27 | #include <mach/hardware.h> | 27 | #include <mach/hardware.h> |
28 | #include <mach/orion5x.h> | 28 | #include <mach/orion5x.h> |
29 | #include <asm/plat-orion/ehci-orion.h> | 29 | #include <plat/ehci-orion.h> |
30 | #include <asm/plat-orion/orion_nand.h> | 30 | #include <plat/mv_xor.h> |
31 | #include <asm/plat-orion/time.h> | 31 | #include <plat/orion_nand.h> |
32 | #include <plat/time.h> | ||
32 | #include "common.h" | 33 | #include "common.h" |
33 | 34 | ||
34 | /***************************************************************************** | 35 | /***************************************************************************** |
@@ -355,6 +356,103 @@ void __init orion5x_uart1_init(void) | |||
355 | 356 | ||
356 | 357 | ||
357 | /***************************************************************************** | 358 | /***************************************************************************** |
359 | * XOR engine | ||
360 | ****************************************************************************/ | ||
361 | static struct resource orion5x_xor_shared_resources[] = { | ||
362 | { | ||
363 | .name = "xor low", | ||
364 | .start = ORION5X_XOR_PHYS_BASE, | ||
365 | .end = ORION5X_XOR_PHYS_BASE + 0xff, | ||
366 | .flags = IORESOURCE_MEM, | ||
367 | }, { | ||
368 | .name = "xor high", | ||
369 | .start = ORION5X_XOR_PHYS_BASE + 0x200, | ||
370 | .end = ORION5X_XOR_PHYS_BASE + 0x2ff, | ||
371 | .flags = IORESOURCE_MEM, | ||
372 | }, | ||
373 | }; | ||
374 | |||
375 | static struct platform_device orion5x_xor_shared = { | ||
376 | .name = MV_XOR_SHARED_NAME, | ||
377 | .id = 0, | ||
378 | .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources), | ||
379 | .resource = orion5x_xor_shared_resources, | ||
380 | }; | ||
381 | |||
382 | static u64 orion5x_xor_dmamask = DMA_32BIT_MASK; | ||
383 | |||
384 | static struct resource orion5x_xor0_resources[] = { | ||
385 | [0] = { | ||
386 | .start = IRQ_ORION5X_XOR0, | ||
387 | .end = IRQ_ORION5X_XOR0, | ||
388 | .flags = IORESOURCE_IRQ, | ||
389 | }, | ||
390 | }; | ||
391 | |||
392 | static struct mv_xor_platform_data orion5x_xor0_data = { | ||
393 | .shared = &orion5x_xor_shared, | ||
394 | .hw_id = 0, | ||
395 | .pool_size = PAGE_SIZE, | ||
396 | }; | ||
397 | |||
398 | static struct platform_device orion5x_xor0_channel = { | ||
399 | .name = MV_XOR_NAME, | ||
400 | .id = 0, | ||
401 | .num_resources = ARRAY_SIZE(orion5x_xor0_resources), | ||
402 | .resource = orion5x_xor0_resources, | ||
403 | .dev = { | ||
404 | .dma_mask = &orion5x_xor_dmamask, | ||
405 | .coherent_dma_mask = DMA_64BIT_MASK, | ||
406 | .platform_data = (void *)&orion5x_xor0_data, | ||
407 | }, | ||
408 | }; | ||
409 | |||
410 | static struct resource orion5x_xor1_resources[] = { | ||
411 | [0] = { | ||
412 | .start = IRQ_ORION5X_XOR1, | ||
413 | .end = IRQ_ORION5X_XOR1, | ||
414 | .flags = IORESOURCE_IRQ, | ||
415 | }, | ||
416 | }; | ||
417 | |||
418 | static struct mv_xor_platform_data orion5x_xor1_data = { | ||
419 | .shared = &orion5x_xor_shared, | ||
420 | .hw_id = 1, | ||
421 | .pool_size = PAGE_SIZE, | ||
422 | }; | ||
423 | |||
424 | static struct platform_device orion5x_xor1_channel = { | ||
425 | .name = MV_XOR_NAME, | ||
426 | .id = 1, | ||
427 | .num_resources = ARRAY_SIZE(orion5x_xor1_resources), | ||
428 | .resource = orion5x_xor1_resources, | ||
429 | .dev = { | ||
430 | .dma_mask = &orion5x_xor_dmamask, | ||
431 | .coherent_dma_mask = DMA_64BIT_MASK, | ||
432 | .platform_data = (void *)&orion5x_xor1_data, | ||
433 | }, | ||
434 | }; | ||
435 | |||
436 | void __init orion5x_xor_init(void) | ||
437 | { | ||
438 | platform_device_register(&orion5x_xor_shared); | ||
439 | |||
440 | /* | ||
441 | * two engines can't do memset simultaneously, this limitation | ||
442 | * satisfied by removing memset support from one of the engines. | ||
443 | */ | ||
444 | dma_cap_set(DMA_MEMCPY, orion5x_xor0_data.cap_mask); | ||
445 | dma_cap_set(DMA_XOR, orion5x_xor0_data.cap_mask); | ||
446 | platform_device_register(&orion5x_xor0_channel); | ||
447 | |||
448 | dma_cap_set(DMA_MEMCPY, orion5x_xor1_data.cap_mask); | ||
449 | dma_cap_set(DMA_MEMSET, orion5x_xor1_data.cap_mask); | ||
450 | dma_cap_set(DMA_XOR, orion5x_xor1_data.cap_mask); | ||
451 | platform_device_register(&orion5x_xor1_channel); | ||
452 | } | ||
453 | |||
454 | |||
455 | /***************************************************************************** | ||
358 | * Time handling | 456 | * Time handling |
359 | ****************************************************************************/ | 457 | ****************************************************************************/ |
360 | static void orion5x_timer_init(void) | 458 | static void orion5x_timer_init(void) |
@@ -382,6 +480,8 @@ static void __init orion5x_id(u32 *dev, u32 *rev, char **dev_name) | |||
382 | *dev_name = "MV88F5281-D2"; | 480 | *dev_name = "MV88F5281-D2"; |
383 | } else if (*rev == MV88F5281_REV_D1) { | 481 | } else if (*rev == MV88F5281_REV_D1) { |
384 | *dev_name = "MV88F5281-D1"; | 482 | *dev_name = "MV88F5281-D1"; |
483 | } else if (*rev == MV88F5281_REV_D0) { | ||
484 | *dev_name = "MV88F5281-D0"; | ||
385 | } else { | 485 | } else { |
386 | *dev_name = "MV88F5281-Rev-Unsupported"; | 486 | *dev_name = "MV88F5281-Rev-Unsupported"; |
387 | } | 487 | } |
@@ -416,6 +516,15 @@ void __init orion5x_init(void) | |||
416 | * Setup Orion address map | 516 | * Setup Orion address map |
417 | */ | 517 | */ |
418 | orion5x_setup_cpu_mbus_bridge(); | 518 | orion5x_setup_cpu_mbus_bridge(); |
519 | |||
520 | /* | ||
521 | * Don't issue "Wait for Interrupt" instruction if we are | ||
522 | * running on D0 5281 silicon. | ||
523 | */ | ||
524 | if (dev == MV88F5281_DEV_ID && rev == MV88F5281_REV_D0) { | ||
525 | printk(KERN_INFO "Orion: Applying 5281 D0 WFI workaround.\n"); | ||
526 | disable_hlt(); | ||
527 | } | ||
419 | } | 528 | } |
420 | 529 | ||
421 | /* | 530 | /* |
diff --git a/arch/arm/mach-orion5x/common.h b/arch/arm/mach-orion5x/common.h index f72cf0e77544..e75bd7004b94 100644 --- a/arch/arm/mach-orion5x/common.h +++ b/arch/arm/mach-orion5x/common.h | |||
@@ -32,6 +32,7 @@ void orion5x_i2c_init(void); | |||
32 | void orion5x_sata_init(struct mv_sata_platform_data *sata_data); | 32 | void orion5x_sata_init(struct mv_sata_platform_data *sata_data); |
33 | void orion5x_uart0_init(void); | 33 | void orion5x_uart0_init(void); |
34 | void orion5x_uart1_init(void); | 34 | void orion5x_uart1_init(void); |
35 | void orion5x_xor_init(void); | ||
35 | 36 | ||
36 | /* | 37 | /* |
37 | * PCIe/PCI functions. | 38 | * PCIe/PCI functions. |
diff --git a/arch/arm/mach-orion5x/db88f5281-setup.c b/arch/arm/mach-orion5x/db88f5281-setup.c index 48ce6d0e0020..ff13e9060b18 100644 --- a/arch/arm/mach-orion5x/db88f5281-setup.c +++ b/arch/arm/mach-orion5x/db88f5281-setup.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
26 | #include <asm/mach/pci.h> | 26 | #include <asm/mach/pci.h> |
27 | #include <mach/orion5x.h> | 27 | #include <mach/orion5x.h> |
28 | #include <asm/plat-orion/orion_nand.h> | 28 | #include <plat/orion_nand.h> |
29 | #include "common.h" | 29 | #include "common.h" |
30 | #include "mpp.h" | 30 | #include "mpp.h" |
31 | 31 | ||
diff --git a/arch/arm/mach-orion5x/include/mach/orion5x.h b/arch/arm/mach-orion5x/include/mach/orion5x.h index f52a7d65bec2..61eb74a88862 100644 --- a/arch/arm/mach-orion5x/include/mach/orion5x.h +++ b/arch/arm/mach-orion5x/include/mach/orion5x.h | |||
@@ -73,6 +73,7 @@ | |||
73 | #define MV88F5182_REV_A2 2 | 73 | #define MV88F5182_REV_A2 2 |
74 | /* Orion-2 (88F5281) */ | 74 | /* Orion-2 (88F5281) */ |
75 | #define MV88F5281_DEV_ID 0x5281 | 75 | #define MV88F5281_DEV_ID 0x5281 |
76 | #define MV88F5281_REV_D0 4 | ||
76 | #define MV88F5281_REV_D1 5 | 77 | #define MV88F5281_REV_D1 5 |
77 | #define MV88F5281_REV_D2 6 | 78 | #define MV88F5281_REV_D2 6 |
78 | 79 | ||
@@ -105,6 +106,10 @@ | |||
105 | #define ORION5X_USB0_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x50000) | 106 | #define ORION5X_USB0_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x50000) |
106 | #define ORION5X_USB0_REG(x) (ORION5X_USB0_VIRT_BASE | (x)) | 107 | #define ORION5X_USB0_REG(x) (ORION5X_USB0_VIRT_BASE | (x)) |
107 | 108 | ||
109 | #define ORION5X_XOR_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x60900) | ||
110 | #define ORION5X_XOR_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x60900) | ||
111 | #define ORION5X_XOR_REG(x) (ORION5X_XOR_VIRT_BASE | (x)) | ||
112 | |||
108 | #define ORION5X_ETH_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x70000) | 113 | #define ORION5X_ETH_PHYS_BASE (ORION5X_REGS_PHYS_BASE | 0x70000) |
109 | #define ORION5X_ETH_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x70000) | 114 | #define ORION5X_ETH_VIRT_BASE (ORION5X_REGS_VIRT_BASE | 0x70000) |
110 | #define ORION5X_ETH_REG(x) (ORION5X_ETH_VIRT_BASE | (x)) | 115 | #define ORION5X_ETH_REG(x) (ORION5X_ETH_VIRT_BASE | (x)) |
diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c index cc2a017fd2a9..2545ff9e5830 100644 --- a/arch/arm/mach-orion5x/irq.c +++ b/arch/arm/mach-orion5x/irq.c | |||
@@ -16,7 +16,7 @@ | |||
16 | #include <asm/gpio.h> | 16 | #include <asm/gpio.h> |
17 | #include <asm/io.h> | 17 | #include <asm/io.h> |
18 | #include <mach/orion5x.h> | 18 | #include <mach/orion5x.h> |
19 | #include <asm/plat-orion/irq.h> | 19 | #include <plat/irq.h> |
20 | #include "common.h" | 20 | #include "common.h" |
21 | 21 | ||
22 | /***************************************************************************** | 22 | /***************************************************************************** |
diff --git a/arch/arm/mach-orion5x/kurobox_pro-setup.c b/arch/arm/mach-orion5x/kurobox_pro-setup.c index 0caaaac74bc1..cb72f1bb9cb7 100644 --- a/arch/arm/mach-orion5x/kurobox_pro-setup.c +++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
26 | #include <asm/mach/pci.h> | 26 | #include <asm/mach/pci.h> |
27 | #include <mach/orion5x.h> | 27 | #include <mach/orion5x.h> |
28 | #include <asm/plat-orion/orion_nand.h> | 28 | #include <plat/orion_nand.h> |
29 | #include "common.h" | 29 | #include "common.h" |
30 | #include "mpp.h" | 30 | #include "mpp.h" |
31 | 31 | ||
@@ -356,6 +356,7 @@ static void __init kurobox_pro_init(void) | |||
356 | orion5x_sata_init(&kurobox_pro_sata_data); | 356 | orion5x_sata_init(&kurobox_pro_sata_data); |
357 | orion5x_uart0_init(); | 357 | orion5x_uart0_init(); |
358 | orion5x_uart1_init(); | 358 | orion5x_uart1_init(); |
359 | orion5x_xor_init(); | ||
359 | 360 | ||
360 | orion5x_setup_dev_boot_win(KUROBOX_PRO_NOR_BOOT_BASE, | 361 | orion5x_setup_dev_boot_win(KUROBOX_PRO_NOR_BOOT_BASE, |
361 | KUROBOX_PRO_NOR_BOOT_SIZE); | 362 | KUROBOX_PRO_NOR_BOOT_SIZE); |
diff --git a/arch/arm/mach-orion5x/mss2-setup.c b/arch/arm/mach-orion5x/mss2-setup.c index 4403cc963d66..53ff1893b883 100644 --- a/arch/arm/mach-orion5x/mss2-setup.c +++ b/arch/arm/mach-orion5x/mss2-setup.c | |||
@@ -239,6 +239,7 @@ static void __init mss2_init(void) | |||
239 | orion5x_i2c_init(); | 239 | orion5x_i2c_init(); |
240 | orion5x_sata_init(&mss2_sata_data); | 240 | orion5x_sata_init(&mss2_sata_data); |
241 | orion5x_uart0_init(); | 241 | orion5x_uart0_init(); |
242 | orion5x_xor_init(); | ||
242 | 243 | ||
243 | orion5x_setup_dev_boot_win(MSS2_NOR_BOOT_BASE, MSS2_NOR_BOOT_SIZE); | 244 | orion5x_setup_dev_boot_win(MSS2_NOR_BOOT_BASE, MSS2_NOR_BOOT_SIZE); |
244 | platform_device_register(&mss2_nor_flash); | 245 | platform_device_register(&mss2_nor_flash); |
diff --git a/arch/arm/mach-orion5x/mv2120-setup.c b/arch/arm/mach-orion5x/mv2120-setup.c index 67b2c0df615f..978d4d599396 100644 --- a/arch/arm/mach-orion5x/mv2120-setup.c +++ b/arch/arm/mach-orion5x/mv2120-setup.c | |||
@@ -203,6 +203,7 @@ static void __init mv2120_init(void) | |||
203 | orion5x_i2c_init(); | 203 | orion5x_i2c_init(); |
204 | orion5x_sata_init(&mv2120_sata_data); | 204 | orion5x_sata_init(&mv2120_sata_data); |
205 | orion5x_uart0_init(); | 205 | orion5x_uart0_init(); |
206 | orion5x_xor_init(); | ||
206 | 207 | ||
207 | orion5x_setup_dev_boot_win(MV2120_NOR_BOOT_BASE, MV2120_NOR_BOOT_SIZE); | 208 | orion5x_setup_dev_boot_win(MV2120_NOR_BOOT_BASE, MV2120_NOR_BOOT_SIZE); |
208 | platform_device_register(&mv2120_nor_flash); | 209 | platform_device_register(&mv2120_nor_flash); |
diff --git a/arch/arm/mach-orion5x/pci.c b/arch/arm/mach-orion5x/pci.c index 256a4f680935..fbceecc4b7ec 100644 --- a/arch/arm/mach-orion5x/pci.c +++ b/arch/arm/mach-orion5x/pci.c | |||
@@ -14,7 +14,7 @@ | |||
14 | #include <linux/pci.h> | 14 | #include <linux/pci.h> |
15 | #include <linux/mbus.h> | 15 | #include <linux/mbus.h> |
16 | #include <asm/mach/pci.h> | 16 | #include <asm/mach/pci.h> |
17 | #include <asm/plat-orion/pcie.h> | 17 | #include <plat/pcie.h> |
18 | #include "common.h" | 18 | #include "common.h" |
19 | 19 | ||
20 | /***************************************************************************** | 20 | /***************************************************************************** |
diff --git a/arch/arm/mach-orion5x/rd88f5182-setup.c b/arch/arm/mach-orion5x/rd88f5182-setup.c index 8771cb76f0dc..4c3bcd76ac85 100644 --- a/arch/arm/mach-orion5x/rd88f5182-setup.c +++ b/arch/arm/mach-orion5x/rd88f5182-setup.c | |||
@@ -292,6 +292,7 @@ static void __init rd88f5182_init(void) | |||
292 | orion5x_i2c_init(); | 292 | orion5x_i2c_init(); |
293 | orion5x_sata_init(&rd88f5182_sata_data); | 293 | orion5x_sata_init(&rd88f5182_sata_data); |
294 | orion5x_uart0_init(); | 294 | orion5x_uart0_init(); |
295 | orion5x_xor_init(); | ||
295 | 296 | ||
296 | orion5x_setup_dev_boot_win(RD88F5182_NOR_BOOT_BASE, | 297 | orion5x_setup_dev_boot_win(RD88F5182_NOR_BOOT_BASE, |
297 | RD88F5182_NOR_BOOT_SIZE); | 298 | RD88F5182_NOR_BOOT_SIZE); |
diff --git a/arch/arm/mach-orion5x/ts209-setup.c b/arch/arm/mach-orion5x/ts209-setup.c index 809132de31d2..dd657163cd8d 100644 --- a/arch/arm/mach-orion5x/ts209-setup.c +++ b/arch/arm/mach-orion5x/ts209-setup.c | |||
@@ -207,12 +207,12 @@ static struct i2c_board_info __initdata qnap_ts209_i2c_rtc = { | |||
207 | 207 | ||
208 | static struct gpio_keys_button qnap_ts209_buttons[] = { | 208 | static struct gpio_keys_button qnap_ts209_buttons[] = { |
209 | { | 209 | { |
210 | .code = KEY_RESTART, | 210 | .code = KEY_COPY, |
211 | .gpio = QNAP_TS209_GPIO_KEY_MEDIA, | 211 | .gpio = QNAP_TS209_GPIO_KEY_MEDIA, |
212 | .desc = "USB Copy Button", | 212 | .desc = "USB Copy Button", |
213 | .active_low = 1, | 213 | .active_low = 1, |
214 | }, { | 214 | }, { |
215 | .code = KEY_POWER, | 215 | .code = KEY_RESTART, |
216 | .gpio = QNAP_TS209_GPIO_KEY_RESET, | 216 | .gpio = QNAP_TS209_GPIO_KEY_RESET, |
217 | .desc = "Reset Button", | 217 | .desc = "Reset Button", |
218 | .active_low = 1, | 218 | .active_low = 1, |
@@ -296,6 +296,7 @@ static void __init qnap_ts209_init(void) | |||
296 | orion5x_i2c_init(); | 296 | orion5x_i2c_init(); |
297 | orion5x_sata_init(&qnap_ts209_sata_data); | 297 | orion5x_sata_init(&qnap_ts209_sata_data); |
298 | orion5x_uart0_init(); | 298 | orion5x_uart0_init(); |
299 | orion5x_xor_init(); | ||
299 | 300 | ||
300 | orion5x_setup_dev_boot_win(QNAP_TS209_NOR_BOOT_BASE, | 301 | orion5x_setup_dev_boot_win(QNAP_TS209_NOR_BOOT_BASE, |
301 | QNAP_TS209_NOR_BOOT_SIZE); | 302 | QNAP_TS209_NOR_BOOT_SIZE); |
diff --git a/arch/arm/mach-orion5x/ts409-setup.c b/arch/arm/mach-orion5x/ts409-setup.c index 6053e76ac967..b27d2b762081 100644 --- a/arch/arm/mach-orion5x/ts409-setup.c +++ b/arch/arm/mach-orion5x/ts409-setup.c | |||
@@ -3,6 +3,9 @@ | |||
3 | * | 3 | * |
4 | * Maintainer: Sylver Bruneau <sylver.bruneau@gmail.com> | 4 | * Maintainer: Sylver Bruneau <sylver.bruneau@gmail.com> |
5 | * | 5 | * |
6 | * Copyright (C) 2008 Sylver Bruneau <sylver.bruneau@gmail.com> | ||
7 | * Copyright (C) 2008 Martin Michlmayr <tbm@cyrius.com> | ||
8 | * | ||
6 | * This program is free software; you can redistribute it and/or | 9 | * This program is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU General Public License | 10 | * modify it under the terms of the GNU General Public License |
8 | * as published by the Free Software Foundation; either version | 11 | * as published by the Free Software Foundation; either version |
@@ -16,6 +19,7 @@ | |||
16 | #include <linux/irq.h> | 19 | #include <linux/irq.h> |
17 | #include <linux/mtd/physmap.h> | 20 | #include <linux/mtd/physmap.h> |
18 | #include <linux/mv643xx_eth.h> | 21 | #include <linux/mv643xx_eth.h> |
22 | #include <linux/leds.h> | ||
19 | #include <linux/gpio_keys.h> | 23 | #include <linux/gpio_keys.h> |
20 | #include <linux/input.h> | 24 | #include <linux/input.h> |
21 | #include <linux/i2c.h> | 25 | #include <linux/i2c.h> |
@@ -162,16 +166,59 @@ static struct i2c_board_info __initdata qnap_ts409_i2c_rtc = { | |||
162 | I2C_BOARD_INFO("s35390a", 0x30), | 166 | I2C_BOARD_INFO("s35390a", 0x30), |
163 | }; | 167 | }; |
164 | 168 | ||
169 | /***************************************************************************** | ||
170 | * LEDs attached to GPIO | ||
171 | ****************************************************************************/ | ||
172 | |||
173 | static struct gpio_led ts409_led_pins[] = { | ||
174 | { | ||
175 | .name = "ts409:red:sata1", | ||
176 | .gpio = 4, | ||
177 | .active_low = 1, | ||
178 | }, { | ||
179 | .name = "ts409:red:sata2", | ||
180 | .gpio = 5, | ||
181 | .active_low = 1, | ||
182 | }, { | ||
183 | .name = "ts409:red:sata3", | ||
184 | .gpio = 6, | ||
185 | .active_low = 1, | ||
186 | }, { | ||
187 | .name = "ts409:red:sata4", | ||
188 | .gpio = 7, | ||
189 | .active_low = 1, | ||
190 | }, | ||
191 | }; | ||
192 | |||
193 | static struct gpio_led_platform_data ts409_led_data = { | ||
194 | .leds = ts409_led_pins, | ||
195 | .num_leds = ARRAY_SIZE(ts409_led_pins), | ||
196 | }; | ||
197 | |||
198 | static struct platform_device ts409_leds = { | ||
199 | .name = "leds-gpio", | ||
200 | .id = -1, | ||
201 | .dev = { | ||
202 | .platform_data = &ts409_led_data, | ||
203 | }, | ||
204 | }; | ||
205 | |||
165 | /**************************************************************************** | 206 | /**************************************************************************** |
166 | * GPIO Attached Keys | 207 | * GPIO Attached Keys |
167 | * Power button is attached to the PIC microcontroller | 208 | * Power button is attached to the PIC microcontroller |
168 | ****************************************************************************/ | 209 | ****************************************************************************/ |
169 | 210 | ||
211 | #define QNAP_TS409_GPIO_KEY_RESET 14 | ||
170 | #define QNAP_TS409_GPIO_KEY_MEDIA 15 | 212 | #define QNAP_TS409_GPIO_KEY_MEDIA 15 |
171 | 213 | ||
172 | static struct gpio_keys_button qnap_ts409_buttons[] = { | 214 | static struct gpio_keys_button qnap_ts409_buttons[] = { |
173 | { | 215 | { |
174 | .code = KEY_RESTART, | 216 | .code = KEY_RESTART, |
217 | .gpio = QNAP_TS409_GPIO_KEY_RESET, | ||
218 | .desc = "Reset Button", | ||
219 | .active_low = 1, | ||
220 | }, { | ||
221 | .code = KEY_COPY, | ||
175 | .gpio = QNAP_TS409_GPIO_KEY_MEDIA, | 222 | .gpio = QNAP_TS409_GPIO_KEY_MEDIA, |
176 | .desc = "USB Copy Button", | 223 | .desc = "USB Copy Button", |
177 | .active_low = 1, | 224 | .active_low = 1, |
@@ -255,6 +302,7 @@ static void __init qnap_ts409_init(void) | |||
255 | if (qnap_ts409_i2c_rtc.irq == 0) | 302 | if (qnap_ts409_i2c_rtc.irq == 0) |
256 | pr_warning("qnap_ts409_init: failed to get RTC IRQ\n"); | 303 | pr_warning("qnap_ts409_init: failed to get RTC IRQ\n"); |
257 | i2c_register_board_info(0, &qnap_ts409_i2c_rtc, 1); | 304 | i2c_register_board_info(0, &qnap_ts409_i2c_rtc, 1); |
305 | platform_device_register(&ts409_leds); | ||
258 | 306 | ||
259 | /* register tsx09 specific power-off method */ | 307 | /* register tsx09 specific power-off method */ |
260 | pm_power_off = qnap_tsx09_power_off; | 308 | pm_power_off = qnap_tsx09_power_off; |
diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c index 014916a28fdc..ae0a5dccd2a1 100644 --- a/arch/arm/mach-orion5x/ts78xx-setup.c +++ b/arch/arm/mach-orion5x/ts78xx-setup.c | |||
@@ -256,6 +256,7 @@ static void __init ts78xx_init(void) | |||
256 | orion5x_sata_init(&ts78xx_sata_data); | 256 | orion5x_sata_init(&ts78xx_sata_data); |
257 | orion5x_uart0_init(); | 257 | orion5x_uart0_init(); |
258 | orion5x_uart1_init(); | 258 | orion5x_uart1_init(); |
259 | orion5x_xor_init(); | ||
259 | 260 | ||
260 | orion5x_setup_dev_boot_win(TS78XX_NOR_BOOT_BASE, | 261 | orion5x_setup_dev_boot_win(TS78XX_NOR_BOOT_BASE, |
261 | TS78XX_NOR_BOOT_SIZE); | 262 | TS78XX_NOR_BOOT_SIZE); |
diff --git a/arch/arm/mm/cache-feroceon-l2.c b/arch/arm/mm/cache-feroceon-l2.c index 20eec4ba173f..7b5a25d81576 100644 --- a/arch/arm/mm/cache-feroceon-l2.c +++ b/arch/arm/mm/cache-feroceon-l2.c | |||
@@ -14,7 +14,7 @@ | |||
14 | 14 | ||
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <asm/cacheflush.h> | 16 | #include <asm/cacheflush.h> |
17 | #include <asm/plat-orion/cache-feroceon-l2.h> | 17 | #include <plat/cache-feroceon-l2.h> |
18 | 18 | ||
19 | 19 | ||
20 | /* | 20 | /* |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 2d6d682c206a..25d9a11eb617 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -568,6 +568,55 @@ void __init iotable_init(struct map_desc *io_desc, int nr) | |||
568 | create_mapping(io_desc + i); | 568 | create_mapping(io_desc + i); |
569 | } | 569 | } |
570 | 570 | ||
571 | static int __init check_membank_valid(struct membank *mb) | ||
572 | { | ||
573 | /* | ||
574 | * Check whether this memory region has non-zero size. | ||
575 | */ | ||
576 | if (mb->size == 0) | ||
577 | return 0; | ||
578 | |||
579 | /* | ||
580 | * Check whether this memory region would entirely overlap | ||
581 | * the vmalloc area. | ||
582 | */ | ||
583 | if (phys_to_virt(mb->start) >= VMALLOC_MIN) { | ||
584 | printk(KERN_NOTICE "Ignoring RAM at %.8lx-%.8lx " | ||
585 | "(vmalloc region overlap).\n", | ||
586 | mb->start, mb->start + mb->size - 1); | ||
587 | return 0; | ||
588 | } | ||
589 | |||
590 | /* | ||
591 | * Check whether this memory region would partially overlap | ||
592 | * the vmalloc area. | ||
593 | */ | ||
594 | if (phys_to_virt(mb->start + mb->size) < phys_to_virt(mb->start) || | ||
595 | phys_to_virt(mb->start + mb->size) > VMALLOC_MIN) { | ||
596 | unsigned long newsize = VMALLOC_MIN - phys_to_virt(mb->start); | ||
597 | |||
598 | printk(KERN_NOTICE "Truncating RAM at %.8lx-%.8lx " | ||
599 | "to -%.8lx (vmalloc region overlap).\n", | ||
600 | mb->start, mb->start + mb->size - 1, | ||
601 | mb->start + newsize - 1); | ||
602 | mb->size = newsize; | ||
603 | } | ||
604 | |||
605 | return 1; | ||
606 | } | ||
607 | |||
608 | static void __init sanity_check_meminfo(struct meminfo *mi) | ||
609 | { | ||
610 | int i; | ||
611 | int j; | ||
612 | |||
613 | for (i = 0, j = 0; i < mi->nr_banks; i++) { | ||
614 | if (check_membank_valid(&mi->bank[i])) | ||
615 | mi->bank[j++] = mi->bank[i]; | ||
616 | } | ||
617 | mi->nr_banks = j; | ||
618 | } | ||
619 | |||
571 | static inline void prepare_page_table(struct meminfo *mi) | 620 | static inline void prepare_page_table(struct meminfo *mi) |
572 | { | 621 | { |
573 | unsigned long addr; | 622 | unsigned long addr; |
@@ -753,6 +802,7 @@ void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc) | |||
753 | void *zero_page; | 802 | void *zero_page; |
754 | 803 | ||
755 | build_mem_type_table(); | 804 | build_mem_type_table(); |
805 | sanity_check_meminfo(mi); | ||
756 | prepare_page_table(mi); | 806 | prepare_page_table(mi); |
757 | bootmem_init(mi); | 807 | bootmem_init(mi); |
758 | devicemaps_init(mdesc); | 808 | devicemaps_init(mdesc); |
diff --git a/arch/arm/plat-orion/include/plat/cache-feroceon-l2.h b/arch/arm/plat-orion/include/plat/cache-feroceon-l2.h new file mode 100644 index 000000000000..06f982d55697 --- /dev/null +++ b/arch/arm/plat-orion/include/plat/cache-feroceon-l2.h | |||
@@ -0,0 +1,11 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-orion/include/plat/cache-feroceon-l2.h | ||
3 | * | ||
4 | * Copyright (C) 2008 Marvell Semiconductor | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | extern void __init feroceon_l2_init(int l2_wt_override); | ||
diff --git a/arch/arm/plat-orion/include/plat/ehci-orion.h b/arch/arm/plat-orion/include/plat/ehci-orion.h new file mode 100644 index 000000000000..64343051095a --- /dev/null +++ b/arch/arm/plat-orion/include/plat/ehci-orion.h | |||
@@ -0,0 +1,19 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-orion/include/plat/ehci-orion.h | ||
3 | * | ||
4 | * This file is licensed under the terms of the GNU General Public | ||
5 | * License version 2. This program is licensed "as is" without any | ||
6 | * warranty of any kind, whether express or implied. | ||
7 | */ | ||
8 | |||
9 | #ifndef __PLAT_EHCI_ORION_H | ||
10 | #define __PLAT_EHCI_ORION_H | ||
11 | |||
12 | #include <linux/mbus.h> | ||
13 | |||
14 | struct orion_ehci_data { | ||
15 | struct mbus_dram_target_info *dram; | ||
16 | }; | ||
17 | |||
18 | |||
19 | #endif | ||
diff --git a/arch/arm/plat-orion/include/plat/irq.h b/arch/arm/plat-orion/include/plat/irq.h new file mode 100644 index 000000000000..f05eeab94968 --- /dev/null +++ b/arch/arm/plat-orion/include/plat/irq.h | |||
@@ -0,0 +1,17 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-orion/include/plat/irq.h | ||
3 | * | ||
4 | * Marvell Orion SoC IRQ handling. | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | #ifndef __PLAT_IRQ_H | ||
12 | #define __PLAT_IRQ_H | ||
13 | |||
14 | void orion_irq_init(unsigned int irq_start, void __iomem *maskaddr); | ||
15 | |||
16 | |||
17 | #endif | ||
diff --git a/arch/arm/plat-orion/include/plat/mv_xor.h b/arch/arm/plat-orion/include/plat/mv_xor.h new file mode 100644 index 000000000000..bd5f3bdb4ae3 --- /dev/null +++ b/arch/arm/plat-orion/include/plat/mv_xor.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-orion/include/plat/mv_xor.h | ||
3 | * | ||
4 | * Marvell XOR platform device data definition file. | ||
5 | */ | ||
6 | |||
7 | #ifndef __PLAT_MV_XOR_H | ||
8 | #define __PLAT_MV_XOR_H | ||
9 | |||
10 | #include <linux/dmaengine.h> | ||
11 | #include <linux/mbus.h> | ||
12 | |||
13 | #define MV_XOR_SHARED_NAME "mv_xor_shared" | ||
14 | #define MV_XOR_NAME "mv_xor" | ||
15 | |||
16 | struct mbus_dram_target_info; | ||
17 | |||
18 | struct mv_xor_platform_shared_data { | ||
19 | struct mbus_dram_target_info *dram; | ||
20 | }; | ||
21 | |||
22 | struct mv_xor_platform_data { | ||
23 | struct platform_device *shared; | ||
24 | int hw_id; | ||
25 | dma_cap_mask_t cap_mask; | ||
26 | size_t pool_size; | ||
27 | }; | ||
28 | |||
29 | |||
30 | #endif | ||
diff --git a/arch/arm/plat-orion/include/plat/orion_nand.h b/arch/arm/plat-orion/include/plat/orion_nand.h new file mode 100644 index 000000000000..d6a4cfa37785 --- /dev/null +++ b/arch/arm/plat-orion/include/plat/orion_nand.h | |||
@@ -0,0 +1,25 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-orion/include/plat/orion_nand.h | ||
3 | * | ||
4 | * This file is licensed under the terms of the GNU General Public | ||
5 | * License version 2. This program is licensed "as is" without any | ||
6 | * warranty of any kind, whether express or implied. | ||
7 | */ | ||
8 | |||
9 | #ifndef __PLAT_ORION_NAND_H | ||
10 | #define __PLAT_ORION_NAND_H | ||
11 | |||
12 | /* | ||
13 | * Device bus NAND private data | ||
14 | */ | ||
15 | struct orion_nand_data { | ||
16 | struct mtd_partition *parts; | ||
17 | u32 nr_parts; | ||
18 | u8 ale; /* address line number connected to ALE */ | ||
19 | u8 cle; /* address line number connected to CLE */ | ||
20 | u8 width; /* buswidth */ | ||
21 | u8 chip_delay; | ||
22 | }; | ||
23 | |||
24 | |||
25 | #endif | ||
diff --git a/arch/arm/plat-orion/include/plat/pcie.h b/arch/arm/plat-orion/include/plat/pcie.h new file mode 100644 index 000000000000..3ebfef72b4e7 --- /dev/null +++ b/arch/arm/plat-orion/include/plat/pcie.h | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-orion/include/plat/pcie.h | ||
3 | * | ||
4 | * Marvell Orion SoC PCIe handling. | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | #ifndef __PLAT_PCIE_H | ||
12 | #define __PLAT_PCIE_H | ||
13 | |||
14 | u32 orion_pcie_dev_id(void __iomem *base); | ||
15 | u32 orion_pcie_rev(void __iomem *base); | ||
16 | int orion_pcie_link_up(void __iomem *base); | ||
17 | int orion_pcie_x4_mode(void __iomem *base); | ||
18 | int orion_pcie_get_local_bus_nr(void __iomem *base); | ||
19 | void orion_pcie_set_local_bus_nr(void __iomem *base, int nr); | ||
20 | void orion_pcie_setup(void __iomem *base, | ||
21 | struct mbus_dram_target_info *dram); | ||
22 | int orion_pcie_rd_conf(void __iomem *base, struct pci_bus *bus, | ||
23 | u32 devfn, int where, int size, u32 *val); | ||
24 | int orion_pcie_rd_conf_tlp(void __iomem *base, struct pci_bus *bus, | ||
25 | u32 devfn, int where, int size, u32 *val); | ||
26 | int orion_pcie_rd_conf_wa(void __iomem *wa_base, struct pci_bus *bus, | ||
27 | u32 devfn, int where, int size, u32 *val); | ||
28 | int orion_pcie_wr_conf(void __iomem *base, struct pci_bus *bus, | ||
29 | u32 devfn, int where, int size, u32 val); | ||
30 | |||
31 | |||
32 | #endif | ||
diff --git a/arch/arm/plat-orion/include/plat/time.h b/arch/arm/plat-orion/include/plat/time.h new file mode 100644 index 000000000000..c06ca35f3613 --- /dev/null +++ b/arch/arm/plat-orion/include/plat/time.h | |||
@@ -0,0 +1,17 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-orion/include/plat/time.h | ||
3 | * | ||
4 | * Marvell Orion SoC time handling. | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public | ||
7 | * License version 2. This program is licensed "as is" without any | ||
8 | * warranty of any kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | #ifndef __PLAT_TIME_H | ||
12 | #define __PLAT_TIME_H | ||
13 | |||
14 | void orion_time_init(unsigned int irq, unsigned int tclk); | ||
15 | |||
16 | |||
17 | #endif | ||
diff --git a/arch/arm/plat-orion/irq.c b/arch/arm/plat-orion/irq.c index fe66a1835169..3f9d34fc738c 100644 --- a/arch/arm/plat-orion/irq.c +++ b/arch/arm/plat-orion/irq.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/irq.h> | 13 | #include <linux/irq.h> |
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <asm/plat-orion/irq.h> | 15 | #include <plat/irq.h> |
16 | 16 | ||
17 | static void orion_irq_mask(u32 irq) | 17 | static void orion_irq_mask(u32 irq) |
18 | { | 18 | { |
diff --git a/arch/arm/plat-orion/pcie.c b/arch/arm/plat-orion/pcie.c index ca32c60e14d7..883902fead89 100644 --- a/arch/arm/plat-orion/pcie.c +++ b/arch/arm/plat-orion/pcie.c | |||
@@ -12,7 +12,7 @@ | |||
12 | #include <linux/pci.h> | 12 | #include <linux/pci.h> |
13 | #include <linux/mbus.h> | 13 | #include <linux/mbus.h> |
14 | #include <asm/mach/pci.h> | 14 | #include <asm/mach/pci.h> |
15 | #include <asm/plat-orion/pcie.h> | 15 | #include <plat/pcie.h> |
16 | 16 | ||
17 | /* | 17 | /* |
18 | * PCIe unit register offsets. | 18 | * PCIe unit register offsets. |