Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
[safe/jmp/linux-2.6] / arch / arm / Kconfig
index a7e9fea..4b8acd2 100644 (file)
@@ -8,8 +8,16 @@ mainmenu "Linux Kernel Configuration"
 config ARM
        bool
        default y
+       select HAVE_IDE
        select RTC_LIB
        select SYS_SUPPORTS_APM_EMULATION
+       select HAVE_OPROFILE
+       select HAVE_ARCH_KGDB
+       select HAVE_KPROBES if (!XIP_KERNEL)
+       select HAVE_KRETPROBES if (HAVE_KPROBES)
+       select HAVE_FTRACE if (!XIP_KERNEL)
+       select HAVE_DYNAMIC_FTRACE if (HAVE_FTRACE)
+       select HAVE_GENERIC_DMA_COHERENT
        help
          The ARM series is a line of low-power-consumption RISC chip designs
          licensed by ARM Ltd and targeted at embedded applications and
@@ -18,6 +26,9 @@ config ARM
          Europe.  There is an ARM Linux project with a web page at
          <http://www.arm.linux.org.uk/>.
 
+config HAVE_PWM
+       bool
+
 config SYS_SUPPORTS_APM_EMULATION
        bool
 
@@ -33,6 +44,11 @@ config GENERIC_CLOCKEVENTS
        bool
        default n
 
+config GENERIC_CLOCKEVENTS_BROADCAST
+       bool
+       depends on GENERIC_CLOCKEVENTS
+       default y if SMP && !LOCAL_TIMERS
+
 config MMU
        bool
        default y
@@ -75,6 +91,11 @@ config STACKTRACE_SUPPORT
        bool
        default y
 
+config HAVE_LATENCYTOP_SUPPORT
+       bool
+       depends on !SMP
+       default y
+
 config LOCKDEP_SUPPORT
        bool
        default y
@@ -91,6 +112,11 @@ config GENERIC_IRQ_PROBE
        bool
        default y
 
+config GENERIC_LOCKBREAK
+       bool
+       default y
+       depends on SMP && PREEMPT
+
 config RWSEM_GENERIC_SPINLOCK
        bool
        default y
@@ -114,6 +140,9 @@ config GENERIC_CALIBRATE_DELAY
        bool
        default y
 
+config ARCH_SUPPORTS_AOUT
+       def_bool y
+
 config ARCH_MAY_HAVE_PC_FDC
        bool
 
@@ -130,6 +159,27 @@ config FIQ
 config ARCH_MTD_XIP
        bool
 
+config GENERIC_HARDIRQS_NO__DO_IRQ
+       bool
+       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
+
+endif
+
 config VECTORS_BASE
        hex
        default 0xffff0000 if MMU || CPU_HIGH_VECTOR
@@ -149,12 +199,14 @@ choice
 config ARCH_AAEC2000
        bool "Agilent AAEC-2000 based"
        select ARM_AMBA
+       select HAVE_CLK
        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 ICST525
        help
          Support for ARM's Integrator platform.
@@ -162,7 +214,10 @@ config ARCH_INTEGRATOR
 config ARCH_REALVIEW
        bool "ARM Ltd. RealView family"
        select ARM_AMBA
+       select HAVE_CLK
        select ICST307
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
        help
          This enables support for ARM Ltd RealView boards.
 
@@ -170,6 +225,7 @@ config ARCH_VERSATILE
        bool "ARM Ltd. Versatile family"
        select ARM_AMBA
        select ARM_VIC
+       select HAVE_CLK
        select ICST307
        select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
@@ -179,9 +235,10 @@ config ARCH_VERSATILE
 config ARCH_AT91
        bool "Atmel AT91"
        select GENERIC_GPIO
+       select HAVE_CLK
        help
-         This enables support for systems based on the Atmel AT91RM9200
-         and AT91SAM9xxx processors.
+         This enables support for systems based on the Atmel AT91RM9200,
+         AT91SAM9 and AT91CAP9 processors.
 
 config ARCH_CLPS7500
        bool "Cirrus CL-PS7500FE"
@@ -196,13 +253,6 @@ config ARCH_CLPS711X
        help
          Support for Cirrus Logic 711x/721x based boards.
 
-config ARCH_CO285
-       bool "Co-EBSA285"
-       select FOOTBRIDGE
-       select FOOTBRIDGE_ADDIN
-       help
-         Support for Intel's EBSA285 companion chip.
-
 config ARCH_EBSA110
        bool "EBSA-110"
        select ISA
@@ -217,6 +267,9 @@ config ARCH_EP93XX
        bool "EP93xx-based"
        select ARM_AMBA
        select ARM_VIC
+       select GENERIC_GPIO
+       select HAVE_CLK
+       select ARCH_REQUIRE_GPIOLIB
        help
          This enables support for the Cirrus EP93xx series of CPUs.
 
@@ -261,6 +314,8 @@ config ARCH_IOP32X
        depends on MMU
        select PLAT_IOP
        select PCI
+       select GENERIC_GPIO
+       select ARCH_REQUIRE_GPIOLIB
        help
          Support for Intel's 80219 and IOP32X (XScale) family of
          processors.
@@ -270,6 +325,8 @@ config ARCH_IOP33X
        depends on MMU
        select PLAT_IOP
        select PCI
+       select GENERIC_GPIO
+       select ARCH_REQUIRE_GPIOLIB
        help
          Support for Intel's IOP33X (XScale) family of processors.
 
@@ -309,6 +366,16 @@ 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_KIRKWOOD
+       bool "Marvell Kirkwood"
+       select PCI
+       select GENERIC_TIME
+       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 GENERIC_GPIO
@@ -321,20 +388,57 @@ config ARCH_NS9XXX
        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 GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       select PLAT_ORION
+       help
+         Support for the Marvell Loki (88RC8480) SoC.
+
+config ARCH_MV78XX0
+       bool "Marvell MV78xx0"
+       select PCI
+       select GENERIC_TIME
+       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
        help
          Support for Freescale MXC/iMX-based family of processors
 
+config ARCH_ORION5X
+       bool "Marvell Orion"
+       depends on MMU
+       select PCI
+       select GENERIC_GPIO
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       select PLAT_ORION
+       help
+         Support for the following Marvell Orion 5x series SoCs:
+         Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
+         Orion-2 (5281).
+
 config ARCH_PNX4008
        bool "Philips Nexperia PNX4008 Mobile"
+       select HAVE_CLK
        help
          This enables support for Philips PNX4008 mobile platform.
 
@@ -343,8 +447,11 @@ config ARCH_PXA
        depends on MMU
        select ARCH_MTD_XIP
        select GENERIC_GPIO
+       select HAVE_CLK
+       select ARCH_REQUIRE_GPIOLIB
        select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
+       select TICK_ONESHOT
        help
          Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
 
@@ -354,6 +461,7 @@ config ARCH_RPC
        select FIQ
        select TIMER_ACORN
        select ARCH_MAY_HAVE_PC_FDC
+       select HAVE_PATA_PLATFORM
        select ISA_DMA_API
        select NO_IOPORT
        help
@@ -364,14 +472,22 @@ config ARCH_SA1100
        bool "SA1100-based"
        select ISA
        select ARCH_DISCONTIGMEM_ENABLE
+       select ARCH_SPARSEMEM_ENABLE
+       select ARCH_SELECT_MEMORY_MODEL
        select ARCH_MTD_XIP
        select GENERIC_GPIO
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       select HAVE_CLK
+       select TICK_ONESHOT
+       select ARCH_REQUIRE_GPIOLIB
        help
          Support for StrongARM 11x0 based boards.
 
 config ARCH_S3C2410
        bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443"
        select GENERIC_GPIO
+       select HAVE_CLK
        help
          Samsung S3C2410X CPU based systems, such as the Simtec Electronics
          BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
@@ -399,16 +515,31 @@ config ARCH_DAVINCI
        select GENERIC_TIME
        select GENERIC_CLOCKEVENTS
        select GENERIC_GPIO
+       select HAVE_CLK
        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 GENERIC_CLOCKEVENTS
        help
          Support for TI's OMAP platform (OMAP1 and OMAP2).
 
+config ARCH_MSM7X00A
+       bool "Qualcomm MSM7X00A"
+       select GENERIC_TIME
+       select GENERIC_CLOCKEVENTS
+       help
+         Support for Qualcomm MSM7X00A based systems.  This runs on the ARM11
+         apps processor of the MSM7X00A 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).
+         <http://www.cdmatech.com/products/msm7200_chipset_solution.jsp>
+
 endchoice
 
 source "arch/arm/mach-clps711x/Kconfig"
@@ -431,6 +562,10 @@ source "arch/arm/mach-ixp2000/Kconfig"
 
 source "arch/arm/mach-ixp23xx/Kconfig"
 
+source "arch/arm/mach-loki/Kconfig"
+
+source "arch/arm/mach-mv78xx0/Kconfig"
+
 source "arch/arm/mach-pxa/Kconfig"
 
 source "arch/arm/mach-sa1100/Kconfig"
@@ -441,6 +576,10 @@ source "arch/arm/mach-omap1/Kconfig"
 
 source "arch/arm/mach-omap2/Kconfig"
 
+source "arch/arm/mach-orion5x/Kconfig"
+
+source "arch/arm/mach-kirkwood/Kconfig"
+
 source "arch/arm/plat-s3c24xx/Kconfig"
 source "arch/arm/plat-s3c/Kconfig"
 
@@ -477,6 +616,8 @@ source "arch/arm/mach-davinci/Kconfig"
 
 source "arch/arm/mach-ks8695/Kconfig"
 
+source "arch/arm/mach-msm/Kconfig"
+
 # Definitions to make life easier
 config ARCH_ACORN
        bool
@@ -484,6 +625,9 @@ config ARCH_ACORN
 config PLAT_IOP
        bool
 
+config PLAT_ORION
+       bool
+
 source arch/arm/mm/Kconfig
 
 config IWMMXT
@@ -537,18 +681,13 @@ config ISA_DMA_API
        bool
 
 config PCI
-       bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695
+       bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE
        help
          Find out whether you have a PCI motherboard. PCI is the name of a
          bus system, i.e. the way the CPU talks to the other stuff inside
          your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
          VESA. If you have PCI, say Y, otherwise N.
 
-         The PCI-HOWTO, available from
-         <http://www.tldp.org/docs.html#howto>, contains valuable
-         information about which PCI hardware does work under Linux and which
-         doesn't.
-
 config PCI_SYSCALL
        def_bool PCI
 
@@ -558,6 +697,12 @@ config PCI_HOST_VIA82C505
        depends on PCI && ARCH_SHARK
        default y
 
+config PCI_HOST_ITE8152
+       bool
+       depends on PCI && MACH_ARMCORE
+       default y
+       select DMABOUNCE
+
 source "drivers/pci/Kconfig"
 
 source "drivers/pcmcia/Kconfig"
@@ -570,7 +715,8 @@ source "kernel/time/Kconfig"
 
 config SMP
        bool "Symmetric Multi-Processing (EXPERIMENTAL)"
-       depends on EXPERIMENTAL && REALVIEW_MPCORE
+       depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP)
+       select USE_GENERIC_SMP_HELPERS
        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
@@ -582,8 +728,7 @@ config SMP
          processor machines. On a single processor machine, the kernel will
          run faster if you say N here.
 
-         See also the <file:Documentation/smp.txt>,
-         <file:Documentation/i386/IO-APIC.txt>,
+         See also <file:Documentation/i386/IO-APIC.txt>,
          <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
          <http://www.linuxdoc.org/docs.html#howto>.
 
@@ -604,7 +749,7 @@ config HOTPLUG_CPU
 
 config LOCAL_TIMERS
        bool "Use local timer interrupts"
-       depends on SMP && REALVIEW_MPCORE
+       depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP)
        default y
        help
          Enable support for local timers on SMP platforms, rather then the
@@ -625,32 +770,12 @@ config PREEMPT
          Say Y here if you are building a kernel for a desktop, embedded
          or real-time system.  Say N if you are unsure.
 
-config NO_IDLE_HZ
-       bool "Dynamic tick timer"
-       depends on !GENERIC_CLOCKEVENTS
-       help
-         Select this option if you want to disable continuous timer ticks
-         and have them programmed to occur as required. This option saves
-         power as the system can remain in idle state for longer.
-
-         By default dynamic tick is disabled during the boot, and can be
-         manually enabled with:
-
-           echo 1 > /sys/devices/system/timer/timer0/dyn_tick
-
-         Alternatively, if you want dynamic tick automatically enabled
-         during boot, pass "dyntick=enable" via the kernel command string.
-
-         Please note that dynamic tick may affect the accuracy of
-         timekeeping on some platforms depending on the implementation.
-         Currently at least OMAP, PXA2xx and SA11x0 platforms are known
-         to have accurate timekeeping with dynamic tick.
-
 config HZ
        int
        default 128 if ARCH_L7200
        default 200 if ARCH_EBSA110 || ARCH_S3C2410
        default OMAP_32K_TIMER_HZ if ARCH_OMAP && OMAP_32K_TIMER
+       default AT91_TIMER_HZ if ARCH_AT91
        default 100
 
 config AEABI
@@ -694,6 +819,12 @@ config ARCH_DISCONTIGMEM_ENABLE
          or have huge holes in the physical address space for other reasons.
          See <file:Documentation/vm/numa> for more.
 
+config ARCH_SPARSEMEM_ENABLE
+       bool
+
+config ARCH_SELECT_MEMORY_MODEL
+       bool
+
 config NODES_SHIFT
        int
        default "4" if ARCH_LH7A40X
@@ -704,13 +835,13 @@ source "mm/Kconfig"
 
 config LEDS
        bool "Timer and CPU usage LEDs"
-       depends on ARCH_CDB89712 || ARCH_CO285 || ARCH_EBSA110 || \
+       depends on ARCH_CDB89712 || ARCH_EBSA110 || \
                   ARCH_EBSA285 || ARCH_IMX || ARCH_INTEGRATOR || \
                   ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
                   ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
                   ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
                   ARCH_AT91 || MACH_TRIZEPS4 || ARCH_DAVINCI || \
-                  ARCH_KS8695
+                  ARCH_KS8695 || MACH_RD88F5182
        help
          If you say Y here, the LEDs on your machine will be used
          to provide useful information about your current system status.
@@ -859,9 +990,17 @@ config KEXEC
          initially work for you.  It may help to enable device hotplugging
          support.
 
+config ATAGS_PROC
+       bool "Export atags in procfs"
+       depends on KEXEC
+       default y
+       help
+         Should the atags used to boot the kernel be exported in an "atags"
+         file in procfs. Useful with kexec.
+
 endmenu
 
-if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX )
+if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA)
 
 menu "CPU Frequency scaling"
 
@@ -897,6 +1036,12 @@ config CPU_FREQ_IMX
 
          If in doubt, say N.
 
+config CPU_FREQ_PXA
+       bool
+       depends on CPU_FREQ && ARCH_PXA && PXA25x
+       default y
+       select CPU_FREQ_DEFAULT_GOV_USERSPACE
+
 endmenu
 
 endif
@@ -945,7 +1090,7 @@ config FPE_FASTFPE
 
 config VFP
        bool "VFP-format floating point maths"
-       depends on CPU_V6 || CPU_ARM926T
+       depends on CPU_V6 || CPU_ARM926T || CPU_V7 || CPU_FEROCEON
        help
          Say Y to include VFP support code in the kernel. This is needed
          if your hardware includes a VFP unit.
@@ -955,6 +1100,18 @@ config VFP
 
          Say N if your target does not have VFP hardware.
 
+config VFPv3
+       bool
+       depends on VFP
+       default y if CPU_V7
+
+config NEON
+       bool "Advanced SIMD (NEON) Extension support"
+       depends on VFPv3 && CPU_V7
+       help
+         Say Y to include support code for NEON, the ARMv7 Advanced SIMD
+         Extension.
+
 endmenu
 
 menu "Userspace binary formats"
@@ -977,6 +1134,9 @@ menu "Power management options"
 
 source "kernel/power/Kconfig"
 
+config ARCH_SUSPEND_POSSIBLE
+       def_bool y
+
 endmenu
 
 source "net/Kconfig"
@@ -1001,12 +1161,7 @@ source "drivers/block/Kconfig"
 
 source "drivers/misc/Kconfig"
 
-if PCMCIA || ARCH_CLPS7500 || ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX \
-       || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC \
-       || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE \
-       || ARCH_IXP23XX
 source "drivers/ide/Kconfig"
-endif
 
 source "drivers/scsi/Kconfig"
 
@@ -1034,6 +1189,8 @@ source "drivers/i2c/Kconfig"
 
 source "drivers/spi/Kconfig"
 
+source "drivers/gpio/Kconfig"
+
 source "drivers/w1/Kconfig"
 
 source "drivers/power/Kconfig"
@@ -1066,12 +1223,16 @@ source "drivers/rtc/Kconfig"
 
 source "drivers/dma/Kconfig"
 
+source "drivers/dca/Kconfig"
+
+source "drivers/regulator/Kconfig"
+
+source "drivers/uio/Kconfig"
+
 endmenu
 
 source "fs/Kconfig"
 
-source "kernel/Kconfig.instrumentation"
-
 source "arch/arm/Kconfig.debug"
 
 source "security/Kconfig"