arm: omap: remove the unused omap_gpio_set_debounce methods
[safe/jmp/linux-2.6] / arch / arm / Kconfig
index ef4f860..1f254bd 100644 (file)
@@ -12,12 +12,18 @@ config ARM
        select HAVE_IDE
        select RTC_LIB
        select SYS_SUPPORTS_APM_EMULATION
-       select HAVE_OPROFILE
+       select GENERIC_ATOMIC64 if (!CPU_32v6K)
+       select HAVE_OPROFILE if (HAVE_PERF_EVENTS)
        select HAVE_ARCH_KGDB
        select HAVE_KPROBES if (!XIP_KERNEL)
        select HAVE_KRETPROBES if (HAVE_KPROBES)
        select HAVE_FUNCTION_TRACER if (!XIP_KERNEL)
        select HAVE_GENERIC_DMA_COHERENT
+       select HAVE_KERNEL_GZIP
+       select HAVE_KERNEL_LZO
+       select HAVE_KERNEL_LZMA
+       select HAVE_PERF_EVENTS
+       select PERF_USE_VMALLOC
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@ -34,28 +40,32 @@ config SYS_SUPPORTS_APM_EMULATION
 
 config GENERIC_GPIO
        bool
-       default n
 
 config GENERIC_TIME
        bool
+       default y
+
+config ARCH_USES_GETTIMEOFFSET
+       bool
        default n
 
 config GENERIC_CLOCKEVENTS
        bool
-       default n
 
 config GENERIC_CLOCKEVENTS_BROADCAST
        bool
        depends on GENERIC_CLOCKEVENTS
        default y if SMP && !LOCAL_TIMERS
 
-config MMU
+config HAVE_TCM
+       bool
+       select GENERIC_ALLOCATOR
+
+config HAVE_PROC_CPU
        bool
-       default y
 
 config NO_IOPORT
        bool
-       default n
 
 config EISA
        bool
@@ -126,11 +136,16 @@ config RWSEM_XCHGADD_ALGORITHM
 
 config ARCH_HAS_ILOG2_U32
        bool
-       default n
 
 config ARCH_HAS_ILOG2_U64
        bool
-       default n
+
+config ARCH_HAS_CPUFREQ
+       bool
+       help
+         Internal node to signify that the ARCH has CPUFREQ support
+         and that the relevant menu configurations are displayed for
+         it.
 
 config GENERIC_HWEIGHT
        bool
@@ -146,6 +161,9 @@ config ARCH_MAY_HAVE_PC_FDC
 config ZONE_DMA
        bool
 
+config NEED_DMA_MAP_STATE
+       def_bool y
+
 config GENERIC_ISA_DMA
        bool
 
@@ -158,27 +176,10 @@ config ARCH_MTD_XIP
 config GENERIC_HARDIRQS_NO__DO_IRQ
        def_bool y
 
-if OPROFILE
-
-config OPROFILE_ARMV6
-       def_bool y
-       depends on CPU_V6 && !SMP
-       select OPROFILE_ARM11_CORE
-
-config OPROFILE_MPCORE
-       def_bool y
-       depends on CPU_V6 && SMP
-       select OPROFILE_ARM11_CORE
-
-config OPROFILE_ARM11_CORE
-       bool
-
-config OPROFILE_ARMV7
-       def_bool y
-       depends on CPU_V7 && !SMP
+config ARM_L1_CACHE_SHIFT_6
        bool
-
-endif
+       help
+         Setting ARM L1 cache line size to 64 Bytes.
 
 config VECTORS_BASE
        hex
@@ -194,6 +195,17 @@ source "kernel/Kconfig.freezer"
 
 menu "System Type"
 
+config MMU
+       bool "MMU-based Paged Memory Management Support"
+       default y
+       help
+         Select if you want MMU-based virtualised addressing space
+         support by paged memory management. If unsure, say 'Y'.
+
+#
+# The "ARM system type" choice list is ordered alphabetically by option
+# text.  Please add new entries in the option alphabetic order.
+#
 choice
        prompt "ARM system type"
        default ARCH_VERSATILE
@@ -203,26 +215,31 @@ config ARCH_AAEC2000
        select CPU_ARM920T
        select ARM_AMBA
        select HAVE_CLK
+       select ARCH_USES_GETTIMEOFFSET
        help
          This enables support for systems based on the Agilent AAEC-2000
 
 config ARCH_INTEGRATOR
        bool "ARM Ltd. Integrator family"
        select ARM_AMBA
-       select HAVE_CLK
+       select ARCH_HAS_CPUFREQ
        select COMMON_CLKDEV
-       select ICST525
+       select ICST
+       select GENERIC_CLOCKEVENTS
+       select PLAT_VERSATILE
        help
          Support for ARM's Integrator platform.
 
 config ARCH_REALVIEW
        bool "ARM Ltd. RealView family"
        select ARM_AMBA
-       select HAVE_CLK
        select COMMON_CLKDEV
-       select ICST307
-       select GENERIC_TIME
+       select ICST
        select GENERIC_CLOCKEVENTS
+       select ARCH_WANT_OPTIONAL_GPIOLIB
+       select PLAT_VERSATILE
+       select ARM_TIMER_SP804
+       select GPIO_PL061 if GPIOLIB
        help
          This enables support for ARM Ltd RealView boards.
 
@@ -230,34 +247,77 @@ config ARCH_VERSATILE
        bool "ARM Ltd. Versatile family"
        select ARM_AMBA
        select ARM_VIC
-       select HAVE_CLK
        select COMMON_CLKDEV
-       select ICST307
-       select GENERIC_TIME
+       select ICST
        select GENERIC_CLOCKEVENTS
+       select ARCH_WANT_OPTIONAL_GPIOLIB
+       select PLAT_VERSATILE
+       select ARM_TIMER_SP804
        help
          This enables support for ARM Ltd Versatile board.
 
+config ARCH_VEXPRESS
+       bool "ARM Ltd. Versatile Express family"
+       select ARCH_WANT_OPTIONAL_GPIOLIB
+       select ARM_AMBA
+       select ARM_TIMER_SP804
+       select COMMON_CLKDEV
+       select GENERIC_CLOCKEVENTS
+       select HAVE_CLK
+       select ICST
+       select PLAT_VERSATILE
+       help
+         This enables support for the ARM Ltd Versatile Express boards.
+
 config ARCH_AT91
        bool "Atmel AT91"
-       select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
        select HAVE_CLK
+       select ARCH_USES_GETTIMEOFFSET
        help
          This enables support for systems based on the Atmel AT91RM9200,
          AT91SAM9 and AT91CAP9 processors.
 
+config ARCH_BCMRING
+       bool "Broadcom BCMRING"
+       depends on MMU
+       select CPU_V6
+       select ARM_AMBA
+       select COMMON_CLKDEV
+       select GENERIC_CLOCKEVENTS
+       select ARCH_WANT_OPTIONAL_GPIOLIB
+       help
+         Support for Broadcom's BCMRing platform.
+
 config ARCH_CLPS711X
        bool "Cirrus Logic CLPS711x/EP721x-based"
        select CPU_ARM720T
+       select ARCH_USES_GETTIMEOFFSET
        help
          Support for Cirrus Logic 711x/721x based boards.
 
+config ARCH_CNS3XXX
+       bool "Cavium Networks CNS3XXX family"
+       select CPU_V6
+       select GENERIC_CLOCKEVENTS
+       select ARM_GIC
+       help
+         Support for Cavium Networks CNS3XXX platform.
+
+config ARCH_GEMINI
+       bool "Cortina Systems Gemini"
+       select CPU_FA526
+       select ARCH_REQUIRE_GPIOLIB
+       select ARCH_USES_GETTIMEOFFSET
+       help
+         Support for the Cortina Systems Gemini family SoCs
+
 config ARCH_EBSA110
        bool "EBSA-110"
        select CPU_SA110
        select ISA
        select NO_IOPORT
+       select ARCH_USES_GETTIMEOFFSET
        help
          This is an evaluation board for the StrongARM processor available
          from Digital. It has limited hardware on-board, including an
@@ -269,35 +329,45 @@ config ARCH_EP93XX
        select CPU_ARM920T
        select ARM_AMBA
        select ARM_VIC
-       select GENERIC_GPIO
-       select HAVE_CLK
        select COMMON_CLKDEV
        select ARCH_REQUIRE_GPIOLIB
+       select ARCH_HAS_HOLES_MEMORYMODEL
+       select ARCH_USES_GETTIMEOFFSET
        help
          This enables support for the Cirrus EP93xx series of CPUs.
 
-config ARCH_GEMINI
-       bool "Cortina Systems Gemini"
-       select CPU_FA526
-       select GENERIC_GPIO
-       select ARCH_REQUIRE_GPIOLIB
-       help
-         Support for the Cortina Systems Gemini family SoCs
-
 config ARCH_FOOTBRIDGE
        bool "FootBridge"
        select CPU_SA110
        select FOOTBRIDGE
+       select ARCH_USES_GETTIMEOFFSET
        help
          Support for systems based on the DC21285 companion chip
          ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
 
+config ARCH_MXC
+       bool "Freescale MXC/iMX-based"
+       select GENERIC_CLOCKEVENTS
+       select ARCH_REQUIRE_GPIOLIB
+       select COMMON_CLKDEV
+       help
+         Support for Freescale MXC/iMX-based family of processors
+
+config ARCH_STMP3XXX
+       bool "Freescale STMP3xxx"
+       select CPU_ARM926T
+       select COMMON_CLKDEV
+       select ARCH_REQUIRE_GPIOLIB
+       select GENERIC_CLOCKEVENTS
+       select USB_ARCH_HAS_EHCI
+       help
+         Support for systems based on the Freescale 3xxx CPUs.
+
 config ARCH_NETX
        bool "Hilscher NetX based"
        select CPU_ARM926T
        select ARM_VIC
        select GENERIC_CLOCKEVENTS
-       select GENERIC_TIME
        help
          This enables support for systems based on the Hilscher NetX Soc
 
@@ -305,18 +375,10 @@ config ARCH_H720X
        bool "Hynix HMS720x-based"
        select CPU_ARM720T
        select ISA_DMA_API
+       select ARCH_USES_GETTIMEOFFSET
        help
          This enables support for systems based on the Hynix HMS720x
 
-config ARCH_IMX
-       bool "IMX"
-       select CPU_ARM920T
-       select GENERIC_GPIO
-       select GENERIC_TIME
-       select GENERIC_CLOCKEVENTS
-       help
-         Support for Motorola's i.MX family of processors (MX1, MXL).
-
 config ARCH_IOP13XX
        bool "IOP13xx-based"
        depends on MMU
@@ -334,7 +396,6 @@ config ARCH_IOP32X
        select CPU_XSCALE
        select PLAT_IOP
        select PCI
-       select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
        help
          Support for Intel's 80219 and IOP32X (XScale) family of
@@ -346,7 +407,6 @@ config ARCH_IOP33X
        select CPU_XSCALE
        select PLAT_IOP
        select PCI
-       select GENERIC_GPIO
        select ARCH_REQUIRE_GPIOLIB
        help
          Support for Intel's IOP33X (XScale) family of processors.
@@ -356,6 +416,7 @@ config ARCH_IXP23XX
        depends on MMU
        select CPU_XSC3
        select PCI
+       select ARCH_USES_GETTIMEOFFSET
        help
          Support for Intel's IXP23xx (XScale) family of processors.
 
@@ -364,6 +425,7 @@ config ARCH_IXP2000
        depends on MMU
        select CPU_XSCALE
        select PCI
+       select ARCH_USES_GETTIMEOFFSET
        help
          Support for Intel's IXP2400/2800 (XScale) family of processors.
 
@@ -372,7 +434,6 @@ config ARCH_IXP4XX
        depends on MMU
        select CPU_XSCALE
        select GENERIC_GPIO
-       select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
        select DMABOUNCE if PCI
        help
@@ -382,6 +443,7 @@ config ARCH_L7200
        bool "LinkUp-L7200"
        select CPU_ARM720T
        select FIQ
+       select ARCH_USES_GETTIMEOFFSET
        help
          Say Y here if you intend to run this kernel on a LinkUp Systems
          L7200 Software Development Board which uses an ARM720T processor.
@@ -392,44 +454,29 @@ config ARCH_L7200
          If you have any questions or comments about the Linux kernel port
          to this board, send e-mail to <sjhill@cotw.com>.
 
+config ARCH_DOVE
+       bool "Marvell Dove"
+       select PCI
+       select ARCH_REQUIRE_GPIOLIB
+       select GENERIC_CLOCKEVENTS
+       select PLAT_ORION
+       help
+         Support for the Marvell Dove SoC 88AP510
+
 config ARCH_KIRKWOOD
        bool "Marvell Kirkwood"
        select CPU_FEROCEON
        select PCI
-       select GENERIC_GPIO
-       select GENERIC_TIME
+       select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
        select PLAT_ORION
        help
          Support for the following Marvell Kirkwood series SoCs:
          88F6180, 88F6192 and 88F6281.
 
-config ARCH_KS8695
-       bool "Micrel/Kendin KS8695"
-       select CPU_ARM922T
-       select GENERIC_GPIO
-        select ARCH_REQUIRE_GPIOLIB
-       help
-         Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
-         System-on-Chip devices.
-
-config ARCH_NS9XXX
-       bool "NetSilicon NS9xxx"
-       select CPU_ARM926T
-       select GENERIC_GPIO
-       select GENERIC_TIME
-       select GENERIC_CLOCKEVENTS
-       select HAVE_CLK
-       help
-         Say Y here if you intend to run this kernel on a NetSilicon NS9xxx
-         System.
-
-         <http://www.digi.com/products/microprocessors/index.jsp>
-
 config ARCH_LOKI
        bool "Marvell Loki (88RC8480)"
        select CPU_FEROCEON
-       select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
        select PLAT_ORION
        help
@@ -439,32 +486,19 @@ config ARCH_MV78XX0
        bool "Marvell MV78xx0"
        select CPU_FEROCEON
        select PCI
-       select GENERIC_GPIO
-       select GENERIC_TIME
+       select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
        select PLAT_ORION
        help
          Support for the following Marvell MV78xx0 series SoCs:
          MV781x0, MV782x0.
 
-config ARCH_MXC
-       bool "Freescale MXC/iMX-based"
-       select GENERIC_TIME
-       select GENERIC_CLOCKEVENTS
-       select ARCH_MTD_XIP
-       select GENERIC_GPIO
-       select ARCH_REQUIRE_GPIOLIB
-       select HAVE_CLK
-       help
-         Support for Freescale MXC/iMX-based family of processors
-
 config ARCH_ORION5X
        bool "Marvell Orion"
        depends on MMU
        select CPU_FEROCEON
        select PCI
-       select GENERIC_GPIO
-       select GENERIC_TIME
+       select ARCH_REQUIRE_GPIOLIB
        select GENERIC_CLOCKEVENTS
        select PLAT_ORION
        help
@@ -472,10 +506,66 @@ config ARCH_ORION5X
          Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
          Orion-2 (5281), Orion-1-90 (6183).
 
+config ARCH_MMP
+       bool "Marvell PXA168/910/MMP2"
+       depends on MMU
+       select ARCH_REQUIRE_GPIOLIB
+       select COMMON_CLKDEV
+       select GENERIC_CLOCKEVENTS
+       select TICK_ONESHOT
+       select PLAT_PXA
+       help
+         Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
+
+config ARCH_KS8695
+       bool "Micrel/Kendin KS8695"
+       select CPU_ARM922T
+       select ARCH_REQUIRE_GPIOLIB
+       select ARCH_USES_GETTIMEOFFSET
+       help
+         Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
+         System-on-Chip devices.
+
+config ARCH_NS9XXX
+       bool "NetSilicon NS9xxx"
+       select CPU_ARM926T
+       select GENERIC_GPIO
+       select GENERIC_CLOCKEVENTS
+       select HAVE_CLK
+       help
+         Say Y here if you intend to run this kernel on a NetSilicon NS9xxx
+         System.
+
+         <http://www.digi.com/products/microprocessors/index.jsp>
+
+config ARCH_W90X900
+       bool "Nuvoton W90X900 CPU"
+       select CPU_ARM926T
+       select ARCH_REQUIRE_GPIOLIB
+       select COMMON_CLKDEV
+       select GENERIC_CLOCKEVENTS
+       help
+         Support for Nuvoton (Winbond logic dept.) ARM9 processor,
+         At present, the w90x900 has been renamed nuc900, regarding
+         the ARM series product line, you can login the following
+         link address to know more.
+
+         <http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/
+               ConsumerElectronicsIC/ARMMicrocontroller/ARMMicrocontroller>
+
+config ARCH_NUC93X
+       bool "Nuvoton NUC93X CPU"
+       select CPU_ARM926T
+       select COMMON_CLKDEV
+       help
+         Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a
+         low-power and high performance MPEG-4/JPEG multimedia controller chip.
+
 config ARCH_PNX4008
        bool "Philips Nexperia PNX4008 Mobile"
        select CPU_ARM926T
-       select HAVE_CLK
+       select COMMON_CLKDEV
+       select ARCH_USES_GETTIMEOFFSET
        help
          This enables support for Philips PNX4008 mobile platform.
 
@@ -483,30 +573,30 @@ config ARCH_PXA
        bool "PXA2xx/PXA3xx-based"
        depends on MMU
        select ARCH_MTD_XIP
-       select GENERIC_GPIO
-       select HAVE_CLK
+       select ARCH_HAS_CPUFREQ
        select COMMON_CLKDEV
        select ARCH_REQUIRE_GPIOLIB
-       select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
        select TICK_ONESHOT
        select PLAT_PXA
        help
          Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
 
-config ARCH_MMP
-       bool "Marvell PXA168/910"
-       depends on MMU
-       select GENERIC_GPIO
-       select ARCH_REQUIRE_GPIOLIB
+config ARCH_MSM
+       bool "Qualcomm MSM"
        select HAVE_CLK
-       select COMMON_CLKDEV
-       select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
-       select TICK_ONESHOT
-       select PLAT_PXA
        help
-         Support for Marvell's PXA168/910 processor line.
+         Support for Qualcomm MSM/QSD based systems.  This runs on the
+         apps processor of the MSM/QSD and depends on a shared memory
+         interface to the modem processor which runs the baseband
+         stack and controls some vital subsystems
+         (clock and power control, etc).
+
+config ARCH_SHMOBILE
+       bool "Renesas SH-Mobile"
+       help
+         Support for Renesas's SH-Mobile ARM platforms
 
 config ARCH_RPC
        bool "RiscPC"
@@ -518,6 +608,7 @@ config ARCH_RPC
        select ISA_DMA_API
        select NO_IOPORT
        select ARCH_SPARSEMEM_ENABLE
+       select ARCH_USES_GETTIMEOFFSET
        help
          On the Acorn Risc-PC, Linux can support the internal IDE disk and
          CD-ROM interface, serial and parallel port, and the floppy drive.
@@ -528,8 +619,8 @@ config ARCH_SA1100
        select ISA
        select ARCH_SPARSEMEM_ENABLE
        select ARCH_MTD_XIP
-       select GENERIC_GPIO
-       select GENERIC_TIME
+       select ARCH_HAS_CPUFREQ
+       select CPU_FREQ
        select GENERIC_CLOCKEVENTS
        select HAVE_CLK
        select TICK_ONESHOT
@@ -538,21 +629,81 @@ config ARCH_SA1100
          Support for StrongARM 11x0 based boards.
 
 config ARCH_S3C2410
-       bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443"
+       bool "Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443, S3C2450"
        select GENERIC_GPIO
+       select ARCH_HAS_CPUFREQ
        select HAVE_CLK
+       select ARCH_USES_GETTIMEOFFSET
        help
          Samsung S3C2410X CPU based systems, such as the Simtec Electronics
          BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
          the Samsung SMDK2410 development board (and derivatives).
 
+         Note, the S3C2416 and the S3C2450 are so close that they even share
+         the same SoC ID code. This means that there is no seperate machine
+         directory (no arch/arm/mach-s3c2450) as the S3C2416 was first.
+
 config ARCH_S3C64XX
        bool "Samsung S3C64XX"
-       select GENERIC_GPIO
+       select PLAT_SAMSUNG
+       select CPU_V6
+       select ARM_VIC
        select HAVE_CLK
+       select NO_IOPORT
+       select ARCH_USES_GETTIMEOFFSET
+       select ARCH_HAS_CPUFREQ
+       select ARCH_REQUIRE_GPIOLIB
+       select SAMSUNG_CLKSRC
+       select SAMSUNG_IRQ_VIC_TIMER
+       select SAMSUNG_IRQ_UART
+       select S3C_GPIO_TRACK
+       select S3C_GPIO_PULL_UPDOWN
+       select S3C_GPIO_CFG_S3C24XX
+       select S3C_GPIO_CFG_S3C64XX
+       select S3C_DEV_NAND
+       select USB_ARCH_HAS_OHCI
+       select SAMSUNG_GPIOLIB_4BIT
        help
          Samsung S3C64XX series based systems
 
+config ARCH_S5P6440
+       bool "Samsung S5P6440"
+       select CPU_V6
+       select GENERIC_GPIO
+       select HAVE_CLK
+       select ARCH_USES_GETTIMEOFFSET
+       help
+         Samsung S5P6440 CPU based systems
+
+config ARCH_S5P6442
+       bool "Samsung S5P6442"
+       select CPU_V6
+       select GENERIC_GPIO
+       select HAVE_CLK
+       select ARCH_USES_GETTIMEOFFSET
+       help
+         Samsung S5P6442 CPU based systems
+
+config ARCH_S5PC100
+       bool "Samsung S5PC100"
+       select GENERIC_GPIO
+       select HAVE_CLK
+       select CPU_V7
+       select ARM_L1_CACHE_SHIFT_6
+       select ARCH_USES_GETTIMEOFFSET
+       help
+         Samsung S5PC100 series based systems
+
+config ARCH_S5PV210
+       bool "Samsung S5PV210/S5PC110"
+       select CPU_V7
+       select GENERIC_GPIO
+       select HAVE_CLK
+       select ARM_L1_CACHE_SHIFT_6
+       select ARCH_USES_GETTIMEOFFSET
+       help
+         Samsung S5PV210/S5PC110 series based systems
+
 config ARCH_SHARK
        bool "Shark"
        select CPU_SA110
@@ -560,6 +711,7 @@ config ARCH_SHARK
        select ISA_DMA
        select ZONE_DMA
        select PCI
+       select ARCH_USES_GETTIMEOFFSET
        help
          Support for the StrongARM based Digital DNARD machine, also known
          as "Shark" (<http://www.shark-linux.de/shark.html>).
@@ -569,64 +721,108 @@ config ARCH_LH7A40X
        select CPU_ARM922T
        select ARCH_DISCONTIGMEM_ENABLE if !LH7A40X_CONTIGMEM
        select ARCH_SPARSEMEM_ENABLE if !LH7A40X_CONTIGMEM
+       select ARCH_USES_GETTIMEOFFSET
        help
          Say Y here for systems based on one of the Sharp LH7A40X
          System on a Chip processors.  These CPUs include an ARM922T
          core with a wide array of integrated devices for
          hand-held and low-power applications.
 
-config ARCH_DAVINCI
-       bool "TI DaVinci"
+config ARCH_U300
+       bool "ST-Ericsson U300 Series"
+       depends on MMU
        select CPU_ARM926T
-       select GENERIC_TIME
+       select HAVE_TCM
+       select ARM_AMBA
+       select ARM_VIC
        select GENERIC_CLOCKEVENTS
+       select COMMON_CLKDEV
        select GENERIC_GPIO
+       help
+         Support for ST-Ericsson U300 series mobile platforms.
+
+config ARCH_U8500
+       bool "ST-Ericsson U8500 Series"
+       select CPU_V7
+       select ARM_AMBA
+       select GENERIC_CLOCKEVENTS
+       select COMMON_CLKDEV
+       select ARCH_REQUIRE_GPIOLIB
+       help
+         Support for ST-Ericsson's Ux500 architecture
+
+config ARCH_NOMADIK
+       bool "STMicroelectronics Nomadik"
+       select ARM_AMBA
+       select ARM_VIC
+       select CPU_ARM926T
+       select COMMON_CLKDEV
+       select GENERIC_CLOCKEVENTS
+       select ARCH_REQUIRE_GPIOLIB
+       help
+         Support for the Nomadik platform by ST-Ericsson
+
+config ARCH_DAVINCI
+       bool "TI DaVinci"
+       select GENERIC_CLOCKEVENTS
        select ARCH_REQUIRE_GPIOLIB
-       select HAVE_CLK
        select ZONE_DMA
        select HAVE_IDE
        select COMMON_CLKDEV
+       select GENERIC_ALLOCATOR
+       select ARCH_HAS_HOLES_MEMORYMODEL
        help
          Support for TI's DaVinci platform.
 
 config ARCH_OMAP
        bool "TI OMAP"
-       select GENERIC_GPIO
        select HAVE_CLK
        select ARCH_REQUIRE_GPIOLIB
-       select GENERIC_TIME
+       select ARCH_HAS_CPUFREQ
        select GENERIC_CLOCKEVENTS
+       select ARCH_HAS_HOLES_MEMORYMODEL
        help
          Support for TI's OMAP platform (OMAP1 and OMAP2).
 
-config ARCH_MSM
-       bool "Qualcomm MSM"
-       select CPU_V6
-       select GENERIC_TIME
+config PLAT_SPEAR
+       bool "ST SPEAr"
+       select ARM_AMBA
+       select ARCH_REQUIRE_GPIOLIB
+       select COMMON_CLKDEV
        select GENERIC_CLOCKEVENTS
+       select HAVE_CLK
        help
-         Support for Qualcomm MSM7K based systems.  This runs on the ARM11
-         apps processor of the MSM7K and depends on a shared memory
-         interface to the ARM9 modem processor which runs the baseband stack
-         and controls some vital subsystems (clock and power control, etc).
-
-config ARCH_W90X900
-       bool "Nuvoton W90X900 CPU"
-       select CPU_ARM926T
-       help
-               Support for Nuvoton (Winbond logic dept.) ARM9 processor,You
-               can login www.mcuos.com or www.nuvoton.com to know more.
+         Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx).
 
 endchoice
 
+#
+# This is sorted alphabetically by mach-* pathname.  However, plat-*
+# Kconfigs may be included either alphabetically (according to the
+# plat- suffix) or along side the corresponding mach-* source.
+#
+source "arch/arm/mach-aaec2000/Kconfig"
+
+source "arch/arm/mach-at91/Kconfig"
+
+source "arch/arm/mach-bcmring/Kconfig"
+
 source "arch/arm/mach-clps711x/Kconfig"
 
+source "arch/arm/mach-cns3xxx/Kconfig"
+
+source "arch/arm/mach-davinci/Kconfig"
+
+source "arch/arm/mach-dove/Kconfig"
+
 source "arch/arm/mach-ep93xx/Kconfig"
 
 source "arch/arm/mach-footbridge/Kconfig"
 
 source "arch/arm/mach-gemini/Kconfig"
 
+source "arch/arm/mach-h720x/Kconfig"
+
 source "arch/arm/mach-integrator/Kconfig"
 
 source "arch/arm/mach-iop32x/Kconfig"
@@ -641,16 +837,28 @@ source "arch/arm/mach-ixp2000/Kconfig"
 
 source "arch/arm/mach-ixp23xx/Kconfig"
 
+source "arch/arm/mach-kirkwood/Kconfig"
+
+source "arch/arm/mach-ks8695/Kconfig"
+
+source "arch/arm/mach-lh7a40x/Kconfig"
+
 source "arch/arm/mach-loki/Kconfig"
 
+source "arch/arm/mach-msm/Kconfig"
+
 source "arch/arm/mach-mv78xx0/Kconfig"
 
-source "arch/arm/mach-pxa/Kconfig"
-source "arch/arm/plat-pxa/Kconfig"
+source "arch/arm/plat-mxc/Kconfig"
 
-source "arch/arm/mach-mmp/Kconfig"
+source "arch/arm/mach-netx/Kconfig"
 
-source "arch/arm/mach-sa1100/Kconfig"
+source "arch/arm/mach-nomadik/Kconfig"
+source "arch/arm/plat-nomadik/Kconfig"
+
+source "arch/arm/mach-ns9xxx/Kconfig"
+
+source "arch/arm/mach-nuc93x/Kconfig"
 
 source "arch/arm/plat-omap/Kconfig"
 
@@ -660,51 +868,53 @@ source "arch/arm/mach-omap2/Kconfig"
 
 source "arch/arm/mach-orion5x/Kconfig"
 
-source "arch/arm/mach-kirkwood/Kconfig"
+source "arch/arm/mach-pxa/Kconfig"
+source "arch/arm/plat-pxa/Kconfig"
+
+source "arch/arm/mach-mmp/Kconfig"
+
+source "arch/arm/mach-realview/Kconfig"
 
+source "arch/arm/mach-sa1100/Kconfig"
+
+source "arch/arm/plat-samsung/Kconfig"
 source "arch/arm/plat-s3c24xx/Kconfig"
-source "arch/arm/plat-s3c64xx/Kconfig"
-source "arch/arm/plat-s3c/Kconfig"
+source "arch/arm/plat-s5p/Kconfig"
+
+source "arch/arm/plat-spear/Kconfig"
 
 if ARCH_S3C2410
 source "arch/arm/mach-s3c2400/Kconfig"
 source "arch/arm/mach-s3c2410/Kconfig"
 source "arch/arm/mach-s3c2412/Kconfig"
+source "arch/arm/mach-s3c2416/Kconfig"
 source "arch/arm/mach-s3c2440/Kconfig"
-source "arch/arm/mach-s3c2442/Kconfig"
 source "arch/arm/mach-s3c2443/Kconfig"
 endif
 
 if ARCH_S3C64XX
-source "arch/arm/mach-s3c6400/Kconfig"
-source "arch/arm/mach-s3c6410/Kconfig"
+source "arch/arm/mach-s3c64xx/Kconfig"
 endif
 
-source "arch/arm/mach-lh7a40x/Kconfig"
+source "arch/arm/mach-s5p6440/Kconfig"
 
-source "arch/arm/mach-imx/Kconfig"
+source "arch/arm/mach-s5p6442/Kconfig"
 
-source "arch/arm/mach-h720x/Kconfig"
+source "arch/arm/mach-s5pc100/Kconfig"
 
-source "arch/arm/mach-versatile/Kconfig"
+source "arch/arm/mach-s5pv210/Kconfig"
 
-source "arch/arm/mach-aaec2000/Kconfig"
-
-source "arch/arm/mach-realview/Kconfig"
-
-source "arch/arm/mach-at91/Kconfig"
-
-source "arch/arm/plat-mxc/Kconfig"
+source "arch/arm/mach-shmobile/Kconfig"
 
-source "arch/arm/mach-netx/Kconfig"
+source "arch/arm/plat-stmp3xxx/Kconfig"
 
-source "arch/arm/mach-ns9xxx/Kconfig"
+source "arch/arm/mach-u300/Kconfig"
 
-source "arch/arm/mach-davinci/Kconfig"
+source "arch/arm/mach-ux500/Kconfig"
 
-source "arch/arm/mach-ks8695/Kconfig"
+source "arch/arm/mach-versatile/Kconfig"
 
-source "arch/arm/mach-msm/Kconfig"
+source "arch/arm/mach-vexpress/Kconfig"
 
 source "arch/arm/mach-w90x900/Kconfig"
 
@@ -714,6 +924,7 @@ config ARCH_ACORN
 
 config PLAT_IOP
        bool
+       select GENERIC_CLOCKEVENTS
 
 config PLAT_ORION
        bool
@@ -721,6 +932,12 @@ config PLAT_ORION
 config PLAT_PXA
        bool
 
+config PLAT_VERSATILE
+       bool
+
+config ARM_TIMER_SP804
+       bool
+
 source arch/arm/mm/Kconfig
 
 config IWMMXT
@@ -737,6 +954,11 @@ config XSCALE_PMU
        depends on CPU_XSCALE && !XSCALE_PMU_TIMER
        default y
 
+config CPU_HAS_PMU
+       depends on CPU_V6 || CPU_V7 || XSCALE_PMU
+       default y
+       bool
+
 if !MMU
 source "arch/arm/Kconfig-nommu"
 endif
@@ -791,6 +1013,19 @@ config ARM_ERRATA_460075
          ACTLR register. Note that setting specific bits in the ACTLR register
          may not be available in non-secure mode.
 
+config PL310_ERRATA_588369
+       bool "Clean & Invalidate maintenance operations do not invalidate clean lines"
+       depends on CACHE_L2X0 && ARCH_OMAP4
+       help
+          The PL310 L2 cache controller implements three types of Clean &
+          Invalidate maintenance operations: by Physical Address
+          (offset 0x7F0), by Index/Way (0x7F8) and by Way (0x7FC).
+          They are architecturally defined to behave as the execution of a
+          clean operation followed immediately by an invalidate operation,
+          both performing to the same memory location. This functionality
+          is not correctly implemented in PL310 as clean lines are not
+          invalidated as a result of these operations. Note that this errata
+          uses Texas Instrument's secure monitor api.
 endmenu
 
 source "arch/arm/common/Kconfig"
@@ -831,6 +1066,10 @@ config PCI
          your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
          VESA. If you have PCI, say Y, otherwise N.
 
+config PCI_DOMAINS
+       bool
+       depends on PCI
+
 config PCI_SYSCALL
        def_bool PCI
 
@@ -858,9 +1097,12 @@ source "kernel/time/Kconfig"
 
 config SMP
        bool "Symmetric Multi-Processing (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP)
+       depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP ||\
+                MACH_REALVIEW_PB11MP || MACH_REALVIEW_PBX || ARCH_OMAP4 ||\
+                ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
        depends on GENERIC_CLOCKEVENTS
        select USE_GENERIC_SMP_HELPERS
+       select HAVE_ARM_SCU if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500 || ARCH_VEXPRESS_CA9X4)
        help
          This enables support for systems with more than one CPU. If you have
          a system with only one CPU, like most personal computers, say N. If
@@ -878,6 +1120,18 @@ config SMP
 
          If you don't know what to do here, say N.
 
+config HAVE_ARM_SCU
+       bool
+       depends on SMP
+       help
+         This option enables support for the ARM system coherency unit
+
+config HAVE_ARM_TWD
+       bool
+       depends on SMP
+       help
+         This options enables support for the ARM timer and watchdog unit
+
 choice
        prompt "Memory split"
        default VMSPLIT_3G
@@ -916,35 +1170,41 @@ config HOTPLUG_CPU
 
 config LOCAL_TIMERS
        bool "Use local timer interrupts"
-       depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || REALVIEW_EB_A9MP)
+       depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || \
+               REALVIEW_EB_A9MP || MACH_REALVIEW_PBX || ARCH_OMAP4 || ARCH_U8500)
        default y
+       select HAVE_ARM_TWD if (ARCH_REALVIEW || ARCH_OMAP4 || ARCH_U8500)
        help
          Enable support for local timers on SMP platforms, rather then the
          legacy IPI broadcast method.  Local timers allows the system
          accounting to be spread across the timer interval, preventing a
          "thundering herd" at every timer tick.
 
-config PREEMPT
-       bool "Preemptible Kernel (EXPERIMENTAL)"
-       depends on EXPERIMENTAL
-       help
-         This option reduces the latency of the kernel when reacting to
-         real-time or interactive events by allowing a low priority process to
-         be preempted even if it is in kernel mode executing a system call.
-         This allows applications to run more reliably even when the system is
-         under load.
-
-         Say Y here if you are building a kernel for a desktop, embedded
-         or real-time system.  Say N if you are unsure.
+source kernel/Kconfig.preempt
 
 config HZ
        int
        default 128 if ARCH_L7200
-       default 200 if ARCH_EBSA110 || ARCH_S3C2410
+       default 200 if ARCH_EBSA110 || ARCH_S3C2410 || ARCH_S5P6440 || ARCH_S5P6442 || ARCH_S5PV210
        default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
        default AT91_TIMER_HZ if ARCH_AT91
        default 100
 
+config THUMB2_KERNEL
+       bool "Compile the kernel in Thumb-2 mode"
+       depends on CPU_V7 && EXPERIMENTAL
+       select AEABI
+       select ARM_ASM_UNIFIED
+       help
+         By enabling this option, the kernel will be compiled in
+         Thumb-2 mode. A compiler/assembler that understand the unified
+         ARM-Thumb syntax is needed.
+
+         If unsure, say N.
+
+config ARM_ASM_UNIFIED
+       bool
+
 config AEABI
        bool "Use the ARM EABI to compile the kernel"
        help
@@ -977,10 +1237,8 @@ config OABI_COMPAT
          UNPREDICTABLE (in fact it can be predicted that it won't work
          at all). If in doubt say Y.
 
-config ARCH_FLATMEM_HAS_HOLES
+config ARCH_HAS_HOLES_MEMORYMODEL
        bool
-       default y
-       depends on FLATMEM
 
 # Discontigmem is deprecated
 config ARCH_DISCONTIGMEM_ENABLE
@@ -1018,17 +1276,30 @@ config HIGHMEM
 
          If unsure, say n.
 
+config HIGHPTE
+       bool "Allocate 2nd-level pagetables from highmem"
+       depends on HIGHMEM
+       depends on !OUTER_CACHE
+
+config HW_PERF_EVENTS
+       bool "Enable hardware performance counter support for perf events"
+       depends on PERF_EVENTS && CPU_HAS_PMU
+       default y
+       help
+         Enable hardware performance counter support for perf events. If
+         disabled, perf events will use software events only.
+
 source "mm/Kconfig"
 
 config LEDS
        bool "Timer and CPU usage LEDs"
        depends on ARCH_CDB89712 || ARCH_EBSA110 || \
-                  ARCH_EBSA285 || ARCH_IMX || ARCH_INTEGRATOR || \
+                  ARCH_EBSA285 || ARCH_INTEGRATOR || \
                   ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
                   ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
                   ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
                   ARCH_AT91 || ARCH_DAVINCI || \
-                  ARCH_KS8695 || MACH_RD88F5182
+                  ARCH_KS8695 || MACH_RD88F5182 || ARCH_REALVIEW
        help
          If you say Y here, the LEDs on your machine will be used
          to provide useful information about your current system status.
@@ -1077,6 +1348,7 @@ config ALIGNMENT_TRAP
        bool
        depends on CPU_CP15_MMU
        default y if !ARCH_EBSA110
+       select HAVE_PROC_CPU if PROC_FS
        help
          ARM processors cannot fetch/store information which is not
          naturally aligned on the bus, i.e., a 4 byte fetch must start at an
@@ -1086,6 +1358,22 @@ config ALIGNMENT_TRAP
          correct operation of some network protocols. With an IP-only
          configuration it is safe to say N, otherwise say Y.
 
+config UACCESS_WITH_MEMCPY
+       bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user() (EXPERIMENTAL)"
+       depends on MMU && EXPERIMENTAL
+       default y if CPU_FEROCEON
+       help
+         Implement faster copy_to_user and clear_user methods for CPU
+         cores where a 8-word STM instruction give significantly higher
+         memory write throughput than a sequence of individual 32bit stores.
+
+         A possible side effect is a slight increase in scheduling latency
+         between threads sharing the same address space if they invoke
+         such copy operations with large buffers.
+
+         However, if the CPU data cache is using a write-allocate mode,
+         this option is unlikely to provide any performance gain.
+
 endmenu
 
 menu "Boot options"
@@ -1133,6 +1421,17 @@ config CMDLINE
          time by entering them here. As a minimum, you should specify the
          memory size and the root device (e.g., mem=64M root=/dev/nfs).
 
+config CMDLINE_FORCE
+       bool "Always use the default kernel command string"
+       depends on CMDLINE != ""
+       help
+         Always use the default kernel command string, even if the boot
+         loader passes other arguments to the kernel.
+         This is useful if you cannot or don't want to change the
+         command-line options your boot loader passes to the kernel.
+
+         If unsure, say N.
+
 config XIP_KERNEL
        bool "Kernel Execute-In-Place from ROM"
        depends on !ZBOOT_ROM
@@ -1189,19 +1488,15 @@ endmenu
 
 menu "CPU Power Management"
 
-if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA)
+if ARCH_HAS_CPUFREQ
 
 source "drivers/cpufreq/Kconfig"
 
 config CPU_FREQ_SA1100
        bool
-       depends on CPU_FREQ && (SA1100_H3100 || SA1100_H3600 || SA1100_LART || SA1100_PLEB || SA1100_BADGE4 || SA1100_HACKKIT)
-       default y
 
 config CPU_FREQ_SA1110
        bool
-       depends on CPU_FREQ && (SA1100_ASSABET || SA1100_CERF || SA1100_PT_SYSTEM3)
-       default y
 
 config CPU_FREQ_INTEGRATOR
        tristate "CPUfreq driver for ARM Integrator CPUs"
@@ -1214,15 +1509,62 @@ config CPU_FREQ_INTEGRATOR
 
          If in doubt, say Y.
 
-config CPU_FREQ_IMX
-       tristate "CPUfreq driver for i.MX CPUs"
-       depends on ARCH_IMX && CPU_FREQ
-       default n
+config CPU_FREQ_PXA
+       bool
+       depends on CPU_FREQ && ARCH_PXA && PXA25x
+       default y
+       select CPU_FREQ_DEFAULT_GOV_USERSPACE
+
+config CPU_FREQ_S3C64XX
+       bool "CPUfreq support for Samsung S3C64XX CPUs"
+       depends on CPU_FREQ && CPU_S3C6410
+
+config CPU_FREQ_S3C
+       bool
+       help
+         Internal configuration node for common cpufreq on Samsung SoC
+
+config CPU_FREQ_S3C24XX
+       bool "CPUfreq driver for Samsung S3C24XX series CPUs"
+       depends on ARCH_S3C2410 && CPU_FREQ && EXPERIMENTAL
+       select CPU_FREQ_S3C
        help
-         This enables the CPUfreq driver for i.MX CPUs.
+         This enables the CPUfreq driver for the Samsung S3C24XX family
+         of CPUs.
+
+         For details, take a look at <file:Documentation/cpu-freq>.
 
          If in doubt, say N.
 
+config CPU_FREQ_S3C24XX_PLL
+       bool "Support CPUfreq changing of PLL frequency"
+       depends on CPU_FREQ_S3C24XX && EXPERIMENTAL
+       help
+         Compile in support for changing the PLL frequency from the
+         S3C24XX series CPUfreq driver. The PLL takes time to settle
+         after a frequency change, so by default it is not enabled.
+
+         This also means that the PLL tables for the selected CPU(s) will
+         be built which may increase the size of the kernel image.
+
+config CPU_FREQ_S3C24XX_DEBUG
+       bool "Debug CPUfreq Samsung driver core"
+       depends on CPU_FREQ_S3C24XX
+       help
+         Enable s3c_freq_dbg for the Samsung S3C CPUfreq core
+
+config CPU_FREQ_S3C24XX_IODEBUG
+       bool "Debug CPUfreq Samsung driver IO timing"
+       depends on CPU_FREQ_S3C24XX
+       help
+         Enable s3c_freq_iodbg for the Samsung S3C CPUfreq core
+
+config CPU_FREQ_S3C24XX_DEBUGFS
+       bool "Export debugfs for CPUFreq"
+       depends on CPU_FREQ_S3C24XX && DEBUG_FS
+       help
+         Export status information via debugfs.
+
 endif
 
 source "drivers/cpuidle/Kconfig"
@@ -1324,107 +1666,7 @@ endmenu
 
 source "net/Kconfig"
 
-menu "Device Drivers"
-
-source "drivers/base/Kconfig"
-
-source "drivers/connector/Kconfig"
-
-if ALIGNMENT_TRAP || !CPU_CP15_MMU
-source "drivers/mtd/Kconfig"
-endif
-
-source "drivers/parport/Kconfig"
-
-source "drivers/pnp/Kconfig"
-
-source "drivers/block/Kconfig"
-
-# misc before ide - BLK_DEV_SGIIOC4 depends on SGI_IOC4
-
-source "drivers/misc/Kconfig"
-
-source "drivers/ide/Kconfig"
-
-source "drivers/scsi/Kconfig"
-
-source "drivers/ata/Kconfig"
-
-source "drivers/md/Kconfig"
-
-source "drivers/message/fusion/Kconfig"
-
-source "drivers/ieee1394/Kconfig"
-
-source "drivers/message/i2o/Kconfig"
-
-source "drivers/net/Kconfig"
-
-source "drivers/isdn/Kconfig"
-
-# input before char - char/joystick depends on it. As does USB.
-
-source "drivers/input/Kconfig"
-
-source "drivers/char/Kconfig"
-
-source "drivers/i2c/Kconfig"
-
-source "drivers/spi/Kconfig"
-
-source "drivers/gpio/Kconfig"
-
-source "drivers/w1/Kconfig"
-
-source "drivers/power/Kconfig"
-
-source "drivers/hwmon/Kconfig"
-
-source "drivers/thermal/Kconfig"
-
-source "drivers/watchdog/Kconfig"
-
-source "drivers/ssb/Kconfig"
-
-#source "drivers/l3/Kconfig"
-
-source "drivers/mfd/Kconfig"
-
-source "drivers/media/Kconfig"
-
-source "drivers/video/Kconfig"
-
-source "sound/Kconfig"
-
-source "drivers/hid/Kconfig"
-
-source "drivers/usb/Kconfig"
-
-source "drivers/uwb/Kconfig"
-
-source "drivers/mmc/Kconfig"
-
-source "drivers/memstick/Kconfig"
-
-source "drivers/accessibility/Kconfig"
-
-source "drivers/leds/Kconfig"
-
-source "drivers/rtc/Kconfig"
-
-source "drivers/dma/Kconfig"
-
-source "drivers/dca/Kconfig"
-
-source "drivers/auxdisplay/Kconfig"
-
-source "drivers/regulator/Kconfig"
-
-source "drivers/uio/Kconfig"
-
-source "drivers/staging/Kconfig"
-
-endmenu
+source "drivers/Kconfig"
 
 source "fs/Kconfig"