diff options
96 files changed, 222 insertions, 436 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4c445fb9c189..9ec5f5588dc5 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -327,7 +327,6 @@ choice | |||
327 | config ARCH_MULTIPLATFORM | 327 | config ARCH_MULTIPLATFORM |
328 | bool "Allow multiple platforms to be selected" | 328 | bool "Allow multiple platforms to be selected" |
329 | depends on MMU | 329 | depends on MMU |
330 | select ARCH_WANT_OPTIONAL_GPIOLIB | ||
331 | select ARM_HAS_SG_CHAIN | 330 | select ARM_HAS_SG_CHAIN |
332 | select ARM_PATCH_PHYS_VIRT | 331 | select ARM_PATCH_PHYS_VIRT |
333 | select AUTO_ZRELADDR | 332 | select AUTO_ZRELADDR |
@@ -342,7 +341,6 @@ config ARCH_MULTIPLATFORM | |||
342 | config ARM_SINGLE_ARMV7M | 341 | config ARM_SINGLE_ARMV7M |
343 | bool "ARMv7-M based platforms (Cortex-M0/M3/M4)" | 342 | bool "ARMv7-M based platforms (Cortex-M0/M3/M4)" |
344 | depends on !MMU | 343 | depends on !MMU |
345 | select ARCH_WANT_OPTIONAL_GPIOLIB | ||
346 | select ARM_NVIC | 344 | select ARM_NVIC |
347 | select AUTO_ZRELADDR | 345 | select AUTO_ZRELADDR |
348 | select CLKSRC_OF | 346 | select CLKSRC_OF |
@@ -356,12 +354,12 @@ config ARM_SINGLE_ARMV7M | |||
356 | 354 | ||
357 | config ARCH_CLPS711X | 355 | config ARCH_CLPS711X |
358 | bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" | 356 | bool "Cirrus Logic CLPS711x/EP721x/EP731x-based" |
359 | select ARCH_REQUIRE_GPIOLIB | ||
360 | select AUTO_ZRELADDR | 357 | select AUTO_ZRELADDR |
361 | select COMMON_CLK | 358 | select COMMON_CLK |
362 | select CPU_ARM720T | 359 | select CPU_ARM720T |
363 | select GENERIC_CLOCKEVENTS | 360 | select GENERIC_CLOCKEVENTS |
364 | select CLPS711X_TIMER | 361 | select CLPS711X_TIMER |
362 | select GPIOLIB | ||
365 | select MFD_SYSCON | 363 | select MFD_SYSCON |
366 | select SOC_BUS | 364 | select SOC_BUS |
367 | help | 365 | help |
@@ -369,10 +367,10 @@ config ARCH_CLPS711X | |||
369 | 367 | ||
370 | config ARCH_GEMINI | 368 | config ARCH_GEMINI |
371 | bool "Cortina Systems Gemini" | 369 | bool "Cortina Systems Gemini" |
372 | select ARCH_REQUIRE_GPIOLIB | ||
373 | select CLKSRC_MMIO | 370 | select CLKSRC_MMIO |
374 | select CPU_FA526 | 371 | select CPU_FA526 |
375 | select GENERIC_CLOCKEVENTS | 372 | select GENERIC_CLOCKEVENTS |
373 | select GPIOLIB | ||
376 | help | 374 | help |
377 | Support for the Cortina Systems Gemini family SoCs | 375 | Support for the Cortina Systems Gemini family SoCs |
378 | 376 | ||
@@ -393,7 +391,6 @@ config ARCH_EBSA110 | |||
393 | config ARCH_EP93XX | 391 | config ARCH_EP93XX |
394 | bool "EP93xx-based" | 392 | bool "EP93xx-based" |
395 | select ARCH_HAS_HOLES_MEMORYMODEL | 393 | select ARCH_HAS_HOLES_MEMORYMODEL |
396 | select ARCH_REQUIRE_GPIOLIB | ||
397 | select ARM_AMBA | 394 | select ARM_AMBA |
398 | select ARM_PATCH_PHYS_VIRT | 395 | select ARM_PATCH_PHYS_VIRT |
399 | select ARM_VIC | 396 | select ARM_VIC |
@@ -402,6 +399,7 @@ config ARCH_EP93XX | |||
402 | select CLKSRC_MMIO | 399 | select CLKSRC_MMIO |
403 | select CPU_ARM920T | 400 | select CPU_ARM920T |
404 | select GENERIC_CLOCKEVENTS | 401 | select GENERIC_CLOCKEVENTS |
402 | select GPIOLIB | ||
405 | help | 403 | help |
406 | This enables support for the Cirrus EP93xx series of CPUs. | 404 | This enables support for the Cirrus EP93xx series of CPUs. |
407 | 405 | ||
@@ -442,9 +440,9 @@ config ARCH_IOP13XX | |||
442 | config ARCH_IOP32X | 440 | config ARCH_IOP32X |
443 | bool "IOP32x-based" | 441 | bool "IOP32x-based" |
444 | depends on MMU | 442 | depends on MMU |
445 | select ARCH_REQUIRE_GPIOLIB | ||
446 | select CPU_XSCALE | 443 | select CPU_XSCALE |
447 | select GPIO_IOP | 444 | select GPIO_IOP |
445 | select GPIOLIB | ||
448 | select NEED_RET_TO_USER | 446 | select NEED_RET_TO_USER |
449 | select PCI | 447 | select PCI |
450 | select PLAT_IOP | 448 | select PLAT_IOP |
@@ -455,9 +453,9 @@ config ARCH_IOP32X | |||
455 | config ARCH_IOP33X | 453 | config ARCH_IOP33X |
456 | bool "IOP33x-based" | 454 | bool "IOP33x-based" |
457 | depends on MMU | 455 | depends on MMU |
458 | select ARCH_REQUIRE_GPIOLIB | ||
459 | select CPU_XSCALE | 456 | select CPU_XSCALE |
460 | select GPIO_IOP | 457 | select GPIO_IOP |
458 | select GPIOLIB | ||
461 | select NEED_RET_TO_USER | 459 | select NEED_RET_TO_USER |
462 | select PCI | 460 | select PCI |
463 | select PLAT_IOP | 461 | select PLAT_IOP |
@@ -468,12 +466,12 @@ config ARCH_IXP4XX | |||
468 | bool "IXP4xx-based" | 466 | bool "IXP4xx-based" |
469 | depends on MMU | 467 | depends on MMU |
470 | select ARCH_HAS_DMA_SET_COHERENT_MASK | 468 | select ARCH_HAS_DMA_SET_COHERENT_MASK |
471 | select ARCH_REQUIRE_GPIOLIB | ||
472 | select ARCH_SUPPORTS_BIG_ENDIAN | 469 | select ARCH_SUPPORTS_BIG_ENDIAN |
473 | select CLKSRC_MMIO | 470 | select CLKSRC_MMIO |
474 | select CPU_XSCALE | 471 | select CPU_XSCALE |
475 | select DMABOUNCE if PCI | 472 | select DMABOUNCE if PCI |
476 | select GENERIC_CLOCKEVENTS | 473 | select GENERIC_CLOCKEVENTS |
474 | select GPIOLIB | ||
477 | select MIGHT_HAVE_PCI | 475 | select MIGHT_HAVE_PCI |
478 | select NEED_MACH_IO_H | 476 | select NEED_MACH_IO_H |
479 | select USB_EHCI_BIG_ENDIAN_DESC | 477 | select USB_EHCI_BIG_ENDIAN_DESC |
@@ -483,9 +481,9 @@ config ARCH_IXP4XX | |||
483 | 481 | ||
484 | config ARCH_DOVE | 482 | config ARCH_DOVE |
485 | bool "Marvell Dove" | 483 | bool "Marvell Dove" |
486 | select ARCH_REQUIRE_GPIOLIB | ||
487 | select CPU_PJ4 | 484 | select CPU_PJ4 |
488 | select GENERIC_CLOCKEVENTS | 485 | select GENERIC_CLOCKEVENTS |
486 | select GPIOLIB | ||
489 | select MIGHT_HAVE_PCI | 487 | select MIGHT_HAVE_PCI |
490 | select MULTI_IRQ_HANDLER | 488 | select MULTI_IRQ_HANDLER |
491 | select MVEBU_MBUS | 489 | select MVEBU_MBUS |
@@ -499,10 +497,10 @@ config ARCH_DOVE | |||
499 | 497 | ||
500 | config ARCH_KS8695 | 498 | config ARCH_KS8695 |
501 | bool "Micrel/Kendin KS8695" | 499 | bool "Micrel/Kendin KS8695" |
502 | select ARCH_REQUIRE_GPIOLIB | ||
503 | select CLKSRC_MMIO | 500 | select CLKSRC_MMIO |
504 | select CPU_ARM922T | 501 | select CPU_ARM922T |
505 | select GENERIC_CLOCKEVENTS | 502 | select GENERIC_CLOCKEVENTS |
503 | select GPIOLIB | ||
506 | select NEED_MACH_MEMORY_H | 504 | select NEED_MACH_MEMORY_H |
507 | help | 505 | help |
508 | Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based | 506 | Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based |
@@ -510,11 +508,11 @@ config ARCH_KS8695 | |||
510 | 508 | ||
511 | config ARCH_W90X900 | 509 | config ARCH_W90X900 |
512 | bool "Nuvoton W90X900 CPU" | 510 | bool "Nuvoton W90X900 CPU" |
513 | select ARCH_REQUIRE_GPIOLIB | ||
514 | select CLKDEV_LOOKUP | 511 | select CLKDEV_LOOKUP |
515 | select CLKSRC_MMIO | 512 | select CLKSRC_MMIO |
516 | select CPU_ARM926T | 513 | select CPU_ARM926T |
517 | select GENERIC_CLOCKEVENTS | 514 | select GENERIC_CLOCKEVENTS |
515 | select GPIOLIB | ||
518 | help | 516 | help |
519 | Support for Nuvoton (Winbond logic dept.) ARM9 processor, | 517 | Support for Nuvoton (Winbond logic dept.) ARM9 processor, |
520 | At present, the w90x900 has been renamed nuc900, regarding | 518 | At present, the w90x900 has been renamed nuc900, regarding |
@@ -526,13 +524,13 @@ config ARCH_W90X900 | |||
526 | 524 | ||
527 | config ARCH_LPC32XX | 525 | config ARCH_LPC32XX |
528 | bool "NXP LPC32XX" | 526 | bool "NXP LPC32XX" |
529 | select ARCH_REQUIRE_GPIOLIB | ||
530 | select ARM_AMBA | 527 | select ARM_AMBA |
531 | select CLKDEV_LOOKUP | 528 | select CLKDEV_LOOKUP |
532 | select CLKSRC_LPC32XX | 529 | select CLKSRC_LPC32XX |
533 | select COMMON_CLK | 530 | select COMMON_CLK |
534 | select CPU_ARM926T | 531 | select CPU_ARM926T |
535 | select GENERIC_CLOCKEVENTS | 532 | select GENERIC_CLOCKEVENTS |
533 | select GPIOLIB | ||
536 | select MULTI_IRQ_HANDLER | 534 | select MULTI_IRQ_HANDLER |
537 | select SPARSE_IRQ | 535 | select SPARSE_IRQ |
538 | select USE_OF | 536 | select USE_OF |
@@ -543,7 +541,6 @@ config ARCH_PXA | |||
543 | bool "PXA2xx/PXA3xx-based" | 541 | bool "PXA2xx/PXA3xx-based" |
544 | depends on MMU | 542 | depends on MMU |
545 | select ARCH_MTD_XIP | 543 | select ARCH_MTD_XIP |
546 | select ARCH_REQUIRE_GPIOLIB | ||
547 | select ARM_CPU_SUSPEND if PM | 544 | select ARM_CPU_SUSPEND if PM |
548 | select AUTO_ZRELADDR | 545 | select AUTO_ZRELADDR |
549 | select COMMON_CLK | 546 | select COMMON_CLK |
@@ -554,6 +551,7 @@ config ARCH_PXA | |||
554 | select CPU_XSCALE if !CPU_XSC3 | 551 | select CPU_XSCALE if !CPU_XSC3 |
555 | select GENERIC_CLOCKEVENTS | 552 | select GENERIC_CLOCKEVENTS |
556 | select GPIO_PXA | 553 | select GPIO_PXA |
554 | select GPIOLIB | ||
557 | select HAVE_IDE | 555 | select HAVE_IDE |
558 | select IRQ_DOMAIN | 556 | select IRQ_DOMAIN |
559 | select MULTI_IRQ_HANDLER | 557 | select MULTI_IRQ_HANDLER |
@@ -584,7 +582,6 @@ config ARCH_RPC | |||
584 | config ARCH_SA1100 | 582 | config ARCH_SA1100 |
585 | bool "SA1100-based" | 583 | bool "SA1100-based" |
586 | select ARCH_MTD_XIP | 584 | select ARCH_MTD_XIP |
587 | select ARCH_REQUIRE_GPIOLIB | ||
588 | select ARCH_SPARSEMEM_ENABLE | 585 | select ARCH_SPARSEMEM_ENABLE |
589 | select CLKDEV_LOOKUP | 586 | select CLKDEV_LOOKUP |
590 | select CLKSRC_MMIO | 587 | select CLKSRC_MMIO |
@@ -593,6 +590,7 @@ config ARCH_SA1100 | |||
593 | select CPU_FREQ | 590 | select CPU_FREQ |
594 | select CPU_SA1100 | 591 | select CPU_SA1100 |
595 | select GENERIC_CLOCKEVENTS | 592 | select GENERIC_CLOCKEVENTS |
593 | select GPIOLIB | ||
596 | select HAVE_IDE | 594 | select HAVE_IDE |
597 | select IRQ_DOMAIN | 595 | select IRQ_DOMAIN |
598 | select ISA | 596 | select ISA |
@@ -604,12 +602,12 @@ config ARCH_SA1100 | |||
604 | 602 | ||
605 | config ARCH_S3C24XX | 603 | config ARCH_S3C24XX |
606 | bool "Samsung S3C24XX SoCs" | 604 | bool "Samsung S3C24XX SoCs" |
607 | select ARCH_REQUIRE_GPIOLIB | ||
608 | select ATAGS | 605 | select ATAGS |
609 | select CLKDEV_LOOKUP | 606 | select CLKDEV_LOOKUP |
610 | select CLKSRC_SAMSUNG_PWM | 607 | select CLKSRC_SAMSUNG_PWM |
611 | select GENERIC_CLOCKEVENTS | 608 | select GENERIC_CLOCKEVENTS |
612 | select GPIO_SAMSUNG | 609 | select GPIO_SAMSUNG |
610 | select GPIOLIB | ||
613 | select HAVE_S3C2410_I2C if I2C | 611 | select HAVE_S3C2410_I2C if I2C |
614 | select HAVE_S3C2410_WATCHDOG if WATCHDOG | 612 | select HAVE_S3C2410_WATCHDOG if WATCHDOG |
615 | select HAVE_S3C_RTC if RTC_CLASS | 613 | select HAVE_S3C_RTC if RTC_CLASS |
@@ -625,12 +623,12 @@ config ARCH_S3C24XX | |||
625 | config ARCH_DAVINCI | 623 | config ARCH_DAVINCI |
626 | bool "TI DaVinci" | 624 | bool "TI DaVinci" |
627 | select ARCH_HAS_HOLES_MEMORYMODEL | 625 | select ARCH_HAS_HOLES_MEMORYMODEL |
628 | select ARCH_REQUIRE_GPIOLIB | ||
629 | select CLKDEV_LOOKUP | 626 | select CLKDEV_LOOKUP |
630 | select CPU_ARM926T | 627 | select CPU_ARM926T |
631 | select GENERIC_ALLOCATOR | 628 | select GENERIC_ALLOCATOR |
632 | select GENERIC_CLOCKEVENTS | 629 | select GENERIC_CLOCKEVENTS |
633 | select GENERIC_IRQ_CHIP | 630 | select GENERIC_IRQ_CHIP |
631 | select GPIOLIB | ||
634 | select HAVE_IDE | 632 | select HAVE_IDE |
635 | select USE_OF | 633 | select USE_OF |
636 | select ZONE_DMA | 634 | select ZONE_DMA |
@@ -642,11 +640,11 @@ config ARCH_OMAP1 | |||
642 | depends on MMU | 640 | depends on MMU |
643 | select ARCH_HAS_HOLES_MEMORYMODEL | 641 | select ARCH_HAS_HOLES_MEMORYMODEL |
644 | select ARCH_OMAP | 642 | select ARCH_OMAP |
645 | select ARCH_REQUIRE_GPIOLIB | ||
646 | select CLKDEV_LOOKUP | 643 | select CLKDEV_LOOKUP |
647 | select CLKSRC_MMIO | 644 | select CLKSRC_MMIO |
648 | select GENERIC_CLOCKEVENTS | 645 | select GENERIC_CLOCKEVENTS |
649 | select GENERIC_IRQ_CHIP | 646 | select GENERIC_IRQ_CHIP |
647 | select GPIOLIB | ||
650 | select HAVE_IDE | 648 | select HAVE_IDE |
651 | select IRQ_DOMAIN | 649 | select IRQ_DOMAIN |
652 | select MULTI_IRQ_HANDLER | 650 | select MULTI_IRQ_HANDLER |
@@ -868,7 +866,7 @@ source "arch/arm/mach-zynq/Kconfig" | |||
868 | config ARCH_EFM32 | 866 | config ARCH_EFM32 |
869 | bool "Energy Micro efm32" | 867 | bool "Energy Micro efm32" |
870 | depends on ARM_SINGLE_ARMV7M | 868 | depends on ARM_SINGLE_ARMV7M |
871 | select ARCH_REQUIRE_GPIOLIB | 869 | select GPIOLIB |
872 | help | 870 | help |
873 | Support for Energy Micro's (now Silicon Labs) efm32 Giant Gecko | 871 | Support for Energy Micro's (now Silicon Labs) efm32 Giant Gecko |
874 | processors. | 872 | processors. |
@@ -901,7 +899,7 @@ config MACH_STM32F429 | |||
901 | default y | 899 | default y |
902 | 900 | ||
903 | config ARCH_MPS2 | 901 | config ARCH_MPS2 |
904 | bool "ARM MPS2 paltform" | 902 | bool "ARM MPS2 platform" |
905 | depends on ARM_SINGLE_ARMV7M | 903 | depends on ARM_SINGLE_ARMV7M |
906 | select ARM_AMBA | 904 | select ARM_AMBA |
907 | select CLKSRC_MPS2 | 905 | select CLKSRC_MPS2 |
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig index 08047afdf38e..5204395efda8 100644 --- a/arch/arm/mach-at91/Kconfig +++ b/arch/arm/mach-at91/Kconfig | |||
@@ -1,8 +1,8 @@ | |||
1 | menuconfig ARCH_AT91 | 1 | menuconfig ARCH_AT91 |
2 | bool "Atmel SoCs" | 2 | bool "Atmel SoCs" |
3 | depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V7 | 3 | depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V7 |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select COMMON_CLK_AT91 | 4 | select COMMON_CLK_AT91 |
5 | select GPIOLIB | ||
6 | select PINCTRL | 6 | select PINCTRL |
7 | select SOC_BUS | 7 | select SOC_BUS |
8 | 8 | ||
diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index 4f1709b31822..5f63f513d9c9 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig | |||
@@ -17,7 +17,7 @@ config ARCH_BCM_IPROC | |||
17 | select ARM_GLOBAL_TIMER | 17 | select ARM_GLOBAL_TIMER |
18 | select COMMON_CLK_IPROC | 18 | select COMMON_CLK_IPROC |
19 | select CLKSRC_MMIO | 19 | select CLKSRC_MMIO |
20 | select ARCH_REQUIRE_GPIOLIB | 20 | select GPIOLIB |
21 | select ARM_AMBA | 21 | select ARM_AMBA |
22 | select PINCTRL | 22 | select PINCTRL |
23 | help | 23 | help |
@@ -80,7 +80,7 @@ comment "KONA architected SoCs" | |||
80 | 80 | ||
81 | config ARCH_BCM_MOBILE | 81 | config ARCH_BCM_MOBILE |
82 | bool | 82 | bool |
83 | select ARCH_REQUIRE_GPIOLIB | 83 | select GPIOLIB |
84 | select ARM_ERRATA_754322 | 84 | select ARM_ERRATA_754322 |
85 | select ARM_ERRATA_775420 | 85 | select ARM_ERRATA_775420 |
86 | select ARM_GIC | 86 | select ARM_GIC |
@@ -138,7 +138,7 @@ comment "Other Architectures" | |||
138 | config ARCH_BCM2835 | 138 | config ARCH_BCM2835 |
139 | bool "Broadcom BCM2835 family" | 139 | bool "Broadcom BCM2835 family" |
140 | depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 | 140 | depends on ARCH_MULTI_V6 || ARCH_MULTI_V7 |
141 | select ARCH_REQUIRE_GPIOLIB | 141 | select GPIOLIB |
142 | select ARM_AMBA | 142 | select ARM_AMBA |
143 | select ARM_ERRATA_411920 if ARCH_MULTI_V6 | 143 | select ARM_ERRATA_411920 if ARCH_MULTI_V6 |
144 | select ARM_TIMER_SP804 | 144 | select ARM_TIMER_SP804 |
@@ -178,7 +178,6 @@ config ARCH_BRCMSTB | |||
178 | select BRCMSTB_L2_IRQ | 178 | select BRCMSTB_L2_IRQ |
179 | select BCM7120_L2_IRQ | 179 | select BCM7120_L2_IRQ |
180 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE | 180 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE |
181 | select ARCH_WANT_OPTIONAL_GPIOLIB | ||
182 | select SOC_BRCMSTB | 181 | select SOC_BRCMSTB |
183 | select SOC_BUS | 182 | select SOC_BUS |
184 | help | 183 | help |
diff --git a/arch/arm/mach-berlin/Kconfig b/arch/arm/mach-berlin/Kconfig index ffbfa0bd091b..63ab1d368625 100644 --- a/arch/arm/mach-berlin/Kconfig +++ b/arch/arm/mach-berlin/Kconfig | |||
@@ -2,11 +2,11 @@ menuconfig ARCH_BERLIN | |||
2 | bool "Marvell Berlin SoCs" | 2 | bool "Marvell Berlin SoCs" |
3 | depends on ARCH_MULTI_V7 | 3 | depends on ARCH_MULTI_V7 |
4 | select ARCH_HAS_RESET_CONTROLLER | 4 | select ARCH_HAS_RESET_CONTROLLER |
5 | select ARCH_REQUIRE_GPIOLIB | ||
6 | select ARM_GIC | 5 | select ARM_GIC |
7 | select DW_APB_ICTL | 6 | select DW_APB_ICTL |
8 | select DW_APB_TIMER_OF | 7 | select DW_APB_TIMER_OF |
9 | select GENERIC_IRQ_CHIP | 8 | select GENERIC_IRQ_CHIP |
9 | select GPIOLIB | ||
10 | select MFD_SYSCON | 10 | select MFD_SYSCON |
11 | select PINCTRL | 11 | select PINCTRL |
12 | 12 | ||
diff --git a/arch/arm/mach-digicolor/Kconfig b/arch/arm/mach-digicolor/Kconfig index fc65b0f1db48..9d05c6c4181d 100644 --- a/arch/arm/mach-digicolor/Kconfig +++ b/arch/arm/mach-digicolor/Kconfig | |||
@@ -1,10 +1,10 @@ | |||
1 | config ARCH_DIGICOLOR | 1 | config ARCH_DIGICOLOR |
2 | bool "Conexant Digicolor SoC Support" | 2 | bool "Conexant Digicolor SoC Support" |
3 | depends on ARCH_MULTI_V7 | 3 | depends on ARCH_MULTI_V7 |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select CLKSRC_MMIO | 4 | select CLKSRC_MMIO |
6 | select DIGICOLOR_TIMER | 5 | select DIGICOLOR_TIMER |
7 | select GENERIC_IRQ_CHIP | 6 | select GENERIC_IRQ_CHIP |
7 | select GPIOLIB | ||
8 | select MFD_SYSCON | 8 | select MFD_SYSCON |
9 | select PINCTRL | 9 | select PINCTRL |
10 | select PINCTRL_DIGICOLOR | 10 | select PINCTRL_DIGICOLOR |
diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig index 20dcf6e904b2..ecf139f31c4c 100644 --- a/arch/arm/mach-exynos/Kconfig +++ b/arch/arm/mach-exynos/Kconfig | |||
@@ -12,13 +12,13 @@ menuconfig ARCH_EXYNOS | |||
12 | depends on ARCH_MULTI_V7 | 12 | depends on ARCH_MULTI_V7 |
13 | select ARCH_HAS_BANDGAP | 13 | select ARCH_HAS_BANDGAP |
14 | select ARCH_HAS_HOLES_MEMORYMODEL | 14 | select ARCH_HAS_HOLES_MEMORYMODEL |
15 | select ARCH_REQUIRE_GPIOLIB | ||
16 | select ARM_AMBA | 15 | select ARM_AMBA |
17 | select ARM_GIC | 16 | select ARM_GIC |
18 | select COMMON_CLK_SAMSUNG | 17 | select COMMON_CLK_SAMSUNG |
19 | select EXYNOS_THERMAL | 18 | select EXYNOS_THERMAL |
20 | select EXYNOS_PMU | 19 | select EXYNOS_PMU |
21 | select EXYNOS_SROM | 20 | select EXYNOS_SROM |
21 | select GPIOLIB | ||
22 | select HAVE_ARM_SCU if SMP | 22 | select HAVE_ARM_SCU if SMP |
23 | select HAVE_S3C2410_I2C if I2C | 23 | select HAVE_S3C2410_I2C if I2C |
24 | select HAVE_S3C2410_WATCHDOG if WATCHDOG | 24 | select HAVE_S3C2410_WATCHDOG if WATCHDOG |
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index dd905b9602a0..ee9a318cab31 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -1,10 +1,10 @@ | |||
1 | menuconfig ARCH_MXC | 1 | menuconfig ARCH_MXC |
2 | bool "Freescale i.MX family" | 2 | bool "Freescale i.MX family" |
3 | depends on ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M | 3 | depends on ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select ARCH_SUPPORTS_BIG_ENDIAN | 4 | select ARCH_SUPPORTS_BIG_ENDIAN |
6 | select CLKSRC_IMX_GPT | 5 | select CLKSRC_IMX_GPT |
7 | select GENERIC_IRQ_CHIP | 6 | select GENERIC_IRQ_CHIP |
7 | select GPIOLIB | ||
8 | select PINCTRL | 8 | select PINCTRL |
9 | select PM_OPP if PM | 9 | select PM_OPP if PM |
10 | select SOC_BUS | 10 | select SOC_BUS |
@@ -44,9 +44,6 @@ config MXC_USE_EPIT | |||
44 | uses the same clocks as the GPT. Anyway, on some systems the GPT | 44 | uses the same clocks as the GPT. Anyway, on some systems the GPT |
45 | may be in use for other purposes. | 45 | may be in use for other purposes. |
46 | 46 | ||
47 | config ARCH_HAS_RNGA | ||
48 | bool | ||
49 | |||
50 | config HAVE_IMX_ANATOP | 47 | config HAVE_IMX_ANATOP |
51 | bool | 48 | bool |
52 | 49 | ||
@@ -90,7 +87,6 @@ config SOC_IMX27 | |||
90 | config SOC_IMX31 | 87 | config SOC_IMX31 |
91 | bool | 88 | bool |
92 | select CPU_V6 | 89 | select CPU_V6 |
93 | select IMX_HAVE_PLATFORM_MXC_RNGA | ||
94 | select MXC_AVIC | 90 | select MXC_AVIC |
95 | select SMP_ON_UP if SMP | 91 | select SMP_ON_UP if SMP |
96 | 92 | ||
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index 9fbe624a5ef9..9f5fffd62702 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile | |||
@@ -8,8 +8,8 @@ obj-$(CONFIG_SOC_IMX25) += cpu-imx25.o mach-imx25.o pm-imx25.o | |||
8 | obj-$(CONFIG_SOC_IMX27) += cpu-imx27.o pm-imx27.o | 8 | obj-$(CONFIG_SOC_IMX27) += cpu-imx27.o pm-imx27.o |
9 | obj-$(CONFIG_SOC_IMX27) += mm-imx27.o ehci-imx27.o | 9 | obj-$(CONFIG_SOC_IMX27) += mm-imx27.o ehci-imx27.o |
10 | 10 | ||
11 | obj-$(CONFIG_SOC_IMX31) += mm-imx3.o cpu-imx31.o iomux-imx31.o ehci-imx31.o pm-imx3.o | 11 | obj-$(CONFIG_SOC_IMX31) += mm-imx3.o cpu-imx31.o iomux-imx31.o ehci-imx31.o |
12 | obj-$(CONFIG_SOC_IMX35) += mm-imx3.o cpu-imx35.o ehci-imx35.o pm-imx3.o | 12 | obj-$(CONFIG_SOC_IMX35) += mm-imx3.o cpu-imx35.o ehci-imx35.o |
13 | 13 | ||
14 | imx5-pm-$(CONFIG_PM) += pm-imx5.o | 14 | imx5-pm-$(CONFIG_PM) += pm-imx5.o |
15 | obj-$(CONFIG_SOC_IMX5) += cpu-imx5.o $(imx5-pm-y) | 15 | obj-$(CONFIG_SOC_IMX5) += cpu-imx5.o $(imx5-pm-y) |
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index 58a38464480d..a8f469333027 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h | |||
@@ -32,7 +32,6 @@ void imx27_init_early(void); | |||
32 | void imx31_init_early(void); | 32 | void imx31_init_early(void); |
33 | void imx35_init_early(void); | 33 | void imx35_init_early(void); |
34 | void mxc_init_irq(void __iomem *); | 34 | void mxc_init_irq(void __iomem *); |
35 | void tzic_init_irq(void); | ||
36 | void mx1_init_irq(void); | 35 | void mx1_init_irq(void); |
37 | void mx21_init_irq(void); | 36 | void mx21_init_irq(void); |
38 | void mx27_init_irq(void); | 37 | void mx27_init_irq(void); |
@@ -55,6 +54,7 @@ struct platform_device *mxc_register_gpio(char *name, int id, | |||
55 | void mxc_set_cpu_type(unsigned int type); | 54 | void mxc_set_cpu_type(unsigned int type); |
56 | void mxc_restart(enum reboot_mode, const char *); | 55 | void mxc_restart(enum reboot_mode, const char *); |
57 | void mxc_arch_reset_init(void __iomem *); | 56 | void mxc_arch_reset_init(void __iomem *); |
57 | void imx1_reset_init(void __iomem *); | ||
58 | void imx_set_aips(void __iomem *); | 58 | void imx_set_aips(void __iomem *); |
59 | void imx_aips_allow_unprivileged_access(const char *compat); | 59 | void imx_aips_allow_unprivileged_access(const char *compat); |
60 | int mxc_device_init(void); | 60 | int mxc_device_init(void); |
@@ -67,6 +67,7 @@ void imx_gpc_set_arm_power_in_lpm(bool power_off); | |||
67 | void imx_gpc_set_arm_power_up_timing(u32 sw2iso, u32 sw); | 67 | void imx_gpc_set_arm_power_up_timing(u32 sw2iso, u32 sw); |
68 | void imx_gpc_set_arm_power_down_timing(u32 sw2iso, u32 sw); | 68 | void imx_gpc_set_arm_power_down_timing(u32 sw2iso, u32 sw); |
69 | void imx25_pm_init(void); | 69 | void imx25_pm_init(void); |
70 | void imx27_pm_init(void); | ||
70 | 71 | ||
71 | enum mxc_cpu_pwr_mode { | 72 | enum mxc_cpu_pwr_mode { |
72 | WAIT_CLOCKED, /* wfi only */ | 73 | WAIT_CLOCKED, /* wfi only */ |
diff --git a/arch/arm/mach-imx/cpu-imx5.c b/arch/arm/mach-imx/cpu-imx5.c index 3403bac94a31..4f2d1c772f85 100644 --- a/arch/arm/mach-imx/cpu-imx5.c +++ b/arch/arm/mach-imx/cpu-imx5.c | |||
@@ -60,13 +60,9 @@ static int get_mx51_srev(void) | |||
60 | /* | 60 | /* |
61 | * Returns: | 61 | * Returns: |
62 | * the silicon revision of the cpu | 62 | * the silicon revision of the cpu |
63 | * -EINVAL - not a mx51 | ||
64 | */ | 63 | */ |
65 | int mx51_revision(void) | 64 | int mx51_revision(void) |
66 | { | 65 | { |
67 | if (!cpu_is_mx51()) | ||
68 | return -EINVAL; | ||
69 | |||
70 | if (mx5_cpu_rev == -1) | 66 | if (mx5_cpu_rev == -1) |
71 | mx5_cpu_rev = get_mx51_srev(); | 67 | mx5_cpu_rev = get_mx51_srev(); |
72 | 68 | ||
@@ -112,13 +108,9 @@ static int get_mx53_srev(void) | |||
112 | /* | 108 | /* |
113 | * Returns: | 109 | * Returns: |
114 | * the silicon revision of the cpu | 110 | * the silicon revision of the cpu |
115 | * -EINVAL - not a mx53 | ||
116 | */ | 111 | */ |
117 | int mx53_revision(void) | 112 | int mx53_revision(void) |
118 | { | 113 | { |
119 | if (!cpu_is_mx53()) | ||
120 | return -EINVAL; | ||
121 | |||
122 | if (mx5_cpu_rev == -1) | 114 | if (mx5_cpu_rev == -1) |
123 | mx5_cpu_rev = get_mx53_srev(); | 115 | mx5_cpu_rev = get_mx53_srev(); |
124 | 116 | ||
diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c index 6a96b7cf468f..b3347d32349f 100644 --- a/arch/arm/mach-imx/cpu.c +++ b/arch/arm/mach-imx/cpu.c | |||
@@ -10,8 +10,6 @@ | |||
10 | #include "common.h" | 10 | #include "common.h" |
11 | 11 | ||
12 | unsigned int __mxc_cpu_type; | 12 | unsigned int __mxc_cpu_type; |
13 | EXPORT_SYMBOL(__mxc_cpu_type); | ||
14 | |||
15 | static unsigned int imx_soc_revision; | 13 | static unsigned int imx_soc_revision; |
16 | 14 | ||
17 | void mxc_set_cpu_type(unsigned int type) | 15 | void mxc_set_cpu_type(unsigned int type) |
diff --git a/arch/arm/mach-imx/devices/Kconfig b/arch/arm/mach-imx/devices/Kconfig index 3a552989248e..6ffe57267233 100644 --- a/arch/arm/mach-imx/devices/Kconfig +++ b/arch/arm/mach-imx/devices/Kconfig | |||
@@ -57,10 +57,6 @@ config IMX_HAVE_PLATFORM_MXC_MMC | |||
57 | config IMX_HAVE_PLATFORM_MXC_NAND | 57 | config IMX_HAVE_PLATFORM_MXC_NAND |
58 | bool | 58 | bool |
59 | 59 | ||
60 | config IMX_HAVE_PLATFORM_MXC_RNGA | ||
61 | bool | ||
62 | select ARCH_HAS_RNGA | ||
63 | |||
64 | config IMX_HAVE_PLATFORM_MXC_RTC | 60 | config IMX_HAVE_PLATFORM_MXC_RTC |
65 | bool | 61 | bool |
66 | 62 | ||
diff --git a/arch/arm/mach-imx/devices/platform-mxc_rnga.c b/arch/arm/mach-imx/devices/platform-mxc_rnga.c deleted file mode 100644 index 851fbc8af7a9..000000000000 --- a/arch/arm/mach-imx/devices/platform-mxc_rnga.c +++ /dev/null | |||
@@ -1,53 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | struct imx_mxc_rnga_data { | ||
13 | resource_size_t iobase; | ||
14 | }; | ||
15 | |||
16 | #define imx_mxc_rnga_data_entry_single(soc) \ | ||
17 | { \ | ||
18 | .iobase = soc ## _RNGA_BASE_ADDR, \ | ||
19 | } | ||
20 | |||
21 | #ifdef CONFIG_SOC_IMX31 | ||
22 | static const struct imx_mxc_rnga_data imx31_mxc_rnga_data __initconst = | ||
23 | imx_mxc_rnga_data_entry_single(MX31); | ||
24 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
25 | |||
26 | static struct platform_device *__init imx_add_mxc_rnga( | ||
27 | const struct imx_mxc_rnga_data *data) | ||
28 | { | ||
29 | struct resource res[] = { | ||
30 | { | ||
31 | .start = data->iobase, | ||
32 | .end = data->iobase + SZ_16K - 1, | ||
33 | .flags = IORESOURCE_MEM, | ||
34 | }, | ||
35 | }; | ||
36 | return imx_add_platform_device("mxc_rnga", -1, | ||
37 | res, ARRAY_SIZE(res), NULL, 0); | ||
38 | } | ||
39 | |||
40 | static int __init imxXX_add_mxc_rnga(void) | ||
41 | { | ||
42 | struct platform_device *ret; | ||
43 | |||
44 | #if defined(CONFIG_SOC_IMX31) | ||
45 | if (cpu_is_mx31()) | ||
46 | ret = imx_add_mxc_rnga(&imx31_mxc_rnga_data); | ||
47 | else | ||
48 | #endif /* if defined(CONFIG_SOC_IMX31) */ | ||
49 | ret = ERR_PTR(-ENODEV); | ||
50 | |||
51 | return PTR_ERR_OR_ZERO(ret); | ||
52 | } | ||
53 | arch_initcall(imxXX_add_mxc_rnga); | ||
diff --git a/arch/arm/mach-imx/eukrea-baseboards.h b/arch/arm/mach-imx/eukrea-baseboards.h deleted file mode 100644 index bb2c90d65914..000000000000 --- a/arch/arm/mach-imx/eukrea-baseboards.h +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Eric Benard - eric@eukrea.com | ||
3 | * | ||
4 | * Based on board-pcm038.h which is : | ||
5 | * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de) | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or | ||
8 | * modify it under the terms of the GNU General Public License | ||
9 | * as published by the Free Software Foundation; either version 2 | ||
10 | * of the License, or (at your option) any later version. | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
19 | * MA 02110-1301, USA. | ||
20 | */ | ||
21 | |||
22 | #ifndef __MACH_EUKREA_BASEBOARDS_H__ | ||
23 | #define __MACH_EUKREA_BASEBOARDS_H__ | ||
24 | |||
25 | #ifndef __ASSEMBLY__ | ||
26 | /* | ||
27 | * This CPU module needs a baseboard to work. After basic initializing | ||
28 | * its own devices, it calls baseboard's init function. | ||
29 | * TODO: Add your own baseboard init function and call it from | ||
30 | * inside eukrea_cpuimx25_init() or eukrea_cpuimx35_init() | ||
31 | * | ||
32 | * This example here is for the development board. Refer | ||
33 | * mach-mx25/eukrea_mbimxsd-baseboard.c for cpuimx25 | ||
34 | * mach-mx3/eukrea_mbimxsd-baseboard.c for cpuimx35 | ||
35 | */ | ||
36 | |||
37 | extern void eukrea_mbimxsd25_baseboard_init(void); | ||
38 | extern void eukrea_mbimxsd35_baseboard_init(void); | ||
39 | |||
40 | #endif | ||
41 | |||
42 | #endif /* __MACH_EUKREA_BASEBOARDS_H__ */ | ||
diff --git a/arch/arm/mach-imx/imx27-dt.c b/arch/arm/mach-imx/imx27-dt.c index 530a728c2acc..a754b8a48f38 100644 --- a/arch/arm/mach-imx/imx27-dt.c +++ b/arch/arm/mach-imx/imx27-dt.c | |||
@@ -27,5 +27,6 @@ DT_MACHINE_START(IMX27_DT, "Freescale i.MX27 (Device Tree Support)") | |||
27 | .map_io = mx27_map_io, | 27 | .map_io = mx27_map_io, |
28 | .init_early = imx27_init_early, | 28 | .init_early = imx27_init_early, |
29 | .init_irq = mx27_init_irq, | 29 | .init_irq = mx27_init_irq, |
30 | .init_late = imx27_pm_init, | ||
30 | .dt_compat = imx27_dt_board_compat, | 31 | .dt_compat = imx27_dt_board_compat, |
31 | MACHINE_END | 32 | MACHINE_END |
diff --git a/arch/arm/mach-imx/imx31-dt.c b/arch/arm/mach-imx/imx31-dt.c index 32100222a017..62e6b4fb5370 100644 --- a/arch/arm/mach-imx/imx31-dt.c +++ b/arch/arm/mach-imx/imx31-dt.c | |||
@@ -28,10 +28,22 @@ static void __init imx31_dt_timer_init(void) | |||
28 | mx31_clocks_init_dt(); | 28 | mx31_clocks_init_dt(); |
29 | } | 29 | } |
30 | 30 | ||
31 | /* FIXME: replace with DT binding */ | ||
32 | static const struct resource imx31_rnga_res[] __initconst = { | ||
33 | DEFINE_RES_MEM(MX31_RNGA_BASE_ADDR, SZ_16K), | ||
34 | }; | ||
35 | |||
36 | static void __init imx31_dt_mach_init(void) | ||
37 | { | ||
38 | platform_device_register_simple("mxc_rnga", -1, imx31_rnga_res, | ||
39 | ARRAY_SIZE(imx31_rnga_res)); | ||
40 | } | ||
41 | |||
31 | DT_MACHINE_START(IMX31_DT, "Freescale i.MX31 (Device Tree Support)") | 42 | DT_MACHINE_START(IMX31_DT, "Freescale i.MX31 (Device Tree Support)") |
32 | .map_io = mx31_map_io, | 43 | .map_io = mx31_map_io, |
33 | .init_early = imx31_init_early, | 44 | .init_early = imx31_init_early, |
34 | .init_irq = mx31_init_irq, | 45 | .init_irq = mx31_init_irq, |
35 | .init_time = imx31_dt_timer_init, | 46 | .init_time = imx31_dt_timer_init, |
47 | .init_machine = imx31_dt_mach_init, | ||
36 | .dt_compat = imx31_dt_board_compat, | 48 | .dt_compat = imx31_dt_board_compat, |
37 | MACHINE_END | 49 | MACHINE_END |
diff --git a/arch/arm/mach-imx/imx35-dt.c b/arch/arm/mach-imx/imx35-dt.c index e9396037235d..99bb63dedb87 100644 --- a/arch/arm/mach-imx/imx35-dt.c +++ b/arch/arm/mach-imx/imx35-dt.c | |||
@@ -20,20 +20,16 @@ | |||
20 | #include "common.h" | 20 | #include "common.h" |
21 | #include "mx35.h" | 21 | #include "mx35.h" |
22 | 22 | ||
23 | static void __init imx35_irq_init(void) | ||
24 | { | ||
25 | imx_init_l2cache(); | ||
26 | mx35_init_irq(); | ||
27 | } | ||
28 | |||
29 | static const char * const imx35_dt_board_compat[] __initconst = { | 23 | static const char * const imx35_dt_board_compat[] __initconst = { |
30 | "fsl,imx35", | 24 | "fsl,imx35", |
31 | NULL | 25 | NULL |
32 | }; | 26 | }; |
33 | 27 | ||
34 | DT_MACHINE_START(IMX35_DT, "Freescale i.MX35 (Device Tree Support)") | 28 | DT_MACHINE_START(IMX35_DT, "Freescale i.MX35 (Device Tree Support)") |
29 | .l2c_aux_val = 0, | ||
30 | .l2c_aux_mask = ~0, | ||
35 | .map_io = mx35_map_io, | 31 | .map_io = mx35_map_io, |
36 | .init_early = imx35_init_early, | 32 | .init_early = imx35_init_early, |
37 | .init_irq = imx35_irq_init, | 33 | .init_irq = mx35_init_irq, |
38 | .dt_compat = imx35_dt_board_compat, | 34 | .dt_compat = imx35_dt_board_compat, |
39 | MACHINE_END | 35 | MACHINE_END |
diff --git a/arch/arm/mach-imx/mach-imx50.c b/arch/arm/mach-imx/mach-imx50.c index ecf58b9e974b..4cab5f61260f 100644 --- a/arch/arm/mach-imx/mach-imx50.c +++ b/arch/arm/mach-imx/mach-imx50.c | |||
@@ -22,6 +22,5 @@ static const char * const imx50_dt_board_compat[] __initconst = { | |||
22 | }; | 22 | }; |
23 | 23 | ||
24 | DT_MACHINE_START(IMX50_DT, "Freescale i.MX50 (Device Tree Support)") | 24 | DT_MACHINE_START(IMX50_DT, "Freescale i.MX50 (Device Tree Support)") |
25 | .init_irq = tzic_init_irq, | ||
26 | .dt_compat = imx50_dt_board_compat, | 25 | .dt_compat = imx50_dt_board_compat, |
27 | MACHINE_END | 26 | MACHINE_END |
diff --git a/arch/arm/mach-imx/mach-imx51.c b/arch/arm/mach-imx/mach-imx51.c index ec64de611d90..40564c9b1226 100644 --- a/arch/arm/mach-imx/mach-imx51.c +++ b/arch/arm/mach-imx/mach-imx51.c | |||
@@ -67,7 +67,6 @@ static const char * const imx51_dt_board_compat[] __initconst = { | |||
67 | 67 | ||
68 | DT_MACHINE_START(IMX51_DT, "Freescale i.MX51 (Device Tree Support)") | 68 | DT_MACHINE_START(IMX51_DT, "Freescale i.MX51 (Device Tree Support)") |
69 | .init_early = imx51_init_early, | 69 | .init_early = imx51_init_early, |
70 | .init_irq = tzic_init_irq, | ||
71 | .init_machine = imx51_dt_init, | 70 | .init_machine = imx51_dt_init, |
72 | .init_late = imx51_init_late, | 71 | .init_late = imx51_init_late, |
73 | .dt_compat = imx51_dt_board_compat, | 72 | .dt_compat = imx51_dt_board_compat, |
diff --git a/arch/arm/mach-imx/mach-imx53.c b/arch/arm/mach-imx/mach-imx53.c index 68aec23be016..07c2e8dca494 100644 --- a/arch/arm/mach-imx/mach-imx53.c +++ b/arch/arm/mach-imx/mach-imx53.c | |||
@@ -47,7 +47,6 @@ static const char * const imx53_dt_board_compat[] __initconst = { | |||
47 | 47 | ||
48 | DT_MACHINE_START(IMX53_DT, "Freescale i.MX53 (Device Tree Support)") | 48 | DT_MACHINE_START(IMX53_DT, "Freescale i.MX53 (Device Tree Support)") |
49 | .init_early = imx53_init_early, | 49 | .init_early = imx53_init_early, |
50 | .init_irq = tzic_init_irq, | ||
51 | .init_machine = imx53_dt_init, | 50 | .init_machine = imx53_dt_init, |
52 | .init_late = imx53_init_late, | 51 | .init_late = imx53_init_late, |
53 | .dt_compat = imx53_dt_board_compat, | 52 | .dt_compat = imx53_dt_board_compat, |
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index e3940707eeb8..68c16d59b808 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c | |||
@@ -407,6 +407,8 @@ static const char * const imx6q_dt_compat[] __initconst = { | |||
407 | }; | 407 | }; |
408 | 408 | ||
409 | DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad/DualLite (Device Tree)") | 409 | DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad/DualLite (Device Tree)") |
410 | .l2c_aux_val = 0, | ||
411 | .l2c_aux_mask = ~0, | ||
410 | .smp = smp_ops(imx_smp_ops), | 412 | .smp = smp_ops(imx_smp_ops), |
411 | .map_io = imx6q_map_io, | 413 | .map_io = imx6q_map_io, |
412 | .init_irq = imx6q_init_irq, | 414 | .init_irq = imx6q_init_irq, |
diff --git a/arch/arm/mach-imx/mach-imx6sl.c b/arch/arm/mach-imx/mach-imx6sl.c index 37ae87d6e0e9..04084900d810 100644 --- a/arch/arm/mach-imx/mach-imx6sl.c +++ b/arch/arm/mach-imx/mach-imx6sl.c | |||
@@ -75,6 +75,8 @@ static const char * const imx6sl_dt_compat[] __initconst = { | |||
75 | }; | 75 | }; |
76 | 76 | ||
77 | DT_MACHINE_START(IMX6SL, "Freescale i.MX6 SoloLite (Device Tree)") | 77 | DT_MACHINE_START(IMX6SL, "Freescale i.MX6 SoloLite (Device Tree)") |
78 | .l2c_aux_val = 0, | ||
79 | .l2c_aux_mask = ~0, | ||
78 | .init_irq = imx6sl_init_irq, | 80 | .init_irq = imx6sl_init_irq, |
79 | .init_machine = imx6sl_init_machine, | 81 | .init_machine = imx6sl_init_machine, |
80 | .init_late = imx6sl_init_late, | 82 | .init_late = imx6sl_init_late, |
diff --git a/arch/arm/mach-imx/mach-imx6sx.c b/arch/arm/mach-imx/mach-imx6sx.c index 107cfc15282b..7f52d9b1e8a4 100644 --- a/arch/arm/mach-imx/mach-imx6sx.c +++ b/arch/arm/mach-imx/mach-imx6sx.c | |||
@@ -103,6 +103,8 @@ static const char * const imx6sx_dt_compat[] __initconst = { | |||
103 | }; | 103 | }; |
104 | 104 | ||
105 | DT_MACHINE_START(IMX6SX, "Freescale i.MX6 SoloX (Device Tree)") | 105 | DT_MACHINE_START(IMX6SX, "Freescale i.MX6 SoloX (Device Tree)") |
106 | .l2c_aux_val = 0, | ||
107 | .l2c_aux_mask = ~0, | ||
106 | .init_irq = imx6sx_init_irq, | 108 | .init_irq = imx6sx_init_irq, |
107 | .init_machine = imx6sx_init_machine, | 109 | .init_machine = imx6sx_init_machine, |
108 | .dt_compat = imx6sx_dt_compat, | 110 | .dt_compat = imx6sx_dt_compat, |
diff --git a/arch/arm/mach-imx/mm-imx1.c b/arch/arm/mach-imx/mm-imx1.c index e065fedb3ad4..9a42f19be81e 100644 --- a/arch/arm/mach-imx/mm-imx1.c +++ b/arch/arm/mach-imx/mm-imx1.c | |||
@@ -50,7 +50,7 @@ void __init mx1_init_irq(void) | |||
50 | 50 | ||
51 | void __init imx1_soc_init(void) | 51 | void __init imx1_soc_init(void) |
52 | { | 52 | { |
53 | mxc_arch_reset_init(MX1_IO_ADDRESS(MX1_WDT_BASE_ADDR)); | 53 | imx1_reset_init(MX1_IO_ADDRESS(MX1_WDT_BASE_ADDR)); |
54 | mxc_device_init(); | 54 | mxc_device_init(); |
55 | 55 | ||
56 | mxc_register_gpio("imx1-gpio", 0, MX1_GPIO1_BASE_ADDR, SZ_256, | 56 | mxc_register_gpio("imx1-gpio", 0, MX1_GPIO1_BASE_ADDR, SZ_256, |
diff --git a/arch/arm/mach-imx/mm-imx27.c b/arch/arm/mach-imx/mm-imx27.c index 7d82a5a5b16b..862b9b7762c7 100644 --- a/arch/arm/mach-imx/mm-imx27.c +++ b/arch/arm/mach-imx/mm-imx27.c | |||
@@ -98,4 +98,6 @@ void __init imx27_soc_init(void) | |||
98 | /* imx27 has the imx21 type audmux */ | 98 | /* imx27 has the imx21 type audmux */ |
99 | platform_device_register_simple("imx21-audmux", 0, imx27_audmux_res, | 99 | platform_device_register_simple("imx21-audmux", 0, imx27_audmux_res, |
100 | ARRAY_SIZE(imx27_audmux_res)); | 100 | ARRAY_SIZE(imx27_audmux_res)); |
101 | |||
102 | imx27_pm_init(); | ||
101 | } | 103 | } |
diff --git a/arch/arm/mach-imx/mm-imx3.c b/arch/arm/mach-imx/mm-imx3.c index 0884ca90d15a..7638a35b3b36 100644 --- a/arch/arm/mach-imx/mm-imx3.c +++ b/arch/arm/mach-imx/mm-imx3.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/err.h> | 21 | #include <linux/err.h> |
22 | #include <linux/io.h> | ||
22 | #include <linux/pinctrl/machine.h> | 23 | #include <linux/pinctrl/machine.h> |
23 | 24 | ||
24 | #include <asm/pgtable.h> | 25 | #include <asm/pgtable.h> |
@@ -38,8 +39,6 @@ static void imx3_idle(void) | |||
38 | { | 39 | { |
39 | unsigned long reg = 0; | 40 | unsigned long reg = 0; |
40 | 41 | ||
41 | mx3_cpu_lp_set(MX3_WAIT); | ||
42 | |||
43 | __asm__ __volatile__( | 42 | __asm__ __volatile__( |
44 | /* disable I and D cache */ | 43 | /* disable I and D cache */ |
45 | "mrc p15, 0, %0, c1, c0, 0\n" | 44 | "mrc p15, 0, %0, c1, c0, 0\n" |
@@ -135,11 +134,20 @@ void __init mx31_map_io(void) | |||
135 | iotable_init(mx31_io_desc, ARRAY_SIZE(mx31_io_desc)); | 134 | iotable_init(mx31_io_desc, ARRAY_SIZE(mx31_io_desc)); |
136 | } | 135 | } |
137 | 136 | ||
137 | static void imx31_idle(void) | ||
138 | { | ||
139 | int reg = imx_readl(mx3_ccm_base + MXC_CCM_CCMR); | ||
140 | reg &= ~MXC_CCM_CCMR_LPM_MASK; | ||
141 | imx_writel(reg, mx3_ccm_base + MXC_CCM_CCMR); | ||
142 | |||
143 | imx3_idle(); | ||
144 | } | ||
145 | |||
138 | void __init imx31_init_early(void) | 146 | void __init imx31_init_early(void) |
139 | { | 147 | { |
140 | mxc_set_cpu_type(MXC_CPU_MX31); | 148 | mxc_set_cpu_type(MXC_CPU_MX31); |
141 | arch_ioremap_caller = imx3_ioremap_caller; | 149 | arch_ioremap_caller = imx3_ioremap_caller; |
142 | arm_pm_idle = imx3_idle; | 150 | arm_pm_idle = imx31_idle; |
143 | mx3_ccm_base = MX31_IO_ADDRESS(MX31_CCM_BASE_ADDR); | 151 | mx3_ccm_base = MX31_IO_ADDRESS(MX31_CCM_BASE_ADDR); |
144 | } | 152 | } |
145 | 153 | ||
@@ -167,6 +175,10 @@ static const struct resource imx31_audmux_res[] __initconst = { | |||
167 | DEFINE_RES_MEM(MX31_AUDMUX_BASE_ADDR, SZ_16K), | 175 | DEFINE_RES_MEM(MX31_AUDMUX_BASE_ADDR, SZ_16K), |
168 | }; | 176 | }; |
169 | 177 | ||
178 | static const struct resource imx31_rnga_res[] __initconst = { | ||
179 | DEFINE_RES_MEM(MX31_RNGA_BASE_ADDR, SZ_16K), | ||
180 | }; | ||
181 | |||
170 | void __init imx31_soc_init(void) | 182 | void __init imx31_soc_init(void) |
171 | { | 183 | { |
172 | int to_version = mx31_revision() >> 4; | 184 | int to_version = mx31_revision() >> 4; |
@@ -195,6 +207,8 @@ void __init imx31_soc_init(void) | |||
195 | 207 | ||
196 | platform_device_register_simple("imx31-audmux", 0, imx31_audmux_res, | 208 | platform_device_register_simple("imx31-audmux", 0, imx31_audmux_res, |
197 | ARRAY_SIZE(imx31_audmux_res)); | 209 | ARRAY_SIZE(imx31_audmux_res)); |
210 | platform_device_register_simple("mxc_rnga", -1, imx31_rnga_res, | ||
211 | ARRAY_SIZE(imx31_rnga_res)); | ||
198 | } | 212 | } |
199 | #endif /* ifdef CONFIG_SOC_IMX31 */ | 213 | #endif /* ifdef CONFIG_SOC_IMX31 */ |
200 | 214 | ||
@@ -212,11 +226,21 @@ void __init mx35_map_io(void) | |||
212 | iotable_init(mx35_io_desc, ARRAY_SIZE(mx35_io_desc)); | 226 | iotable_init(mx35_io_desc, ARRAY_SIZE(mx35_io_desc)); |
213 | } | 227 | } |
214 | 228 | ||
229 | static void imx35_idle(void) | ||
230 | { | ||
231 | int reg = imx_readl(mx3_ccm_base + MXC_CCM_CCMR); | ||
232 | reg &= ~MXC_CCM_CCMR_LPM_MASK; | ||
233 | reg |= MXC_CCM_CCMR_LPM_WAIT_MX35; | ||
234 | imx_writel(reg, mx3_ccm_base + MXC_CCM_CCMR); | ||
235 | |||
236 | imx3_idle(); | ||
237 | } | ||
238 | |||
215 | void __init imx35_init_early(void) | 239 | void __init imx35_init_early(void) |
216 | { | 240 | { |
217 | mxc_set_cpu_type(MXC_CPU_MX35); | 241 | mxc_set_cpu_type(MXC_CPU_MX35); |
218 | mxc_iomux_v3_init(MX35_IO_ADDRESS(MX35_IOMUXC_BASE_ADDR)); | 242 | mxc_iomux_v3_init(MX35_IO_ADDRESS(MX35_IOMUXC_BASE_ADDR)); |
219 | arm_pm_idle = imx3_idle; | 243 | arm_pm_idle = imx35_idle; |
220 | arch_ioremap_caller = imx3_ioremap_caller; | 244 | arch_ioremap_caller = imx3_ioremap_caller; |
221 | mx3_ccm_base = MX35_IO_ADDRESS(MX35_CCM_BASE_ADDR); | 245 | mx3_ccm_base = MX35_IO_ADDRESS(MX35_CCM_BASE_ADDR); |
222 | } | 246 | } |
diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h index d32704256781..34f2ff62583c 100644 --- a/arch/arm/mach-imx/mxc.h +++ b/arch/arm/mach-imx/mxc.h | |||
@@ -45,105 +45,7 @@ | |||
45 | 45 | ||
46 | #ifndef __ASSEMBLY__ | 46 | #ifndef __ASSEMBLY__ |
47 | extern unsigned int __mxc_cpu_type; | 47 | extern unsigned int __mxc_cpu_type; |
48 | #endif | ||
49 | |||
50 | #ifdef CONFIG_SOC_IMX1 | ||
51 | # ifdef mxc_cpu_type | ||
52 | # undef mxc_cpu_type | ||
53 | # define mxc_cpu_type __mxc_cpu_type | ||
54 | # else | ||
55 | # define mxc_cpu_type MXC_CPU_MX1 | ||
56 | # endif | ||
57 | # define cpu_is_mx1() (mxc_cpu_type == MXC_CPU_MX1) | ||
58 | #else | ||
59 | # define cpu_is_mx1() (0) | ||
60 | #endif | ||
61 | |||
62 | #ifdef CONFIG_SOC_IMX21 | ||
63 | # ifdef mxc_cpu_type | ||
64 | # undef mxc_cpu_type | ||
65 | # define mxc_cpu_type __mxc_cpu_type | ||
66 | # else | ||
67 | # define mxc_cpu_type MXC_CPU_MX21 | ||
68 | # endif | ||
69 | # define cpu_is_mx21() (mxc_cpu_type == MXC_CPU_MX21) | ||
70 | #else | ||
71 | # define cpu_is_mx21() (0) | ||
72 | #endif | ||
73 | 48 | ||
74 | #ifdef CONFIG_SOC_IMX25 | ||
75 | # ifdef mxc_cpu_type | ||
76 | # undef mxc_cpu_type | ||
77 | # define mxc_cpu_type __mxc_cpu_type | ||
78 | # else | ||
79 | # define mxc_cpu_type MXC_CPU_MX25 | ||
80 | # endif | ||
81 | # define cpu_is_mx25() (mxc_cpu_type == MXC_CPU_MX25) | ||
82 | #else | ||
83 | # define cpu_is_mx25() (0) | ||
84 | #endif | ||
85 | |||
86 | #ifdef CONFIG_SOC_IMX27 | ||
87 | # ifdef mxc_cpu_type | ||
88 | # undef mxc_cpu_type | ||
89 | # define mxc_cpu_type __mxc_cpu_type | ||
90 | # else | ||
91 | # define mxc_cpu_type MXC_CPU_MX27 | ||
92 | # endif | ||
93 | # define cpu_is_mx27() (mxc_cpu_type == MXC_CPU_MX27) | ||
94 | #else | ||
95 | # define cpu_is_mx27() (0) | ||
96 | #endif | ||
97 | |||
98 | #ifdef CONFIG_SOC_IMX31 | ||
99 | # ifdef mxc_cpu_type | ||
100 | # undef mxc_cpu_type | ||
101 | # define mxc_cpu_type __mxc_cpu_type | ||
102 | # else | ||
103 | # define mxc_cpu_type MXC_CPU_MX31 | ||
104 | # endif | ||
105 | # define cpu_is_mx31() (mxc_cpu_type == MXC_CPU_MX31) | ||
106 | #else | ||
107 | # define cpu_is_mx31() (0) | ||
108 | #endif | ||
109 | |||
110 | #ifdef CONFIG_SOC_IMX35 | ||
111 | # ifdef mxc_cpu_type | ||
112 | # undef mxc_cpu_type | ||
113 | # define mxc_cpu_type __mxc_cpu_type | ||
114 | # else | ||
115 | # define mxc_cpu_type MXC_CPU_MX35 | ||
116 | # endif | ||
117 | # define cpu_is_mx35() (mxc_cpu_type == MXC_CPU_MX35) | ||
118 | #else | ||
119 | # define cpu_is_mx35() (0) | ||
120 | #endif | ||
121 | |||
122 | #ifdef CONFIG_SOC_IMX51 | ||
123 | # ifdef mxc_cpu_type | ||
124 | # undef mxc_cpu_type | ||
125 | # define mxc_cpu_type __mxc_cpu_type | ||
126 | # else | ||
127 | # define mxc_cpu_type MXC_CPU_MX51 | ||
128 | # endif | ||
129 | # define cpu_is_mx51() (mxc_cpu_type == MXC_CPU_MX51) | ||
130 | #else | ||
131 | # define cpu_is_mx51() (0) | ||
132 | #endif | ||
133 | |||
134 | #ifdef CONFIG_SOC_IMX53 | ||
135 | # ifdef mxc_cpu_type | ||
136 | # undef mxc_cpu_type | ||
137 | # define mxc_cpu_type __mxc_cpu_type | ||
138 | # else | ||
139 | # define mxc_cpu_type MXC_CPU_MX53 | ||
140 | # endif | ||
141 | # define cpu_is_mx53() (mxc_cpu_type == MXC_CPU_MX53) | ||
142 | #else | ||
143 | # define cpu_is_mx53() (0) | ||
144 | #endif | ||
145 | |||
146 | #ifndef __ASSEMBLY__ | ||
147 | #ifdef CONFIG_SOC_IMX6SL | 49 | #ifdef CONFIG_SOC_IMX6SL |
148 | static inline bool cpu_is_imx6sl(void) | 50 | static inline bool cpu_is_imx6sl(void) |
149 | { | 51 | { |
@@ -190,9 +92,6 @@ int tzic_enable_wake(void); | |||
190 | extern struct cpu_op *(*get_cpu_op)(int *op); | 92 | extern struct cpu_op *(*get_cpu_op)(int *op); |
191 | #endif | 93 | #endif |
192 | 94 | ||
193 | #define cpu_is_mx3() (cpu_is_mx31() || cpu_is_mx35()) | ||
194 | #define cpu_is_mx2() (cpu_is_mx21() || cpu_is_mx27()) | ||
195 | |||
196 | #define imx_readl readl_relaxed | 95 | #define imx_readl readl_relaxed |
197 | #define imx_readw readw_relaxed | 96 | #define imx_readw readw_relaxed |
198 | #define imx_writel writel_relaxed | 97 | #define imx_writel writel_relaxed |
diff --git a/arch/arm/mach-imx/pm-imx27.c b/arch/arm/mach-imx/pm-imx27.c index 43096c8990d4..d943535566c8 100644 --- a/arch/arm/mach-imx/pm-imx27.c +++ b/arch/arm/mach-imx/pm-imx27.c | |||
@@ -37,13 +37,7 @@ static const struct platform_suspend_ops mx27_suspend_ops = { | |||
37 | .valid = suspend_valid_only_mem, | 37 | .valid = suspend_valid_only_mem, |
38 | }; | 38 | }; |
39 | 39 | ||
40 | static int __init mx27_pm_init(void) | 40 | void __init imx27_pm_init(void) |
41 | { | 41 | { |
42 | if (!cpu_is_mx27()) | ||
43 | return 0; | ||
44 | |||
45 | suspend_set_ops(&mx27_suspend_ops); | 42 | suspend_set_ops(&mx27_suspend_ops); |
46 | return 0; | ||
47 | } | 43 | } |
48 | |||
49 | device_initcall(mx27_pm_init); | ||
diff --git a/arch/arm/mach-imx/pm-imx3.c b/arch/arm/mach-imx/pm-imx3.c deleted file mode 100644 index 94c0898751d8..000000000000 --- a/arch/arm/mach-imx/pm-imx3.c +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | */ | ||
11 | #include <linux/io.h> | ||
12 | |||
13 | #include "common.h" | ||
14 | #include "crmregs-imx3.h" | ||
15 | #include "devices/devices-common.h" | ||
16 | #include "hardware.h" | ||
17 | |||
18 | /* | ||
19 | * Set cpu low power mode before WFI instruction. This function is called | ||
20 | * mx3 because it can be used for mx31 and mx35. | ||
21 | * Currently only WAIT_MODE is supported. | ||
22 | */ | ||
23 | void mx3_cpu_lp_set(enum mx3_cpu_pwr_mode mode) | ||
24 | { | ||
25 | int reg = imx_readl(mx3_ccm_base + MXC_CCM_CCMR); | ||
26 | reg &= ~MXC_CCM_CCMR_LPM_MASK; | ||
27 | |||
28 | switch (mode) { | ||
29 | case MX3_WAIT: | ||
30 | if (cpu_is_mx35()) | ||
31 | reg |= MXC_CCM_CCMR_LPM_WAIT_MX35; | ||
32 | imx_writel(reg, mx3_ccm_base + MXC_CCM_CCMR); | ||
33 | break; | ||
34 | default: | ||
35 | pr_err("Unknown cpu power mode: %d\n", mode); | ||
36 | return; | ||
37 | } | ||
38 | } | ||
diff --git a/arch/arm/mach-imx/system.c b/arch/arm/mach-imx/system.c index 105d1ce4ed9d..c06af650e6b1 100644 --- a/arch/arm/mach-imx/system.c +++ b/arch/arm/mach-imx/system.c | |||
@@ -34,25 +34,19 @@ | |||
34 | 34 | ||
35 | static void __iomem *wdog_base; | 35 | static void __iomem *wdog_base; |
36 | static struct clk *wdog_clk; | 36 | static struct clk *wdog_clk; |
37 | static int wcr_enable = (1 << 2); | ||
37 | 38 | ||
38 | /* | 39 | /* |
39 | * Reset the system. It is called by machine_restart(). | 40 | * Reset the system. It is called by machine_restart(). |
40 | */ | 41 | */ |
41 | void mxc_restart(enum reboot_mode mode, const char *cmd) | 42 | void mxc_restart(enum reboot_mode mode, const char *cmd) |
42 | { | 43 | { |
43 | unsigned int wcr_enable; | ||
44 | |||
45 | if (!wdog_base) | 44 | if (!wdog_base) |
46 | goto reset_fallback; | 45 | goto reset_fallback; |
47 | 46 | ||
48 | if (!IS_ERR(wdog_clk)) | 47 | if (!IS_ERR(wdog_clk)) |
49 | clk_enable(wdog_clk); | 48 | clk_enable(wdog_clk); |
50 | 49 | ||
51 | if (cpu_is_mx1()) | ||
52 | wcr_enable = (1 << 0); | ||
53 | else | ||
54 | wcr_enable = (1 << 2); | ||
55 | |||
56 | /* Assert SRS signal */ | 50 | /* Assert SRS signal */ |
57 | imx_writew(wcr_enable, wdog_base); | 51 | imx_writew(wcr_enable, wdog_base); |
58 | /* | 52 | /* |
@@ -89,6 +83,14 @@ void __init mxc_arch_reset_init(void __iomem *base) | |||
89 | clk_prepare(wdog_clk); | 83 | clk_prepare(wdog_clk); |
90 | } | 84 | } |
91 | 85 | ||
86 | #ifdef CONFIG_SOC_IMX1 | ||
87 | void __init imx1_reset_init(void __iomem *base) | ||
88 | { | ||
89 | wcr_enable = (1 << 0); | ||
90 | mxc_arch_reset_init(base); | ||
91 | } | ||
92 | #endif | ||
93 | |||
92 | #ifdef CONFIG_CACHE_L2X0 | 94 | #ifdef CONFIG_CACHE_L2X0 |
93 | void __init imx_init_l2cache(void) | 95 | void __init imx_init_l2cache(void) |
94 | { | 96 | { |
@@ -98,38 +100,28 @@ void __init imx_init_l2cache(void) | |||
98 | 100 | ||
99 | np = of_find_compatible_node(NULL, NULL, "arm,pl310-cache"); | 101 | np = of_find_compatible_node(NULL, NULL, "arm,pl310-cache"); |
100 | if (!np) | 102 | if (!np) |
101 | goto out; | 103 | return; |
102 | 104 | ||
103 | l2x0_base = of_iomap(np, 0); | 105 | l2x0_base = of_iomap(np, 0); |
104 | if (!l2x0_base) { | 106 | if (!l2x0_base) |
105 | of_node_put(np); | 107 | goto put_node; |
106 | goto out; | ||
107 | } | ||
108 | 108 | ||
109 | if (readl_relaxed(l2x0_base + L2X0_CTRL) & L2X0_CTRL_EN) | 109 | if (!(readl_relaxed(l2x0_base + L2X0_CTRL) & L2X0_CTRL_EN)) { |
110 | goto skip_if_enabled; | 110 | /* Configure the L2 PREFETCH and POWER registers */ |
111 | val = readl_relaxed(l2x0_base + L310_PREFETCH_CTRL); | ||
112 | val |= L310_PREFETCH_CTRL_DBL_LINEFILL | | ||
113 | L310_PREFETCH_CTRL_INSTR_PREFETCH | | ||
114 | L310_PREFETCH_CTRL_DATA_PREFETCH; | ||
111 | 115 | ||
112 | /* Configure the L2 PREFETCH and POWER registers */ | 116 | /* Set perfetch offset to improve performance */ |
113 | val = readl_relaxed(l2x0_base + L310_PREFETCH_CTRL); | 117 | val &= ~L310_PREFETCH_CTRL_OFFSET_MASK; |
114 | val |= 0x70800000; | 118 | val |= 15; |
115 | /* | 119 | |
116 | * The L2 cache controller(PL310) version on the i.MX6D/Q is r3p1-50rel0 | 120 | writel_relaxed(val, l2x0_base + L310_PREFETCH_CTRL); |
117 | * The L2 cache controller(PL310) version on the i.MX6DL/SOLO/SL is r3p2 | 121 | } |
118 | * But according to ARM PL310 errata: 752271 | ||
119 | * ID: 752271: Double linefill feature can cause data corruption | ||
120 | * Fault Status: Present in: r3p0, r3p1, r3p1-50rel0. Fixed in r3p2 | ||
121 | * Workaround: The only workaround to this erratum is to disable the | ||
122 | * double linefill feature. This is the default behavior. | ||
123 | */ | ||
124 | if (cpu_is_imx6q()) | ||
125 | val &= ~(1 << 30 | 1 << 23); | ||
126 | writel_relaxed(val, l2x0_base + L310_PREFETCH_CTRL); | ||
127 | 122 | ||
128 | skip_if_enabled: | ||
129 | iounmap(l2x0_base); | 123 | iounmap(l2x0_base); |
124 | put_node: | ||
130 | of_node_put(np); | 125 | of_node_put(np); |
131 | |||
132 | out: | ||
133 | l2x0_of_init(0, ~0); | ||
134 | } | 126 | } |
135 | #endif | 127 | #endif |
diff --git a/arch/arm/mach-imx/tzic.c b/arch/arm/mach-imx/tzic.c index ae23d50f7861..a53fdc263a37 100644 --- a/arch/arm/mach-imx/tzic.c +++ b/arch/arm/mach-imx/tzic.c | |||
@@ -9,12 +9,11 @@ | |||
9 | * http://www.gnu.org/copyleft/gpl.html | 9 | * http://www.gnu.org/copyleft/gpl.html |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/module.h> | ||
13 | #include <linux/moduleparam.h> | ||
14 | #include <linux/init.h> | 12 | #include <linux/init.h> |
15 | #include <linux/device.h> | 13 | #include <linux/device.h> |
16 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
17 | #include <linux/io.h> | 15 | #include <linux/io.h> |
16 | #include <linux/irqchip.h> | ||
18 | #include <linux/irqdomain.h> | 17 | #include <linux/irqdomain.h> |
19 | #include <linux/of.h> | 18 | #include <linux/of.h> |
20 | #include <linux/of_address.h> | 19 | #include <linux/of_address.h> |
@@ -153,13 +152,11 @@ static void __exception_irq_entry tzic_handle_irq(struct pt_regs *regs) | |||
153 | * interrupts. It registers the interrupt enable and disable functions | 152 | * interrupts. It registers the interrupt enable and disable functions |
154 | * to the kernel for each interrupt source. | 153 | * to the kernel for each interrupt source. |
155 | */ | 154 | */ |
156 | void __init tzic_init_irq(void) | 155 | static int __init tzic_init_dt(struct device_node *np, struct device_node *p) |
157 | { | 156 | { |
158 | struct device_node *np; | ||
159 | int irq_base; | 157 | int irq_base; |
160 | int i; | 158 | int i; |
161 | 159 | ||
162 | np = of_find_compatible_node(NULL, NULL, "fsl,tzic"); | ||
163 | tzic_base = of_iomap(np, 0); | 160 | tzic_base = of_iomap(np, 0); |
164 | WARN_ON(!tzic_base); | 161 | WARN_ON(!tzic_base); |
165 | 162 | ||
@@ -199,7 +196,10 @@ void __init tzic_init_irq(void) | |||
199 | #endif | 196 | #endif |
200 | 197 | ||
201 | pr_info("TrustZone Interrupt Controller (TZIC) initialized\n"); | 198 | pr_info("TrustZone Interrupt Controller (TZIC) initialized\n"); |
199 | |||
200 | return 0; | ||
202 | } | 201 | } |
202 | IRQCHIP_DECLARE(tzic, "fsl,tzic", tzic_init_dt); | ||
203 | 203 | ||
204 | /** | 204 | /** |
205 | * tzic_enable_wake() - enable wakeup interrupt | 205 | * tzic_enable_wake() - enable wakeup interrupt |
diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig index 291262e5aeaf..599f973e10d8 100644 --- a/arch/arm/mach-integrator/Kconfig +++ b/arch/arm/mach-integrator/Kconfig | |||
@@ -32,9 +32,9 @@ config ARCH_INTEGRATOR_AP | |||
32 | config INTEGRATOR_IMPD1 | 32 | config INTEGRATOR_IMPD1 |
33 | bool "Include support for Integrator/IM-PD1" | 33 | bool "Include support for Integrator/IM-PD1" |
34 | depends on ARCH_INTEGRATOR_AP | 34 | depends on ARCH_INTEGRATOR_AP |
35 | select ARCH_REQUIRE_GPIOLIB | ||
36 | select ARM_VIC | 35 | select ARM_VIC |
37 | select GPIO_PL061 if GPIOLIB | 36 | select GPIO_PL061 |
37 | select GPIOLIB | ||
38 | help | 38 | help |
39 | The IM-PD1 is an add-on logic module for the Integrator which | 39 | The IM-PD1 is an add-on logic module for the Integrator which |
40 | allows ARM(R) Ltd PrimeCells to be developed and evaluated. | 40 | allows ARM(R) Ltd PrimeCells to be developed and evaluated. |
diff --git a/arch/arm/mach-meson/Kconfig b/arch/arm/mach-meson/Kconfig index 31bdd91098b6..fbce42d7390f 100644 --- a/arch/arm/mach-meson/Kconfig +++ b/arch/arm/mach-meson/Kconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | menuconfig ARCH_MESON | 1 | menuconfig ARCH_MESON |
2 | bool "Amlogic Meson SoCs" | 2 | bool "Amlogic Meson SoCs" |
3 | depends on ARCH_MULTI_V7 | 3 | depends on ARCH_MULTI_V7 |
4 | select ARCH_REQUIRE_GPIOLIB | 4 | select GPIOLIB |
5 | select GENERIC_IRQ_CHIP | 5 | select GENERIC_IRQ_CHIP |
6 | select ARM_GIC | 6 | select ARM_GIC |
7 | select CACHE_L2X0 | 7 | select CACHE_L2X0 |
diff --git a/arch/arm/mach-mmp/Kconfig b/arch/arm/mach-mmp/Kconfig index 01c57d369462..94500bed56ab 100644 --- a/arch/arm/mach-mmp/Kconfig +++ b/arch/arm/mach-mmp/Kconfig | |||
@@ -1,8 +1,8 @@ | |||
1 | menuconfig ARCH_MMP | 1 | menuconfig ARCH_MMP |
2 | bool "Marvell PXA168/910/MMP2" | 2 | bool "Marvell PXA168/910/MMP2" |
3 | depends on ARCH_MULTI_V5 || ARCH_MULTI_V7 | 3 | depends on ARCH_MULTI_V5 || ARCH_MULTI_V7 |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select GPIO_PXA | 4 | select GPIO_PXA |
5 | select GPIOLIB | ||
6 | select PINCTRL | 6 | select PINCTRL |
7 | select PLAT_PXA | 7 | select PLAT_PXA |
8 | help | 8 | help |
diff --git a/arch/arm/mach-moxart/Kconfig b/arch/arm/mach-moxart/Kconfig index ddc79cea32d3..f69e28b85e88 100644 --- a/arch/arm/mach-moxart/Kconfig +++ b/arch/arm/mach-moxart/Kconfig | |||
@@ -5,7 +5,7 @@ menuconfig ARCH_MOXART | |||
5 | select ARM_DMA_MEM_BUFFERABLE | 5 | select ARM_DMA_MEM_BUFFERABLE |
6 | select MOXART_TIMER | 6 | select MOXART_TIMER |
7 | select GENERIC_IRQ_CHIP | 7 | select GENERIC_IRQ_CHIP |
8 | select ARCH_REQUIRE_GPIOLIB | 8 | select GPIOLIB |
9 | select PHYLIB if NETDEVICES | 9 | select PHYLIB if NETDEVICES |
10 | help | 10 | help |
11 | Say Y here if you want to run your kernel on hardware with a | 11 | Say Y here if you want to run your kernel on hardware with a |
diff --git a/arch/arm/mach-mv78xx0/Kconfig b/arch/arm/mach-mv78xx0/Kconfig index c32f85559c65..81c0f08a2684 100644 --- a/arch/arm/mach-mv78xx0/Kconfig +++ b/arch/arm/mach-mv78xx0/Kconfig | |||
@@ -1,8 +1,8 @@ | |||
1 | menuconfig ARCH_MV78XX0 | 1 | menuconfig ARCH_MV78XX0 |
2 | bool "Marvell MV78xx0" | 2 | bool "Marvell MV78xx0" |
3 | depends on ARCH_MULTI_V5 | 3 | depends on ARCH_MULTI_V5 |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select CPU_FEROCEON | 4 | select CPU_FEROCEON |
5 | select GPIOLIB | ||
6 | select MVEBU_MBUS | 6 | select MVEBU_MBUS |
7 | select PCI | 7 | select PCI |
8 | select PLAT_ORION_LEGACY | 8 | select PLAT_ORION_LEGACY |
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index 348044ea650c..f9b6bd306cfe 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig | |||
@@ -8,7 +8,7 @@ menuconfig ARCH_MVEBU | |||
8 | select SOC_BUS | 8 | select SOC_BUS |
9 | select MVEBU_MBUS | 9 | select MVEBU_MBUS |
10 | select ZONE_DMA if ARM_LPAE | 10 | select ZONE_DMA if ARM_LPAE |
11 | select ARCH_REQUIRE_GPIOLIB | 11 | select GPIOLIB |
12 | select PCI_QUIRKS if PCI | 12 | select PCI_QUIRKS if PCI |
13 | select OF_ADDRESS_PCI | 13 | select OF_ADDRESS_PCI |
14 | 14 | ||
@@ -119,8 +119,8 @@ config MACH_DOVE | |||
119 | config MACH_KIRKWOOD | 119 | config MACH_KIRKWOOD |
120 | bool "Marvell Kirkwood boards" | 120 | bool "Marvell Kirkwood boards" |
121 | depends on ARCH_MULTI_V5 | 121 | depends on ARCH_MULTI_V5 |
122 | select ARCH_REQUIRE_GPIOLIB | ||
123 | select CPU_FEROCEON | 122 | select CPU_FEROCEON |
123 | select GPIOLIB | ||
124 | select KIRKWOOD_CLK | 124 | select KIRKWOOD_CLK |
125 | select MACH_MVEBU_ANY | 125 | select MACH_MVEBU_ANY |
126 | select ORION_IRQCHIP | 126 | select ORION_IRQCHIP |
diff --git a/arch/arm/mach-mvebu/coherency.h b/arch/arm/mach-mvebu/coherency.h index 54cb7607b526..6067f14263f7 100644 --- a/arch/arm/mach-mvebu/coherency.h +++ b/arch/arm/mach-mvebu/coherency.h | |||
@@ -14,6 +14,7 @@ | |||
14 | #ifndef __MACH_370_XP_COHERENCY_H | 14 | #ifndef __MACH_370_XP_COHERENCY_H |
15 | #define __MACH_370_XP_COHERENCY_H | 15 | #define __MACH_370_XP_COHERENCY_H |
16 | 16 | ||
17 | extern void __iomem *coherency_base; /* for coherency_ll.S */ | ||
17 | extern unsigned long coherency_phys_base; | 18 | extern unsigned long coherency_phys_base; |
18 | int set_cpu_coherent(void); | 19 | int set_cpu_coherent(void); |
19 | 20 | ||
diff --git a/arch/arm/mach-mvebu/cpu-reset.c b/arch/arm/mach-mvebu/cpu-reset.c index 4a2cadd6b48e..f33a31c6aff8 100644 --- a/arch/arm/mach-mvebu/cpu-reset.c +++ b/arch/arm/mach-mvebu/cpu-reset.c | |||
@@ -16,6 +16,8 @@ | |||
16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
17 | #include <linux/resource.h> | 17 | #include <linux/resource.h> |
18 | 18 | ||
19 | #include "common.h" | ||
20 | |||
19 | static void __iomem *cpu_reset_base; | 21 | static void __iomem *cpu_reset_base; |
20 | static size_t cpu_reset_size; | 22 | static size_t cpu_reset_size; |
21 | 23 | ||
diff --git a/arch/arm/mach-mvebu/kirkwood-pm.c b/arch/arm/mach-mvebu/kirkwood-pm.c index cbb816f2120c..1e1f879f16ce 100644 --- a/arch/arm/mach-mvebu/kirkwood-pm.c +++ b/arch/arm/mach-mvebu/kirkwood-pm.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/suspend.h> | 18 | #include <linux/suspend.h> |
19 | #include <linux/io.h> | 19 | #include <linux/io.h> |
20 | #include "kirkwood.h" | 20 | #include "kirkwood.h" |
21 | #include "kirkwood-pm.h" | ||
21 | 22 | ||
22 | static void __iomem *ddr_operation_base; | 23 | static void __iomem *ddr_operation_base; |
23 | static void __iomem *memory_pm_ctrl; | 24 | static void __iomem *memory_pm_ctrl; |
@@ -66,11 +67,10 @@ static const struct platform_suspend_ops kirkwood_suspend_ops = { | |||
66 | .valid = kirkwood_pm_valid_standby, | 67 | .valid = kirkwood_pm_valid_standby, |
67 | }; | 68 | }; |
68 | 69 | ||
69 | int __init kirkwood_pm_init(void) | 70 | void __init kirkwood_pm_init(void) |
70 | { | 71 | { |
71 | ddr_operation_base = ioremap(DDR_OPERATION_BASE, 4); | 72 | ddr_operation_base = ioremap(DDR_OPERATION_BASE, 4); |
72 | memory_pm_ctrl = ioremap(MEMORY_PM_CTRL_PHYS, 4); | 73 | memory_pm_ctrl = ioremap(MEMORY_PM_CTRL_PHYS, 4); |
73 | 74 | ||
74 | suspend_set_ops(&kirkwood_suspend_ops); | 75 | suspend_set_ops(&kirkwood_suspend_ops); |
75 | return 0; | ||
76 | } | 76 | } |
diff --git a/arch/arm/mach-mvebu/kirkwood.c b/arch/arm/mach-mvebu/kirkwood.c index 8f459ee34e6f..7d9f2fd9e450 100644 --- a/arch/arm/mach-mvebu/kirkwood.c +++ b/arch/arm/mach-mvebu/kirkwood.c | |||
@@ -150,7 +150,7 @@ eth_fixup_skip: | |||
150 | * causes mbus errors (which can occur for example for PCI aborts) to | 150 | * causes mbus errors (which can occur for example for PCI aborts) to |
151 | * throw CPU aborts, which we're not set up to deal with. | 151 | * throw CPU aborts, which we're not set up to deal with. |
152 | */ | 152 | */ |
153 | void kirkwood_disable_mbus_error_propagation(void) | 153 | static void kirkwood_disable_mbus_error_propagation(void) |
154 | { | 154 | { |
155 | void __iomem *cpu_config; | 155 | void __iomem *cpu_config; |
156 | 156 | ||
diff --git a/arch/arm/mach-mvebu/pm.c b/arch/arm/mach-mvebu/pm.c index 8d32bf762b86..2990c5269b18 100644 --- a/arch/arm/mach-mvebu/pm.c +++ b/arch/arm/mach-mvebu/pm.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <asm/suspend.h> | 23 | #include <asm/suspend.h> |
24 | 24 | ||
25 | #include "coherency.h" | 25 | #include "coherency.h" |
26 | #include "common.h" | ||
26 | #include "pmsu.h" | 27 | #include "pmsu.h" |
27 | 28 | ||
28 | #define SDRAM_CONFIG_OFFS 0x0 | 29 | #define SDRAM_CONFIG_OFFS 0x0 |
diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c index b44442338e4e..f39bd51bce18 100644 --- a/arch/arm/mach-mvebu/pmsu.c +++ b/arch/arm/mach-mvebu/pmsu.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/io.h> | 25 | #include <linux/io.h> |
26 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
27 | #include <linux/mbus.h> | 27 | #include <linux/mbus.h> |
28 | #include <linux/mvebu-pmsu.h> | ||
28 | #include <linux/of_address.h> | 29 | #include <linux/of_address.h> |
29 | #include <linux/of_device.h> | 30 | #include <linux/of_device.h> |
30 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
@@ -38,7 +39,7 @@ | |||
38 | #include <asm/suspend.h> | 39 | #include <asm/suspend.h> |
39 | #include <asm/tlbflush.h> | 40 | #include <asm/tlbflush.h> |
40 | #include "common.h" | 41 | #include "common.h" |
41 | 42 | #include "pmsu.h" | |
42 | 43 | ||
43 | #define PMSU_BASE_OFFSET 0x100 | 44 | #define PMSU_BASE_OFFSET 0x100 |
44 | #define PMSU_REG_SIZE 0x1000 | 45 | #define PMSU_REG_SIZE 0x1000 |
diff --git a/arch/arm/mach-mvebu/system-controller.c b/arch/arm/mach-mvebu/system-controller.c index c6c132acd7a6..76cbc82a7407 100644 --- a/arch/arm/mach-mvebu/system-controller.c +++ b/arch/arm/mach-mvebu/system-controller.c | |||
@@ -127,7 +127,7 @@ int mvebu_system_controller_get_soc_id(u32 *dev, u32 *rev) | |||
127 | } | 127 | } |
128 | 128 | ||
129 | #if defined(CONFIG_SMP) && defined(CONFIG_MACH_MVEBU_V7) | 129 | #if defined(CONFIG_SMP) && defined(CONFIG_MACH_MVEBU_V7) |
130 | void mvebu_armada375_smp_wa_init(void) | 130 | static void mvebu_armada375_smp_wa_init(void) |
131 | { | 131 | { |
132 | u32 dev, rev; | 132 | u32 dev, rev; |
133 | phys_addr_t resume_addr_reg; | 133 | phys_addr_t resume_addr_reg; |
diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig index 68a3a9ec605d..cb429bc6dc0d 100644 --- a/arch/arm/mach-mxs/Kconfig +++ b/arch/arm/mach-mxs/Kconfig | |||
@@ -15,7 +15,7 @@ config SOC_IMX28 | |||
15 | config ARCH_MXS | 15 | config ARCH_MXS |
16 | bool "Freescale MXS (i.MX23, i.MX28) support" | 16 | bool "Freescale MXS (i.MX23, i.MX28) support" |
17 | depends on ARCH_MULTI_V5 | 17 | depends on ARCH_MULTI_V5 |
18 | select ARCH_REQUIRE_GPIOLIB | 18 | select GPIOLIB |
19 | select MXS_TIMER | 19 | select MXS_TIMER |
20 | select PINCTRL | 20 | select PINCTRL |
21 | select SOC_BUS | 21 | select SOC_BUS |
diff --git a/arch/arm/mach-nomadik/Kconfig b/arch/arm/mach-nomadik/Kconfig index 3c61096c8627..b7e9801fdaa4 100644 --- a/arch/arm/mach-nomadik/Kconfig +++ b/arch/arm/mach-nomadik/Kconfig | |||
@@ -1,12 +1,12 @@ | |||
1 | menuconfig ARCH_NOMADIK | 1 | menuconfig ARCH_NOMADIK |
2 | bool "ST-Ericsson Nomadik" | 2 | bool "ST-Ericsson Nomadik" |
3 | depends on ARCH_MULTI_V5 | 3 | depends on ARCH_MULTI_V5 |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select ARM_AMBA | 4 | select ARM_AMBA |
6 | select ARM_VIC | 5 | select ARM_VIC |
7 | select CLKSRC_NOMADIK_MTU | 6 | select CLKSRC_NOMADIK_MTU |
8 | select CLKSRC_NOMADIK_MTU_SCHED_CLOCK | 7 | select CLKSRC_NOMADIK_MTU_SCHED_CLOCK |
9 | select CPU_ARM926T | 8 | select CPU_ARM926T |
9 | select GPIOLIB | ||
10 | select MIGHT_HAVE_CACHE_L2X0 | 10 | select MIGHT_HAVE_CACHE_L2X0 |
11 | select PINCTRL | 11 | select PINCTRL |
12 | select PINCTRL_NOMADIK | 12 | select PINCTRL_NOMADIK |
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 1a648e9dfaa0..5a0b380a8166 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
@@ -92,9 +92,9 @@ config ARCH_OMAP2PLUS | |||
92 | select ARCH_HAS_BANDGAP | 92 | select ARCH_HAS_BANDGAP |
93 | select ARCH_HAS_HOLES_MEMORYMODEL | 93 | select ARCH_HAS_HOLES_MEMORYMODEL |
94 | select ARCH_OMAP | 94 | select ARCH_OMAP |
95 | select ARCH_REQUIRE_GPIOLIB | ||
96 | select CLKSRC_MMIO | 95 | select CLKSRC_MMIO |
97 | select GENERIC_IRQ_CHIP | 96 | select GENERIC_IRQ_CHIP |
97 | select GPIOLIB | ||
98 | select MACH_OMAP_GENERIC | 98 | select MACH_OMAP_GENERIC |
99 | select MEMORY | 99 | select MEMORY |
100 | select MFD_SYSCON | 100 | select MFD_SYSCON |
diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig index a2af15822fcb..89bb0fc796bd 100644 --- a/arch/arm/mach-orion5x/Kconfig +++ b/arch/arm/mach-orion5x/Kconfig | |||
@@ -1,9 +1,9 @@ | |||
1 | menuconfig ARCH_ORION5X | 1 | menuconfig ARCH_ORION5X |
2 | bool "Marvell Orion" | 2 | bool "Marvell Orion" |
3 | depends on MMU && ARCH_MULTI_V5 | 3 | depends on MMU && ARCH_MULTI_V5 |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select CPU_FEROCEON | 4 | select CPU_FEROCEON |
6 | select GENERIC_CLOCKEVENTS | 5 | select GENERIC_CLOCKEVENTS |
6 | select GPIOLIB | ||
7 | select MVEBU_MBUS | 7 | select MVEBU_MBUS |
8 | select PCI | 8 | select PCI |
9 | select PLAT_ORION_LEGACY | 9 | select PLAT_ORION_LEGACY |
diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c index de980ef9cda1..ac4af2283bef 100644 --- a/arch/arm/mach-orion5x/irq.c +++ b/arch/arm/mach-orion5x/irq.c | |||
@@ -26,7 +26,7 @@ static int __initdata gpio0_irqs[4] = { | |||
26 | IRQ_ORION5X_GPIO_24_31, | 26 | IRQ_ORION5X_GPIO_24_31, |
27 | }; | 27 | }; |
28 | 28 | ||
29 | asmlinkage void | 29 | static asmlinkage void |
30 | __exception_irq_entry orion5x_legacy_handle_irq(struct pt_regs *regs) | 30 | __exception_irq_entry orion5x_legacy_handle_irq(struct pt_regs *regs) |
31 | { | 31 | { |
32 | u32 stat; | 32 | u32 stat; |
diff --git a/arch/arm/mach-oxnas/Kconfig b/arch/arm/mach-oxnas/Kconfig index 4fff3c7666df..2dde0acf01fd 100644 --- a/arch/arm/mach-oxnas/Kconfig +++ b/arch/arm/mach-oxnas/Kconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | menuconfig ARCH_OXNAS | 1 | menuconfig ARCH_OXNAS |
2 | bool "Oxford Semiconductor OXNAS Family SoCs" | 2 | bool "Oxford Semiconductor OXNAS Family SoCs" |
3 | select ARCH_REQUIRE_GPIOLIB | ||
4 | select ARCH_HAS_RESET_CONTROLLER | 3 | select ARCH_HAS_RESET_CONTROLLER |
4 | select GPIOLIB | ||
5 | select PINCTRL | 5 | select PINCTRL |
6 | depends on ARCH_MULTI_V5 | 6 | depends on ARCH_MULTI_V5 |
7 | help | 7 | help |
diff --git a/arch/arm/mach-picoxcell/Kconfig b/arch/arm/mach-picoxcell/Kconfig index aef92ba0eacd..1c8f701526c9 100644 --- a/arch/arm/mach-picoxcell/Kconfig +++ b/arch/arm/mach-picoxcell/Kconfig | |||
@@ -1,8 +1,8 @@ | |||
1 | config ARCH_PICOXCELL | 1 | config ARCH_PICOXCELL |
2 | bool "Picochip PicoXcell" | 2 | bool "Picochip PicoXcell" |
3 | depends on ARCH_MULTI_V6 | 3 | depends on ARCH_MULTI_V6 |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select ARM_VIC | 4 | select ARM_VIC |
6 | select DW_APB_TIMER_OF | 5 | select DW_APB_TIMER_OF |
6 | select GPIOLIB | ||
7 | select HAVE_TCM | 7 | select HAVE_TCM |
8 | select NO_IOPORT_MAP | 8 | select NO_IOPORT_MAP |
diff --git a/arch/arm/mach-prima2/Kconfig b/arch/arm/mach-prima2/Kconfig index 9e938f2961cf..85e874a97337 100644 --- a/arch/arm/mach-prima2/Kconfig +++ b/arch/arm/mach-prima2/Kconfig | |||
@@ -3,8 +3,8 @@ menuconfig ARCH_SIRF | |||
3 | depends on ARCH_MULTI_V7 | 3 | depends on ARCH_MULTI_V7 |
4 | select ARCH_HAS_RESET_CONTROLLER | 4 | select ARCH_HAS_RESET_CONTROLLER |
5 | select RESET_CONTROLLER | 5 | select RESET_CONTROLLER |
6 | select ARCH_REQUIRE_GPIOLIB | ||
7 | select GENERIC_IRQ_CHIP | 6 | select GENERIC_IRQ_CHIP |
7 | select GPIOLIB | ||
8 | select NO_IOPORT_MAP | 8 | select NO_IOPORT_MAP |
9 | select REGMAP | 9 | select REGMAP |
10 | select PINCTRL | 10 | select PINCTRL |
diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig index cef42fd886d1..9ad84cd01ba0 100644 --- a/arch/arm/mach-rockchip/Kconfig +++ b/arch/arm/mach-rockchip/Kconfig | |||
@@ -4,10 +4,10 @@ config ARCH_ROCKCHIP | |||
4 | select PINCTRL | 4 | select PINCTRL |
5 | select PINCTRL_ROCKCHIP | 5 | select PINCTRL_ROCKCHIP |
6 | select ARCH_HAS_RESET_CONTROLLER | 6 | select ARCH_HAS_RESET_CONTROLLER |
7 | select ARCH_REQUIRE_GPIOLIB | ||
8 | select ARM_AMBA | 7 | select ARM_AMBA |
9 | select ARM_GIC | 8 | select ARM_GIC |
10 | select CACHE_L2X0 | 9 | select CACHE_L2X0 |
10 | select GPIOLIB | ||
11 | select HAVE_ARM_ARCH_TIMER | 11 | select HAVE_ARM_ARCH_TIMER |
12 | select HAVE_ARM_SCU if SMP | 12 | select HAVE_ARM_SCU if SMP |
13 | select HAVE_ARM_TWD if SMP | 13 | select HAVE_ARM_TWD if SMP |
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig index b91aee406c74..4b1690acb6a5 100644 --- a/arch/arm/mach-s3c24xx/Kconfig +++ b/arch/arm/mach-s3c24xx/Kconfig | |||
@@ -11,7 +11,7 @@ if ARCH_S3C24XX | |||
11 | 11 | ||
12 | config PLAT_S3C24XX | 12 | config PLAT_S3C24XX |
13 | def_bool y | 13 | def_bool y |
14 | select ARCH_REQUIRE_GPIOLIB | 14 | select GPIOLIB |
15 | select NO_IOPORT_MAP | 15 | select NO_IOPORT_MAP |
16 | select S3C_DEV_NAND | 16 | select S3C_DEV_NAND |
17 | select IRQ_DOMAIN | 17 | select IRQ_DOMAIN |
diff --git a/arch/arm/mach-s3c24xx/include/mach/regs-gpio.h b/arch/arm/mach-s3c24xx/include/mach/regs-gpio.h index c6583cfa5835..0d622f3b57a5 100644 --- a/arch/arm/mach-s3c24xx/include/mach/regs-gpio.h +++ b/arch/arm/mach-s3c24xx/include/mach/regs-gpio.h | |||
@@ -520,7 +520,7 @@ | |||
520 | #define S3C24XX_EXTINT1 S3C24XX_GPIOREG2(0x8C) | 520 | #define S3C24XX_EXTINT1 S3C24XX_GPIOREG2(0x8C) |
521 | #define S3C24XX_EXTINT2 S3C24XX_GPIOREG2(0x90) | 521 | #define S3C24XX_EXTINT2 S3C24XX_GPIOREG2(0x90) |
522 | 522 | ||
523 | /* interrupt filtering conrrol for EINT16..EINT23 */ | 523 | /* interrupt filtering control for EINT16..EINT23 */ |
524 | #define S3C2410_EINFLT0 S3C2410_GPIOREG(0x94) | 524 | #define S3C2410_EINFLT0 S3C2410_GPIOREG(0x94) |
525 | #define S3C2410_EINFLT1 S3C2410_GPIOREG(0x98) | 525 | #define S3C2410_EINFLT1 S3C2410_GPIOREG(0x98) |
526 | #define S3C2410_EINFLT2 S3C2410_GPIOREG(0x9C) | 526 | #define S3C2410_EINFLT2 S3C2410_GPIOREG(0x9C) |
diff --git a/arch/arm/mach-s3c24xx/iotiming-s3c2410.c b/arch/arm/mach-s3c24xx/iotiming-s3c2410.c index 4cd13ab6496b..65e5f9cb650f 100644 --- a/arch/arm/mach-s3c24xx/iotiming-s3c2410.c +++ b/arch/arm/mach-s3c24xx/iotiming-s3c2410.c | |||
@@ -423,7 +423,7 @@ void s3c2410_iotiming_set(struct s3c_cpufreq_config *cfg, | |||
423 | * @timings: The IO timing information to fill out. | 423 | * @timings: The IO timing information to fill out. |
424 | * | 424 | * |
425 | * Calculate the @timings timing information from the current frequency | 425 | * Calculate the @timings timing information from the current frequency |
426 | * information in @cfg, and the new frequency configur | 426 | * information in @cfg, and the new frequency configuration |
427 | * through all the IO banks, reading the state and then updating @iot | 427 | * through all the IO banks, reading the state and then updating @iot |
428 | * as necessary. | 428 | * as necessary. |
429 | * | 429 | * |
diff --git a/arch/arm/mach-s3c24xx/mach-n30.c b/arch/arm/mach-s3c24xx/mach-n30.c index 171c1f11fd22..070a0d0714a5 100644 --- a/arch/arm/mach-s3c24xx/mach-n30.c +++ b/arch/arm/mach-s3c24xx/mach-n30.c | |||
@@ -522,7 +522,7 @@ static void __init n30_hwinit(void) | |||
522 | * | 522 | * |
523 | * The pull ups for H6/H7 are enabled on N30 but not on the | 523 | * The pull ups for H6/H7 are enabled on N30 but not on the |
524 | * N35/PiN. I suppose is useful for a budget model of the N30 | 524 | * N35/PiN. I suppose is useful for a budget model of the N30 |
525 | * with no bluetooh. It doesn't hurt to have the pull ups | 525 | * with no bluetooth. It doesn't hurt to have the pull ups |
526 | * enabled on the N35, so leave them enabled for all models. | 526 | * enabled on the N35, so leave them enabled for all models. |
527 | */ | 527 | */ |
528 | __raw_writel(0x0028aaaa, S3C2410_GPHCON); | 528 | __raw_writel(0x0028aaaa, S3C2410_GPHCON); |
diff --git a/arch/arm/mach-s3c24xx/mach-osiris-dvs.c b/arch/arm/mach-s3c24xx/mach-osiris-dvs.c index ce2db235dbaf..262ab0744748 100644 --- a/arch/arm/mach-s3c24xx/mach-osiris-dvs.c +++ b/arch/arm/mach-s3c24xx/mach-osiris-dvs.c | |||
@@ -143,7 +143,7 @@ static int osiris_dvs_remove(struct platform_device *pdev) | |||
143 | return 0; | 143 | return 0; |
144 | } | 144 | } |
145 | 145 | ||
146 | /* the CONFIG_PM block is so small, it isn't worth actaully compiling it | 146 | /* the CONFIG_PM block is so small, it isn't worth actually compiling it |
147 | * out if the configuration isn't set. */ | 147 | * out if the configuration isn't set. */ |
148 | 148 | ||
149 | static int osiris_dvs_suspend(struct device *dev) | 149 | static int osiris_dvs_suspend(struct device *dev) |
diff --git a/arch/arm/mach-s3c24xx/pll-s3c2410.c b/arch/arm/mach-s3c24xx/pll-s3c2410.c index 5e37d368594b..7ee4924a543d 100644 --- a/arch/arm/mach-s3c24xx/pll-s3c2410.c +++ b/arch/arm/mach-s3c24xx/pll-s3c2410.c | |||
@@ -32,11 +32,12 @@ | |||
32 | #include <plat/cpu.h> | 32 | #include <plat/cpu.h> |
33 | #include <plat/cpu-freq-core.h> | 33 | #include <plat/cpu-freq-core.h> |
34 | 34 | ||
35 | /* This array should be sorted in ascending order of the frequencies */ | ||
35 | static struct cpufreq_frequency_table pll_vals_12MHz[] = { | 36 | static struct cpufreq_frequency_table pll_vals_12MHz[] = { |
36 | { .frequency = 34000000, .driver_data = PLLVAL(82, 2, 3), }, | 37 | { .frequency = 34000000, .driver_data = PLLVAL(82, 2, 3), }, |
37 | { .frequency = 45000000, .driver_data = PLLVAL(82, 1, 3), }, | 38 | { .frequency = 45000000, .driver_data = PLLVAL(82, 1, 3), }, |
38 | { .frequency = 51000000, .driver_data = PLLVAL(161, 3, 3), }, | ||
39 | { .frequency = 48000000, .driver_data = PLLVAL(120, 2, 3), }, | 39 | { .frequency = 48000000, .driver_data = PLLVAL(120, 2, 3), }, |
40 | { .frequency = 51000000, .driver_data = PLLVAL(161, 3, 3), }, | ||
40 | { .frequency = 56000000, .driver_data = PLLVAL(142, 2, 3), }, | 41 | { .frequency = 56000000, .driver_data = PLLVAL(142, 2, 3), }, |
41 | { .frequency = 68000000, .driver_data = PLLVAL(82, 2, 2), }, | 42 | { .frequency = 68000000, .driver_data = PLLVAL(82, 2, 2), }, |
42 | { .frequency = 79000000, .driver_data = PLLVAL(71, 1, 2), }, | 43 | { .frequency = 79000000, .driver_data = PLLVAL(71, 1, 2), }, |
diff --git a/arch/arm/mach-s3c24xx/pll-s3c2440-12000000.c b/arch/arm/mach-s3c24xx/pll-s3c2440-12000000.c index b355fca6cc2e..a3fbfed75e28 100644 --- a/arch/arm/mach-s3c24xx/pll-s3c2440-12000000.c +++ b/arch/arm/mach-s3c24xx/pll-s3c2440-12000000.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <plat/cpu.h> | 20 | #include <plat/cpu.h> |
21 | #include <plat/cpu-freq-core.h> | 21 | #include <plat/cpu-freq-core.h> |
22 | 22 | ||
23 | /* This array should be sorted in ascending order of the frequencies */ | ||
23 | static struct cpufreq_frequency_table s3c2440_plls_12[] = { | 24 | static struct cpufreq_frequency_table s3c2440_plls_12[] = { |
24 | { .frequency = 75000000, .driver_data = PLLVAL(0x75, 3, 3), }, /* FVco 600.000000 */ | 25 | { .frequency = 75000000, .driver_data = PLLVAL(0x75, 3, 3), }, /* FVco 600.000000 */ |
25 | { .frequency = 80000000, .driver_data = PLLVAL(0x98, 4, 3), }, /* FVco 640.000000 */ | 26 | { .frequency = 80000000, .driver_data = PLLVAL(0x98, 4, 3), }, /* FVco 640.000000 */ |
diff --git a/arch/arm/mach-s3c24xx/pll-s3c2440-16934400.c b/arch/arm/mach-s3c24xx/pll-s3c2440-16934400.c index be9a248b5ce9..bcff89fd9871 100644 --- a/arch/arm/mach-s3c24xx/pll-s3c2440-16934400.c +++ b/arch/arm/mach-s3c24xx/pll-s3c2440-16934400.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <plat/cpu.h> | 20 | #include <plat/cpu.h> |
21 | #include <plat/cpu-freq-core.h> | 21 | #include <plat/cpu-freq-core.h> |
22 | 22 | ||
23 | /* This array should be sorted in ascending order of the frequencies */ | ||
23 | static struct cpufreq_frequency_table s3c2440_plls_169344[] = { | 24 | static struct cpufreq_frequency_table s3c2440_plls_169344[] = { |
24 | { .frequency = 78019200, .driver_data = PLLVAL(121, 5, 3), }, /* FVco 624.153600 */ | 25 | { .frequency = 78019200, .driver_data = PLLVAL(121, 5, 3), }, /* FVco 624.153600 */ |
25 | { .frequency = 84067200, .driver_data = PLLVAL(131, 5, 3), }, /* FVco 672.537600 */ | 26 | { .frequency = 84067200, .driver_data = PLLVAL(131, 5, 3), }, /* FVco 672.537600 */ |
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig index e5c1888fc67b..459214fa20b4 100644 --- a/arch/arm/mach-s3c64xx/Kconfig +++ b/arch/arm/mach-s3c64xx/Kconfig | |||
@@ -5,12 +5,12 @@ | |||
5 | menuconfig ARCH_S3C64XX | 5 | menuconfig ARCH_S3C64XX |
6 | bool "Samsung S3C64XX" | 6 | bool "Samsung S3C64XX" |
7 | depends on ARCH_MULTI_V6 | 7 | depends on ARCH_MULTI_V6 |
8 | select ARCH_REQUIRE_GPIOLIB | ||
9 | select ARM_AMBA | 8 | select ARM_AMBA |
10 | select ARM_VIC | 9 | select ARM_VIC |
11 | select CLKSRC_SAMSUNG_PWM | 10 | select CLKSRC_SAMSUNG_PWM |
12 | select COMMON_CLK_SAMSUNG | 11 | select COMMON_CLK_SAMSUNG |
13 | select GPIO_SAMSUNG if ATAGS | 12 | select GPIO_SAMSUNG if ATAGS |
13 | select GPIOLIB | ||
14 | select HAVE_S3C2410_I2C if I2C | 14 | select HAVE_S3C2410_I2C if I2C |
15 | select HAVE_S3C2410_WATCHDOG if WATCHDOG | 15 | select HAVE_S3C2410_WATCHDOG if WATCHDOG |
16 | select HAVE_TCM | 16 | select HAVE_TCM |
diff --git a/arch/arm/mach-s3c64xx/common.h b/arch/arm/mach-s3c64xx/common.h index 9eb864412911..4f204668f00e 100644 --- a/arch/arm/mach-s3c64xx/common.h +++ b/arch/arm/mach-s3c64xx/common.h | |||
@@ -24,6 +24,7 @@ void s3c64xx_init_io(struct map_desc *mach_desc, int size); | |||
24 | 24 | ||
25 | void s3c64xx_restart(enum reboot_mode mode, const char *cmd); | 25 | void s3c64xx_restart(enum reboot_mode mode, const char *cmd); |
26 | 26 | ||
27 | struct device_node; | ||
27 | void s3c64xx_clk_init(struct device_node *np, unsigned long xtal_f, | 28 | void s3c64xx_clk_init(struct device_node *np, unsigned long xtal_f, |
28 | unsigned long xusbxti_f, bool is_s3c6400, void __iomem *reg_base); | 29 | unsigned long xusbxti_f, bool is_s3c6400, void __iomem *reg_base); |
29 | void s3c64xx_set_xtal_freq(unsigned long freq); | 30 | void s3c64xx_set_xtal_freq(unsigned long freq); |
diff --git a/arch/arm/mach-s3c64xx/include/mach/map.h b/arch/arm/mach-s3c64xx/include/mach/map.h index f55ccb1ce893..d51873e8f63f 100644 --- a/arch/arm/mach-s3c64xx/include/mach/map.h +++ b/arch/arm/mach-s3c64xx/include/mach/map.h | |||
@@ -99,7 +99,7 @@ | |||
99 | 99 | ||
100 | #define S3C64XX_PA_USB_HSPHY (0x7C100000) | 100 | #define S3C64XX_PA_USB_HSPHY (0x7C100000) |
101 | 101 | ||
102 | /* compatibiltiy defines. */ | 102 | /* compatibility defines. */ |
103 | #define S3C_PA_TIMER S3C64XX_PA_TIMER | 103 | #define S3C_PA_TIMER S3C64XX_PA_TIMER |
104 | #define S3C_PA_HSMMC0 S3C64XX_PA_HSMMC0 | 104 | #define S3C_PA_HSMMC0 S3C64XX_PA_HSMMC0 |
105 | #define S3C_PA_HSMMC1 S3C64XX_PA_HSMMC1 | 105 | #define S3C_PA_HSMMC1 S3C64XX_PA_HSMMC1 |
diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig index 13bc9820ff22..4cec11cf5e6f 100644 --- a/arch/arm/mach-s5pv210/Kconfig +++ b/arch/arm/mach-s5pv210/Kconfig | |||
@@ -11,10 +11,10 @@ config ARCH_S5PV210 | |||
11 | bool "Samsung S5PV210/S5PC110" | 11 | bool "Samsung S5PV210/S5PC110" |
12 | depends on ARCH_MULTI_V7 | 12 | depends on ARCH_MULTI_V7 |
13 | select ARCH_HAS_HOLES_MEMORYMODEL | 13 | select ARCH_HAS_HOLES_MEMORYMODEL |
14 | select ARCH_REQUIRE_GPIOLIB | ||
15 | select ARM_VIC | 14 | select ARM_VIC |
16 | select CLKSRC_SAMSUNG_PWM | 15 | select CLKSRC_SAMSUNG_PWM |
17 | select COMMON_CLK_SAMSUNG | 16 | select COMMON_CLK_SAMSUNG |
17 | select GPIOLIB | ||
18 | select HAVE_S3C2410_I2C if I2C | 18 | select HAVE_S3C2410_I2C if I2C |
19 | select HAVE_S3C2410_WATCHDOG if WATCHDOG | 19 | select HAVE_S3C2410_WATCHDOG if WATCHDOG |
20 | select HAVE_S3C_RTC if RTC_CLASS | 20 | select HAVE_S3C_RTC if RTC_CLASS |
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index fe4ccb52f921..108ae2b41819 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
@@ -41,7 +41,7 @@ menuconfig ARCH_RENESAS | |||
41 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE | 41 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE |
42 | select NO_IOPORT_MAP | 42 | select NO_IOPORT_MAP |
43 | select PINCTRL | 43 | select PINCTRL |
44 | select ARCH_REQUIRE_GPIOLIB | 44 | select GPIOLIB |
45 | select ZONE_DMA if ARM_LPAE | 45 | select ZONE_DMA if ARM_LPAE |
46 | 46 | ||
47 | if ARCH_RENESAS | 47 | if ARCH_RENESAS |
diff --git a/arch/arm/mach-spear/Kconfig b/arch/arm/mach-spear/Kconfig index ea9ea95630bd..b7260c2b510c 100644 --- a/arch/arm/mach-spear/Kconfig +++ b/arch/arm/mach-spear/Kconfig | |||
@@ -5,9 +5,9 @@ | |||
5 | menuconfig PLAT_SPEAR | 5 | menuconfig PLAT_SPEAR |
6 | bool "ST SPEAr Family" | 6 | bool "ST SPEAr Family" |
7 | depends on ARCH_MULTI_V7 || ARCH_MULTI_V5 | 7 | depends on ARCH_MULTI_V7 || ARCH_MULTI_V5 |
8 | select ARCH_REQUIRE_GPIOLIB | ||
9 | select ARM_AMBA | 8 | select ARM_AMBA |
10 | select CLKSRC_MMIO | 9 | select CLKSRC_MMIO |
10 | select GPIOLIB | ||
11 | 11 | ||
12 | if PLAT_SPEAR | 12 | if PLAT_SPEAR |
13 | 13 | ||
diff --git a/arch/arm/mach-sti/Kconfig b/arch/arm/mach-sti/Kconfig index 6f1af29f935d..119e1108b1f8 100644 --- a/arch/arm/mach-sti/Kconfig +++ b/arch/arm/mach-sti/Kconfig | |||
@@ -10,7 +10,7 @@ menuconfig ARCH_STI | |||
10 | select MFD_SYSCON | 10 | select MFD_SYSCON |
11 | select ARCH_HAS_RESET_CONTROLLER | 11 | select ARCH_HAS_RESET_CONTROLLER |
12 | select HAVE_ARM_SCU if SMP | 12 | select HAVE_ARM_SCU if SMP |
13 | select ARCH_REQUIRE_GPIOLIB | 13 | select GPIOLIB |
14 | select ARM_ERRATA_754322 | 14 | select ARM_ERRATA_754322 |
15 | select ARM_ERRATA_764369 if SMP | 15 | select ARM_ERRATA_764369 if SMP |
16 | select ARM_ERRATA_775420 | 16 | select ARM_ERRATA_775420 |
diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index c124d658b350..096ed216c6d5 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig | |||
@@ -1,10 +1,10 @@ | |||
1 | menuconfig ARCH_SUNXI | 1 | menuconfig ARCH_SUNXI |
2 | bool "Allwinner SoCs" | 2 | bool "Allwinner SoCs" |
3 | depends on ARCH_MULTI_V7 | 3 | depends on ARCH_MULTI_V7 |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select ARCH_HAS_RESET_CONTROLLER | 4 | select ARCH_HAS_RESET_CONTROLLER |
6 | select CLKSRC_MMIO | 5 | select CLKSRC_MMIO |
7 | select GENERIC_IRQ_CHIP | 6 | select GENERIC_IRQ_CHIP |
7 | select GPIOLIB | ||
8 | select PINCTRL | 8 | select PINCTRL |
9 | select SUN4I_TIMER | 9 | select SUN4I_TIMER |
10 | select RESET_CONTROLLER | 10 | select RESET_CONTROLLER |
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index 0fa8b84ed657..329f01c5b6f8 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig | |||
@@ -1,11 +1,11 @@ | |||
1 | menuconfig ARCH_TEGRA | 1 | menuconfig ARCH_TEGRA |
2 | bool "NVIDIA Tegra" | 2 | bool "NVIDIA Tegra" |
3 | depends on ARCH_MULTI_V7 | 3 | depends on ARCH_MULTI_V7 |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS | 4 | select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS |
6 | select ARM_AMBA | 5 | select ARM_AMBA |
7 | select ARM_GIC | 6 | select ARM_GIC |
8 | select CLKSRC_MMIO | 7 | select CLKSRC_MMIO |
8 | select GPIOLIB | ||
9 | select HAVE_ARM_SCU if SMP | 9 | select HAVE_ARM_SCU if SMP |
10 | select HAVE_ARM_TWD if SMP | 10 | select HAVE_ARM_TWD if SMP |
11 | select PINCTRL | 11 | select PINCTRL |
diff --git a/arch/arm/mach-tegra/common.h b/arch/arm/mach-tegra/common.h index 1f6fb808e236..4cc00e993b00 100644 --- a/arch/arm/mach-tegra/common.h +++ b/arch/arm/mach-tegra/common.h | |||
@@ -1,4 +1,26 @@ | |||
1 | /* | ||
2 | * Copyright (c) 2011, ARM Ltd. | ||
3 | * Copyright (c) 2013, NVIDIA Corporation. All rights reserved. | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms and conditions of the GNU General Public License, | ||
7 | * version 2, as published by the Free Software Foundation. | ||
8 | * | ||
9 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
12 | * more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
16 | */ | ||
17 | |||
18 | #ifndef __MACH_TEGRA_COMMON_H | ||
19 | #define __MACH_TEGRA_COMMON_H | ||
20 | |||
1 | extern const struct smp_operations tegra_smp_ops; | 21 | extern const struct smp_operations tegra_smp_ops; |
2 | 22 | ||
3 | extern int tegra_cpu_kill(unsigned int cpu); | 23 | extern int tegra_cpu_kill(unsigned int cpu); |
4 | extern void tegra_cpu_die(unsigned int cpu); | 24 | extern void tegra_cpu_die(unsigned int cpu); |
25 | |||
26 | #endif | ||
diff --git a/arch/arm/mach-tegra/cpuidle-tegra114.c b/arch/arm/mach-tegra/cpuidle-tegra114.c index 9157546fe68c..d3aa9be16621 100644 --- a/arch/arm/mach-tegra/cpuidle-tegra114.c +++ b/arch/arm/mach-tegra/cpuidle-tegra114.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <asm/suspend.h> | 26 | #include <asm/suspend.h> |
27 | #include <asm/psci.h> | 27 | #include <asm/psci.h> |
28 | 28 | ||
29 | #include "cpuidle.h" | ||
29 | #include "pm.h" | 30 | #include "pm.h" |
30 | #include "sleep.h" | 31 | #include "sleep.h" |
31 | 32 | ||
diff --git a/arch/arm/mach-tegra/cpuidle-tegra20.c b/arch/arm/mach-tegra/cpuidle-tegra20.c index 7469347b1749..afcee04f2616 100644 --- a/arch/arm/mach-tegra/cpuidle-tegra20.c +++ b/arch/arm/mach-tegra/cpuidle-tegra20.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <asm/smp_plat.h> | 30 | #include <asm/smp_plat.h> |
31 | #include <asm/suspend.h> | 31 | #include <asm/suspend.h> |
32 | 32 | ||
33 | #include "cpuidle.h" | ||
33 | #include "flowctrl.h" | 34 | #include "flowctrl.h" |
34 | #include "iomap.h" | 35 | #include "iomap.h" |
35 | #include "irq.h" | 36 | #include "irq.h" |
diff --git a/arch/arm/mach-tegra/cpuidle-tegra30.c b/arch/arm/mach-tegra/cpuidle-tegra30.c index 4dbe1dae937c..c1417361e10e 100644 --- a/arch/arm/mach-tegra/cpuidle-tegra30.c +++ b/arch/arm/mach-tegra/cpuidle-tegra30.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <asm/smp_plat.h> | 30 | #include <asm/smp_plat.h> |
31 | #include <asm/suspend.h> | 31 | #include <asm/suspend.h> |
32 | 32 | ||
33 | #include "cpuidle.h" | ||
33 | #include "pm.h" | 34 | #include "pm.h" |
34 | #include "sleep.h" | 35 | #include "sleep.h" |
35 | 36 | ||
diff --git a/arch/arm/mach-tegra/cpuidle.h b/arch/arm/mach-tegra/cpuidle.h index c017dab60ffa..dd1624d4b294 100644 --- a/arch/arm/mach-tegra/cpuidle.h +++ b/arch/arm/mach-tegra/cpuidle.h | |||
@@ -23,8 +23,10 @@ void tegra20_cpuidle_pcie_irqs_in_use(void); | |||
23 | int tegra30_cpuidle_init(void); | 23 | int tegra30_cpuidle_init(void); |
24 | int tegra114_cpuidle_init(void); | 24 | int tegra114_cpuidle_init(void); |
25 | void tegra_cpuidle_init(void); | 25 | void tegra_cpuidle_init(void); |
26 | void tegra_cpuidle_pcie_irqs_in_use(void); | ||
26 | #else | 27 | #else |
27 | static inline void tegra_cpuidle_init(void) {} | 28 | static inline void tegra_cpuidle_init(void) {} |
29 | static inline void tegra_cpuidle_pcie_irqs_in_use(void) {} | ||
28 | #endif | 30 | #endif |
29 | 31 | ||
30 | #endif | 32 | #endif |
diff --git a/arch/arm/mach-tegra/hotplug.c b/arch/arm/mach-tegra/hotplug.c index 1b129899a277..8ec707826072 100644 --- a/arch/arm/mach-tegra/hotplug.c +++ b/arch/arm/mach-tegra/hotplug.c | |||
@@ -17,6 +17,7 @@ | |||
17 | 17 | ||
18 | #include <asm/smp_plat.h> | 18 | #include <asm/smp_plat.h> |
19 | 19 | ||
20 | #include "common.h" | ||
20 | #include "sleep.h" | 21 | #include "sleep.h" |
21 | 22 | ||
22 | static void (*tegra_hotplug_shutdown)(void); | 23 | static void (*tegra_hotplug_shutdown)(void); |
diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c index 3b9098d27ea5..a69b22d37eed 100644 --- a/arch/arm/mach-tegra/irq.c +++ b/arch/arm/mach-tegra/irq.c | |||
@@ -29,6 +29,7 @@ | |||
29 | 29 | ||
30 | #include "board.h" | 30 | #include "board.h" |
31 | #include "iomap.h" | 31 | #include "iomap.h" |
32 | #include "irq.h" | ||
32 | 33 | ||
33 | #define SGI_MASK 0xFFFF | 34 | #define SGI_MASK 0xFFFF |
34 | 35 | ||
diff --git a/arch/arm/mach-tegra/pm.h b/arch/arm/mach-tegra/pm.h index 83bc87583446..717b48f22912 100644 --- a/arch/arm/mach-tegra/pm.h +++ b/arch/arm/mach-tegra/pm.h | |||
@@ -36,7 +36,7 @@ void tegra30_sleep_core_init(void); | |||
36 | 36 | ||
37 | void tegra_clear_cpu_in_lp2(void); | 37 | void tegra_clear_cpu_in_lp2(void); |
38 | bool tegra_set_cpu_in_lp2(void); | 38 | bool tegra_set_cpu_in_lp2(void); |
39 | 39 | int tegra_cpu_do_idle(void); | |
40 | void tegra_idle_lp2_last(void); | 40 | void tegra_idle_lp2_last(void); |
41 | extern void (*tegra_tear_down_cpu)(void); | 41 | extern void (*tegra_tear_down_cpu)(void); |
42 | 42 | ||
diff --git a/arch/arm/mach-tegra/tegra.c b/arch/arm/mach-tegra/tegra.c index 6745a657d261..e01cbca196b5 100644 --- a/arch/arm/mach-tegra/tegra.c +++ b/arch/arm/mach-tegra/tegra.c | |||
@@ -118,32 +118,14 @@ out: | |||
118 | of_platform_default_populate(NULL, NULL, parent); | 118 | of_platform_default_populate(NULL, NULL, parent); |
119 | } | 119 | } |
120 | 120 | ||
121 | static void __init paz00_init(void) | ||
122 | { | ||
123 | if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC)) | ||
124 | tegra_paz00_wifikill_init(); | ||
125 | } | ||
126 | |||
127 | static struct { | ||
128 | char *machine; | ||
129 | void (*init)(void); | ||
130 | } board_init_funcs[] = { | ||
131 | { "compal,paz00", paz00_init }, | ||
132 | }; | ||
133 | |||
134 | static void __init tegra_dt_init_late(void) | 121 | static void __init tegra_dt_init_late(void) |
135 | { | 122 | { |
136 | int i; | ||
137 | |||
138 | tegra_init_suspend(); | 123 | tegra_init_suspend(); |
139 | tegra_cpuidle_init(); | 124 | tegra_cpuidle_init(); |
140 | 125 | ||
141 | for (i = 0; i < ARRAY_SIZE(board_init_funcs); i++) { | 126 | if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) && |
142 | if (of_machine_is_compatible(board_init_funcs[i].machine)) { | 127 | of_machine_is_compatible("compal,paz00")) |
143 | board_init_funcs[i].init(); | 128 | tegra_paz00_wifikill_init(); |
144 | break; | ||
145 | } | ||
146 | } | ||
147 | } | 129 | } |
148 | 130 | ||
149 | static const char * const tegra_dt_board_compat[] = { | 131 | static const char * const tegra_dt_board_compat[] = { |
diff --git a/arch/arm/mach-u300/Kconfig b/arch/arm/mach-u300/Kconfig index 4fdc3425ffbd..22dcbf5b76b2 100644 --- a/arch/arm/mach-u300/Kconfig +++ b/arch/arm/mach-u300/Kconfig | |||
@@ -1,11 +1,11 @@ | |||
1 | menuconfig ARCH_U300 | 1 | menuconfig ARCH_U300 |
2 | bool "ST-Ericsson U300 Series" | 2 | bool "ST-Ericsson U300 Series" |
3 | depends on ARCH_MULTI_V5 && MMU | 3 | depends on ARCH_MULTI_V5 && MMU |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select ARM_AMBA | 4 | select ARM_AMBA |
6 | select ARM_VIC | 5 | select ARM_VIC |
7 | select U300_TIMER | 6 | select U300_TIMER |
8 | select CPU_ARM926T | 7 | select CPU_ARM926T |
8 | select GPIOLIB | ||
9 | select HAVE_TCM | 9 | select HAVE_TCM |
10 | select PINCTRL | 10 | select PINCTRL |
11 | select PINCTRL_COH901 | 11 | select PINCTRL_COH901 |
diff --git a/arch/arm/mach-uniphier/platsmp.c b/arch/arm/mach-uniphier/platsmp.c index e802ca836ec7..9978c41128f6 100644 --- a/arch/arm/mach-uniphier/platsmp.c +++ b/arch/arm/mach-uniphier/platsmp.c | |||
@@ -101,21 +101,13 @@ static int __init uniphier_smp_prepare_trampoline(unsigned int max_cpus) | |||
101 | np = of_find_compatible_node(NULL, NULL, "socionext,uniphier-smpctrl"); | 101 | np = of_find_compatible_node(NULL, NULL, "socionext,uniphier-smpctrl"); |
102 | ret = of_address_to_resource(np, 0, &res); | 102 | ret = of_address_to_resource(np, 0, &res); |
103 | of_node_put(np); | 103 | of_node_put(np); |
104 | if (!ret) { | 104 | if (ret) { |
105 | rom_rsv2_phys = res.start + UNIPHIER_SMPCTRL_ROM_RSV2; | 105 | pr_err("failed to get resource of SMP control\n"); |
106 | } else { | 106 | return ret; |
107 | /* try old binding too */ | ||
108 | np = of_find_compatible_node(NULL, NULL, | ||
109 | "socionext,uniphier-system-bus-controller"); | ||
110 | ret = of_address_to_resource(np, 1, &res); | ||
111 | of_node_put(np); | ||
112 | if (ret) { | ||
113 | pr_err("failed to get resource of SMP control\n"); | ||
114 | return ret; | ||
115 | } | ||
116 | rom_rsv2_phys = res.start + 0x1000 + UNIPHIER_SMPCTRL_ROM_RSV2; | ||
117 | } | 107 | } |
118 | 108 | ||
109 | rom_rsv2_phys = res.start + UNIPHIER_SMPCTRL_ROM_RSV2; | ||
110 | |||
119 | ret = uniphier_smp_copy_trampoline(rom_rsv2_phys); | 111 | ret = uniphier_smp_copy_trampoline(rom_rsv2_phys); |
120 | if (ret) | 112 | if (ret) |
121 | return ret; | 113 | return ret; |
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig index 3185081bdb2c..4740ac393297 100644 --- a/arch/arm/mach-ux500/Kconfig +++ b/arch/arm/mach-ux500/Kconfig | |||
@@ -3,13 +3,13 @@ menuconfig ARCH_U8500 | |||
3 | depends on ARCH_MULTI_V7 && MMU | 3 | depends on ARCH_MULTI_V7 && MMU |
4 | select AB8500_CORE | 4 | select AB8500_CORE |
5 | select ABX500_CORE | 5 | select ABX500_CORE |
6 | select ARCH_REQUIRE_GPIOLIB | ||
7 | select ARM_AMBA | 6 | select ARM_AMBA |
8 | select ARM_ERRATA_754322 | 7 | select ARM_ERRATA_754322 |
9 | select ARM_ERRATA_764369 if SMP | 8 | select ARM_ERRATA_764369 if SMP |
10 | select ARM_GIC | 9 | select ARM_GIC |
11 | select CACHE_L2X0 | 10 | select CACHE_L2X0 |
12 | select CLKSRC_NOMADIK_MTU | 11 | select CLKSRC_NOMADIK_MTU |
12 | select GPIOLIB | ||
13 | select HAVE_ARM_SCU if SMP | 13 | select HAVE_ARM_SCU if SMP |
14 | select HAVE_ARM_TWD if SMP | 14 | select HAVE_ARM_TWD if SMP |
15 | select PINCTRL | 15 | select PINCTRL |
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig index 398a297b7e09..7c728ebc0b33 100644 --- a/arch/arm/mach-vexpress/Kconfig +++ b/arch/arm/mach-vexpress/Kconfig | |||
@@ -1,13 +1,13 @@ | |||
1 | menuconfig ARCH_VEXPRESS | 1 | menuconfig ARCH_VEXPRESS |
2 | bool "ARM Ltd. Versatile Express family" | 2 | bool "ARM Ltd. Versatile Express family" |
3 | depends on ARCH_MULTI_V7 | 3 | depends on ARCH_MULTI_V7 |
4 | select ARCH_REQUIRE_GPIOLIB | ||
5 | select ARCH_SUPPORTS_BIG_ENDIAN | 4 | select ARCH_SUPPORTS_BIG_ENDIAN |
6 | select ARM_AMBA | 5 | select ARM_AMBA |
7 | select ARM_GIC | 6 | select ARM_GIC |
8 | select ARM_GLOBAL_TIMER | 7 | select ARM_GLOBAL_TIMER |
9 | select ARM_TIMER_SP804 | 8 | select ARM_TIMER_SP804 |
10 | select COMMON_CLK_VERSATILE | 9 | select COMMON_CLK_VERSATILE |
10 | select GPIOLIB | ||
11 | select HAVE_ARM_SCU if SMP | 11 | select HAVE_ARM_SCU if SMP |
12 | select HAVE_ARM_TWD if SMP | 12 | select HAVE_ARM_TWD if SMP |
13 | select HAVE_PATA_PLATFORM | 13 | select HAVE_PATA_PLATFORM |
diff --git a/arch/arm/mach-vexpress/hotplug.c b/arch/arm/mach-vexpress/hotplug.c index f2fafc10a91d..d8f1a05f5e87 100644 --- a/arch/arm/mach-vexpress/hotplug.c +++ b/arch/arm/mach-vexpress/hotplug.c | |||
@@ -15,6 +15,8 @@ | |||
15 | #include <asm/smp_plat.h> | 15 | #include <asm/smp_plat.h> |
16 | #include <asm/cp15.h> | 16 | #include <asm/cp15.h> |
17 | 17 | ||
18 | #include "core.h" | ||
19 | |||
18 | static inline void cpu_enter_lowpower(void) | 20 | static inline void cpu_enter_lowpower(void) |
19 | { | 21 | { |
20 | unsigned int v; | 22 | unsigned int v; |
diff --git a/arch/arm/mach-vexpress/spc.c b/arch/arm/mach-vexpress/spc.c index 8409cab3f760..fe488523694c 100644 --- a/arch/arm/mach-vexpress/spc.c +++ b/arch/arm/mach-vexpress/spc.c | |||
@@ -31,6 +31,8 @@ | |||
31 | 31 | ||
32 | #include <asm/cacheflush.h> | 32 | #include <asm/cacheflush.h> |
33 | 33 | ||
34 | #include "spc.h" | ||
35 | |||
34 | #define SPCLOG "vexpress-spc: " | 36 | #define SPCLOG "vexpress-spc: " |
35 | 37 | ||
36 | #define PERF_LVL_A15 0x00 | 38 | #define PERF_LVL_A15 0x00 |
@@ -319,17 +321,15 @@ static int ve_spc_waitforcompletion(int req_type) | |||
319 | 321 | ||
320 | static int ve_spc_set_performance(int cluster, u32 freq) | 322 | static int ve_spc_set_performance(int cluster, u32 freq) |
321 | { | 323 | { |
322 | u32 perf_cfg_reg, perf_stat_reg; | 324 | u32 perf_cfg_reg; |
323 | int ret, perf, req_type; | 325 | int ret, perf, req_type; |
324 | 326 | ||
325 | if (cluster_is_a15(cluster)) { | 327 | if (cluster_is_a15(cluster)) { |
326 | req_type = CA15_DVFS; | 328 | req_type = CA15_DVFS; |
327 | perf_cfg_reg = PERF_LVL_A15; | 329 | perf_cfg_reg = PERF_LVL_A15; |
328 | perf_stat_reg = PERF_REQ_A15; | ||
329 | } else { | 330 | } else { |
330 | req_type = CA7_DVFS; | 331 | req_type = CA7_DVFS; |
331 | perf_cfg_reg = PERF_LVL_A7; | 332 | perf_cfg_reg = PERF_LVL_A7; |
332 | perf_stat_reg = PERF_REQ_A7; | ||
333 | } | 333 | } |
334 | 334 | ||
335 | perf = ve_spc_find_performance_index(cluster, freq); | 335 | perf = ve_spc_find_performance_index(cluster, freq); |
diff --git a/arch/arm/mach-vt8500/Kconfig b/arch/arm/mach-vt8500/Kconfig index aaaa24fe4d71..c4f1dba7bd8a 100644 --- a/arch/arm/mach-vt8500/Kconfig +++ b/arch/arm/mach-vt8500/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config ARCH_VT8500 | 1 | config ARCH_VT8500 |
2 | bool | 2 | bool |
3 | select ARCH_REQUIRE_GPIOLIB | 3 | select GPIOLIB |
4 | select CLKDEV_LOOKUP | 4 | select CLKDEV_LOOKUP |
5 | select VT8500_TIMER | 5 | select VT8500_TIMER |
6 | select PINCTRL | 6 | select PINCTRL |
diff --git a/arch/arm/plat-iop/setup.c b/arch/arm/plat-iop/setup.c index 5b217f460f18..8151bde990e6 100644 --- a/arch/arm/plat-iop/setup.c +++ b/arch/arm/plat-iop/setup.c | |||
@@ -20,12 +20,12 @@ | |||
20 | * the IOP3xx OCCDR must be mapped uncached and unbuffered. | 20 | * the IOP3xx OCCDR must be mapped uncached and unbuffered. |
21 | */ | 21 | */ |
22 | static struct map_desc iop3xx_std_desc[] __initdata = { | 22 | static struct map_desc iop3xx_std_desc[] __initdata = { |
23 | { /* mem mapped registers */ | 23 | { /* mem mapped registers */ |
24 | .virtual = IOP3XX_PERIPHERAL_VIRT_BASE, | 24 | .virtual = IOP3XX_PERIPHERAL_VIRT_BASE, |
25 | .pfn = __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE), | 25 | .pfn = __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE), |
26 | .length = IOP3XX_PERIPHERAL_SIZE, | 26 | .length = IOP3XX_PERIPHERAL_SIZE, |
27 | .type = MT_UNCACHED, | 27 | .type = MT_UNCACHED, |
28 | }, | 28 | }, |
29 | }; | 29 | }; |
30 | 30 | ||
31 | void __init iop3xx_map_io(void) | 31 | void __init iop3xx_map_io(void) |
diff --git a/arch/arm/plat-samsung/include/plat/cpu-freq-core.h b/arch/arm/plat-samsung/include/plat/cpu-freq-core.h index 317c52303288..37cf20e04aff 100644 --- a/arch/arm/plat-samsung/include/plat/cpu-freq-core.h +++ b/arch/arm/plat-samsung/include/plat/cpu-freq-core.h | |||
@@ -39,7 +39,7 @@ struct s3c2410_iobank_timing { | |||
39 | unsigned int tacs; | 39 | unsigned int tacs; |
40 | unsigned int tcos; | 40 | unsigned int tcos; |
41 | unsigned int tacc; | 41 | unsigned int tacc; |
42 | unsigned int tcoh; /* nCS hold afrer nOE/nWE */ | 42 | unsigned int tcoh; /* nCS hold after nOE/nWE */ |
43 | unsigned int tcah; /* Address hold after nCS */ | 43 | unsigned int tcah; /* Address hold after nCS */ |
44 | unsigned char nwait_en; /* nWait enabled for bank. */ | 44 | unsigned char nwait_en; /* nWait enabled for bank. */ |
45 | }; | 45 | }; |
diff --git a/arch/arm/plat-samsung/include/plat/fb-s3c2410.h b/arch/arm/plat-samsung/include/plat/fb-s3c2410.h index 4e5d9588b5ba..1f2972a74e9f 100644 --- a/arch/arm/plat-samsung/include/plat/fb-s3c2410.h +++ b/arch/arm/plat-samsung/include/plat/fb-s3c2410.h | |||
@@ -48,7 +48,7 @@ struct s3c2410fb_display { | |||
48 | 48 | ||
49 | struct s3c2410fb_mach_info { | 49 | struct s3c2410fb_mach_info { |
50 | 50 | ||
51 | struct s3c2410fb_display *displays; /* attached diplays info */ | 51 | struct s3c2410fb_display *displays; /* attached displays info */ |
52 | unsigned num_displays; /* number of defined displays */ | 52 | unsigned num_displays; /* number of defined displays */ |
53 | unsigned default_display; | 53 | unsigned default_display; |
54 | 54 | ||
diff --git a/arch/arm/plat-samsung/include/plat/gpio-cfg.h b/arch/arm/plat-samsung/include/plat/gpio-cfg.h index b5294eff18b5..21391faab068 100644 --- a/arch/arm/plat-samsung/include/plat/gpio-cfg.h +++ b/arch/arm/plat-samsung/include/plat/gpio-cfg.h | |||
@@ -35,7 +35,7 @@ struct samsung_gpio_chip; | |||
35 | * struct samsung_gpio_cfg GPIO configuration | 35 | * struct samsung_gpio_cfg GPIO configuration |
36 | * @cfg_eint: Configuration setting when used for external interrupt source | 36 | * @cfg_eint: Configuration setting when used for external interrupt source |
37 | * @get_pull: Read the current pull configuration for the GPIO | 37 | * @get_pull: Read the current pull configuration for the GPIO |
38 | * @set_pull: Set the current pull configuraiton for the GPIO | 38 | * @set_pull: Set the current pull configuration for the GPIO |
39 | * @set_config: Set the current configuration for the GPIO | 39 | * @set_config: Set the current configuration for the GPIO |
40 | * @get_config: Read the current configuration for the GPIO | 40 | * @get_config: Read the current configuration for the GPIO |
41 | * | 41 | * |
diff --git a/arch/arm/plat-samsung/pm-check.c b/arch/arm/plat-samsung/pm-check.c index 70f2f699bed3..d63516374f7c 100644 --- a/arch/arm/plat-samsung/pm-check.c +++ b/arch/arm/plat-samsung/pm-check.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * http://armlinux.simtec.co.uk | 5 | * http://armlinux.simtec.co.uk |
6 | * Ben Dooks <ben@simtec.co.uk> | 6 | * Ben Dooks <ben@simtec.co.uk> |
7 | * | 7 | * |
8 | * S3C Power Mangament - suspend/resume memory corruptiuon check. | 8 | * S3C Power Mangament - suspend/resume memory corruption check. |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
11 | * it under the terms of the GNU General Public License version 2 as | 11 | * it under the terms of the GNU General Public License version 2 as |
diff --git a/arch/arm/plat-samsung/watchdog-reset.c b/arch/arm/plat-samsung/watchdog-reset.c index 2ecb50bea044..307d8ad96a78 100644 --- a/arch/arm/plat-samsung/watchdog-reset.c +++ b/arch/arm/plat-samsung/watchdog-reset.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * Copyright (c) 2008 Simtec Electronics | 3 | * Copyright (c) 2008 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * Coyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com> | 6 | * Copyright (c) 2013 Tomasz Figa <tomasz.figa@gmail.com> |
7 | * | 7 | * |
8 | * Watchdog reset support for Samsung SoCs. | 8 | * Watchdog reset support for Samsung SoCs. |
9 | * | 9 | * |
diff --git a/arch/arm/plat-versatile/platsmp.c b/arch/arm/plat-versatile/platsmp.c index 53feb90c840c..c2366510187a 100644 --- a/arch/arm/plat-versatile/platsmp.c +++ b/arch/arm/plat-versatile/platsmp.c | |||
@@ -18,6 +18,8 @@ | |||
18 | #include <asm/cacheflush.h> | 18 | #include <asm/cacheflush.h> |
19 | #include <asm/smp_plat.h> | 19 | #include <asm/smp_plat.h> |
20 | 20 | ||
21 | #include <plat/platsmp.h> | ||
22 | |||
21 | /* | 23 | /* |
22 | * Write pen_release in a way that is guaranteed to be visible to all | 24 | * Write pen_release in a way that is guaranteed to be visible to all |
23 | * observers, irrespective of whether they're taking part in coherency | 25 | * observers, irrespective of whether they're taking part in coherency |
diff --git a/drivers/bus/mvebu-mbus.c b/drivers/bus/mvebu-mbus.c index ce54a0160faa..c7f396903184 100644 --- a/drivers/bus/mvebu-mbus.c +++ b/drivers/bus/mvebu-mbus.c | |||
@@ -117,7 +117,7 @@ struct mvebu_mbus_soc_data { | |||
117 | unsigned int (*win_remap_offset)(const int win); | 117 | unsigned int (*win_remap_offset)(const int win); |
118 | void (*setup_cpu_target)(struct mvebu_mbus_state *s); | 118 | void (*setup_cpu_target)(struct mvebu_mbus_state *s); |
119 | int (*save_cpu_target)(struct mvebu_mbus_state *s, | 119 | int (*save_cpu_target)(struct mvebu_mbus_state *s, |
120 | u32 *store_addr); | 120 | u32 __iomem *store_addr); |
121 | int (*show_cpu_target)(struct mvebu_mbus_state *s, | 121 | int (*show_cpu_target)(struct mvebu_mbus_state *s, |
122 | struct seq_file *seq, void *v); | 122 | struct seq_file *seq, void *v); |
123 | }; | 123 | }; |
@@ -728,7 +728,7 @@ mvebu_mbus_default_setup_cpu_target(struct mvebu_mbus_state *mbus) | |||
728 | 728 | ||
729 | static int | 729 | static int |
730 | mvebu_mbus_default_save_cpu_target(struct mvebu_mbus_state *mbus, | 730 | mvebu_mbus_default_save_cpu_target(struct mvebu_mbus_state *mbus, |
731 | u32 *store_addr) | 731 | u32 __iomem *store_addr) |
732 | { | 732 | { |
733 | int i; | 733 | int i; |
734 | 734 | ||
@@ -780,7 +780,7 @@ mvebu_mbus_dove_setup_cpu_target(struct mvebu_mbus_state *mbus) | |||
780 | 780 | ||
781 | static int | 781 | static int |
782 | mvebu_mbus_dove_save_cpu_target(struct mvebu_mbus_state *mbus, | 782 | mvebu_mbus_dove_save_cpu_target(struct mvebu_mbus_state *mbus, |
783 | u32 *store_addr) | 783 | u32 __iomem *store_addr) |
784 | { | 784 | { |
785 | int i; | 785 | int i; |
786 | 786 | ||
@@ -796,7 +796,7 @@ mvebu_mbus_dove_save_cpu_target(struct mvebu_mbus_state *mbus, | |||
796 | return 4; | 796 | return 4; |
797 | } | 797 | } |
798 | 798 | ||
799 | int mvebu_mbus_save_cpu_target(u32 *store_addr) | 799 | int mvebu_mbus_save_cpu_target(u32 __iomem *store_addr) |
800 | { | 800 | { |
801 | return mbus_state.soc->save_cpu_target(&mbus_state, store_addr); | 801 | return mbus_state.soc->save_cpu_target(&mbus_state, store_addr); |
802 | } | 802 | } |
@@ -1089,7 +1089,7 @@ static void mvebu_mbus_resume(void) | |||
1089 | } | 1089 | } |
1090 | } | 1090 | } |
1091 | 1091 | ||
1092 | struct syscore_ops mvebu_mbus_syscore_ops = { | 1092 | static struct syscore_ops mvebu_mbus_syscore_ops = { |
1093 | .suspend = mvebu_mbus_suspend, | 1093 | .suspend = mvebu_mbus_suspend, |
1094 | .resume = mvebu_mbus_resume, | 1094 | .resume = mvebu_mbus_resume, |
1095 | }; | 1095 | }; |
diff --git a/drivers/power/reset/vexpress-poweroff.c b/drivers/power/reset/vexpress-poweroff.c index 6a9bf7089373..102f95a09460 100644 --- a/drivers/power/reset/vexpress-poweroff.c +++ b/drivers/power/reset/vexpress-poweroff.c | |||
@@ -74,8 +74,8 @@ static ssize_t vexpress_reset_active_store(struct device *dev, | |||
74 | return err ? err : count; | 74 | return err ? err : count; |
75 | } | 75 | } |
76 | 76 | ||
77 | DEVICE_ATTR(active, S_IRUGO | S_IWUSR, vexpress_reset_active_show, | 77 | static DEVICE_ATTR(active, S_IRUGO | S_IWUSR, vexpress_reset_active_show, |
78 | vexpress_reset_active_store); | 78 | vexpress_reset_active_store); |
79 | 79 | ||
80 | 80 | ||
81 | enum vexpress_reset_func { FUNC_RESET, FUNC_SHUTDOWN, FUNC_REBOOT }; | 81 | enum vexpress_reset_func { FUNC_RESET, FUNC_SHUTDOWN, FUNC_REBOOT }; |
diff --git a/include/linux/mbus.h b/include/linux/mbus.h index ea34a867caa0..d610232762e3 100644 --- a/include/linux/mbus.h +++ b/include/linux/mbus.h | |||
@@ -66,7 +66,7 @@ static inline const struct mbus_dram_target_info *mv_mbus_dram_info_nooverlap(vo | |||
66 | } | 66 | } |
67 | #endif | 67 | #endif |
68 | 68 | ||
69 | int mvebu_mbus_save_cpu_target(u32 *store_addr); | 69 | int mvebu_mbus_save_cpu_target(u32 __iomem *store_addr); |
70 | void mvebu_mbus_get_pcie_mem_aperture(struct resource *res); | 70 | void mvebu_mbus_get_pcie_mem_aperture(struct resource *res); |
71 | void mvebu_mbus_get_pcie_io_aperture(struct resource *res); | 71 | void mvebu_mbus_get_pcie_io_aperture(struct resource *res); |
72 | int mvebu_mbus_get_dram_win_info(phys_addr_t phyaddr, u8 *target, u8 *attr); | 72 | int mvebu_mbus_get_dram_win_info(phys_addr_t phyaddr, u8 *target, u8 *attr); |