gpiolib/arches: Centralise bolierplate asm/gpio.h
[linux-3.10.git] / arch / sh / Kconfig
index ba86bfb..c40b29a 100644 (file)
@@ -1,30 +1,34 @@
-#
-# For a description of the syntax of this configuration file,
-# see Documentation/kbuild/kconfig-language.txt.
-#
-
-mainmenu "Linux/SuperH Kernel Configuration"
-
 config SUPERH
        def_bool y
-       select EMBEDDED
-       select HAVE_CLK
-       select HAVE_IDE
-       select HAVE_LMB
+       select EXPERT
+       select CLKDEV_LOOKUP
+       select HAVE_IDE if HAS_IOPORT
+       select HAVE_MEMBLOCK
+       select HAVE_MEMBLOCK_NODE_MAP
+       select ARCH_DISCARD_MEMBLOCK
        select HAVE_OPROFILE
        select HAVE_GENERIC_DMA_COHERENT
        select HAVE_ARCH_TRACEHOOK
        select HAVE_DMA_API_DEBUG
        select HAVE_DMA_ATTRS
+       select HAVE_IRQ_WORK
        select HAVE_PERF_EVENTS
+       select ARCH_HAVE_CUSTOM_GPIO_H
+       select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A)
        select PERF_USE_VMALLOC
        select HAVE_KERNEL_GZIP
        select HAVE_KERNEL_BZIP2
        select HAVE_KERNEL_LZMA
+       select HAVE_KERNEL_XZ
        select HAVE_KERNEL_LZO
        select HAVE_SYSCALL_TRACEPOINTS
+       select HAVE_REGS_AND_STACK_ACCESS_API
+       select HAVE_GENERIC_HARDIRQS
+       select MAY_HAVE_SPARSE_IRQ
+       select IRQ_FORCED_THREADING
        select RTC_LIB
        select GENERIC_ATOMIC64
+       select GENERIC_IRQ_SHOW
        help
          The SuperH is a RISC processor targeted for use in embedded systems
          and consumer electronics; it was also used in the Sega Dreamcast
@@ -44,8 +48,10 @@ config SUPERH32
        select HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_ARCH_KGDB
        select HAVE_HW_BREAKPOINT
-       select PERF_EVENTS if HAVE_HW_BREAKPOINT
+       select HAVE_MIXED_BREAKPOINTS_REGS
+       select PERF_EVENTS
        select ARCH_HIBERNATION_POSSIBLE if MMU
+       select SPARSE_IRQ
 
 config SUPERH64
        def_bool ARCH = "sh64"
@@ -69,37 +75,18 @@ config GENERIC_CSUM
        def_bool y
        depends on SUPERH64
 
-config GENERIC_FIND_NEXT_BIT
-       def_bool y
-
 config GENERIC_HWEIGHT
        def_bool y
 
-config GENERIC_HARDIRQS
-       def_bool y
-
-config GENERIC_HARDIRQS_NO__DO_IRQ
-       def_bool y
-
 config IRQ_PER_CPU
        def_bool y
 
-config SPARSE_IRQ
-       def_bool y
-       depends on SUPERH32
-
 config GENERIC_GPIO
        def_bool n
 
 config GENERIC_CALIBRATE_DELAY
        bool
 
-config GENERIC_IOMAP
-       bool
-
-config GENERIC_TIME
-       def_bool y
-
 config GENERIC_CLOCKEVENTS
        def_bool y
 
@@ -114,10 +101,6 @@ config GENERIC_LOCKBREAK
        def_bool y
        depends on SMP && PREEMPT
 
-config SYS_SUPPORTS_PM
-       bool
-       depends on !SMP
-
 config ARCH_SUSPEND_POSSIBLE
        def_bool n
 
@@ -157,7 +140,6 @@ config LOCKDEP_SUPPORT
 
 config HAVE_LATENCYTOP_SUPPORT
        def_bool y
-       depends on !SMP
 
 config ARCH_HAS_ILOG2_U32
        def_bool n
@@ -174,9 +156,16 @@ config ARCH_HAS_DEFAULT_IDLE
 config ARCH_HAS_CPU_IDLE_WAIT
        def_bool y
 
+config NO_IOPORT
+       def_bool !PCI
+       depends on !SH_CAYMAN && !SH_SH4202_MICRODEV && !SH_SHMIN
+
 config IO_TRAPPED
        bool
 
+config SWAP_IO_SPACE
+       bool
+
 config DMA_COHERENT
        bool
 
@@ -186,6 +175,9 @@ config DMA_NONCOHERENT
 config NEED_DMA_MAP_STATE
        def_bool DMA_NONCOHERENT
 
+config NEED_SG_DMA_LENGTH
+       def_bool y
+
 source "init/Kconfig"
 
 source "kernel/Kconfig.freezer"
@@ -201,6 +193,7 @@ config CPU_SH2
 config CPU_SH2A
        bool
        select CPU_SH2
+       select UNCACHED_MAPPING
 
 config CPU_SH3
        bool
@@ -237,6 +230,8 @@ config CPU_SHX2
 config CPU_SHX3
        bool
        select DMA_COHERENT
+       select SYS_SUPPORTS_SMP
+       select SYS_SUPPORTS_NUMA
 
 config ARCH_SHMOBILE
        bool
@@ -244,6 +239,11 @@ config ARCH_SHMOBILE
        select PM
        select PM_RUNTIME
 
+config CPU_HAS_PMU
+       depends on CPU_SH4 || CPU_SH4A
+       default y
+       bool
+
 if SUPERH32
 
 choice
@@ -274,6 +274,7 @@ config CPU_SUBTYPE_SH7203
        select CPU_HAS_FPU
        select SYS_SUPPORTS_CMT
        select SYS_SUPPORTS_MTU2
+       select ARCH_WANT_OPTIONAL_GPIOLIB
 
 config CPU_SUBTYPE_SH7206
        bool "Support SH7206 processor"
@@ -345,6 +346,9 @@ config CPU_SUBTYPE_SH7720
        select CPU_SH3
        select CPU_HAS_DSP
        select SYS_SUPPORTS_CMT
+       select ARCH_WANT_OPTIONAL_GPIOLIB
+       select USB_ARCH_HAS_OHCI
+       select USB_OHCI_SH if USB_OHCI_HCD
        help
          Select SH7720 if you have a SH3-DSP SH7720 CPU.
 
@@ -353,6 +357,8 @@ config CPU_SUBTYPE_SH7721
        select CPU_SH3
        select CPU_HAS_DSP
        select SYS_SUPPORTS_CMT
+       select USB_ARCH_HAS_OHCI
+       select USB_OHCI_SH if USB_OHCI_HCD
        help
          Select SH7721 if you have a SH3-DSP SH7721 CPU.
 
@@ -407,6 +413,7 @@ config CPU_SUBTYPE_SH7723
        select ARCH_SHMOBILE
        select ARCH_SPARSEMEM_ENABLE
        select SYS_SUPPORTS_CMT
+       select ARCH_WANT_OPTIONAL_GPIOLIB
        help
          Select SH7723 if you have an SH-MobileR2 CPU.
 
@@ -417,6 +424,7 @@ config CPU_SUBTYPE_SH7724
        select ARCH_SHMOBILE
        select ARCH_SPARSEMEM_ENABLE
        select SYS_SUPPORTS_CMT
+       select ARCH_WANT_OPTIONAL_GPIOLIB
        help
          Select SH7724 if you have an SH-MobileR2R CPU.
 
@@ -424,12 +432,17 @@ config CPU_SUBTYPE_SH7757
        bool "Support SH7757 processor"
        select CPU_SH4A
        select CPU_SHX2
+       select ARCH_WANT_OPTIONAL_GPIOLIB
+       select USB_ARCH_HAS_OHCI
+       select USB_ARCH_HAS_EHCI
        help
          Select SH7757 if you have a SH4A SH7757 CPU.
 
 config CPU_SUBTYPE_SH7763
        bool "Support SH7763 processor"
        select CPU_SH4A
+       select USB_ARCH_HAS_OHCI
+       select USB_OHCI_SH if USB_OHCI_HCD
        help
          Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
 
@@ -447,25 +460,26 @@ config CPU_SUBTYPE_SH7785
        select CPU_SHX2
        select ARCH_SPARSEMEM_ENABLE
        select SYS_SUPPORTS_NUMA
+       select ARCH_WANT_OPTIONAL_GPIOLIB
 
 config CPU_SUBTYPE_SH7786
        bool "Support SH7786 processor"
        select CPU_SH4A
        select CPU_SHX3
        select CPU_HAS_PTEAEX
-       select ARCH_SPARSEMEM_ENABLE
-       select SYS_SUPPORTS_NUMA
-       select SYS_SUPPORTS_SMP
        select GENERIC_CLOCKEVENTS_BROADCAST if SMP
+       select ARCH_WANT_OPTIONAL_GPIOLIB
+       select USB_ARCH_HAS_OHCI
+       select USB_OHCI_SH if USB_OHCI_HCD
+       select USB_ARCH_HAS_EHCI
+       select USB_EHCI_SH if USB_EHCI_HCD
 
 config CPU_SUBTYPE_SHX3
        bool "Support SH-X3 processor"
        select CPU_SH4A
        select CPU_SHX3
-       select ARCH_SPARSEMEM_ENABLE
-       select SYS_SUPPORTS_NUMA
-       select SYS_SUPPORTS_SMP
        select GENERIC_CLOCKEVENTS_BROADCAST if SMP
+       select ARCH_REQUIRE_GPIOLIB
 
 # SH4AL-DSP Processor Support
 
@@ -483,6 +497,7 @@ config CPU_SUBTYPE_SH7722
        select ARCH_SPARSEMEM_ENABLE
        select SYS_SUPPORTS_NUMA
        select SYS_SUPPORTS_CMT
+       select ARCH_WANT_OPTIONAL_GPIOLIB
 
 config CPU_SUBTYPE_SH7366
        bool "Support SH7366 processor"
@@ -570,16 +585,7 @@ config SH_CLK_CPG
 config SH_CLK_CPG_LEGACY
        depends on SH_CLK_CPG
        def_bool y if !CPU_SUBTYPE_SH7785 && !ARCH_SHMOBILE && \
-                     !CPU_SUBTYPE_SH7786
-
-config SH_CLK_MD
-       int "CPU Mode Pin Setting"
-       depends on CPU_SH2
-       default 6 if CPU_SUBTYPE_SH7206
-       default 5 if CPU_SUBTYPE_SH7619
-       default 0
-       help
-         MD2 - MD0 pin setting.
+                     !CPU_SHX3 && !CPU_SUBTYPE_SH7757
 
 source "kernel/time/Kconfig"
 
@@ -634,7 +640,7 @@ config KEXEC
 
 config CRASH_DUMP
        bool "kernel crash dumps (EXPERIMENTAL)"
-       depends on SUPERH32 && EXPERIMENTAL
+       depends on SUPERH32 && EXPERIMENTAL && BROKEN_ON_SMP
        help
          Generate crash dump after being started by kexec.
          This should be normally only set in special crash dump kernels
@@ -642,7 +648,7 @@ config CRASH_DUMP
          a specially reserved region and then later executed after
          a crash by kdump/kexec. The crash dump kernel must be compiled
          to a memory address not used by the main kernel using
-         MEMORY_START.
+         PHYSICAL_START.
 
          For more details see Documentation/kdump/kdump.txt
 
@@ -653,6 +659,17 @@ config KEXEC_JUMP
          Jump between original kernel and kexeced kernel and invoke
          code via KEXEC
 
+config PHYSICAL_START
+       hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
+       default MEMORY_START
+       ---help---
+         This gives the physical address where the kernel is loaded
+         and is ordinarily the same as MEMORY_START.
+
+         Different values are primarily used in the case of kexec on panic
+         where the fail safe kernel needs to run at a different address
+         than the panic-ed kernel.
+
 config SECCOMP
        bool "Enable seccomp to safely compute untrusted bytecode"
        depends on PROC_FS
@@ -706,6 +723,13 @@ config NR_CPUS
          This is purely to save memory - each supported CPU adds
          approximately eight kilobytes to the kernel image.
 
+config HOTPLUG_CPU
+       bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
+       depends on SMP && HOTPLUG && EXPERIMENTAL
+       help
+         Say Y here to experiment with turning CPUs off and on.  CPUs
+         can be controlled through /sys/devices/system/cpu.
+
 source "kernel/Kconfig.preempt"
 
 config GUSA
@@ -732,6 +756,14 @@ config GUSA_RB
          LLSC, this should be more efficient than the other alternative of
          disabling interrupts around the atomic sequence.
 
+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 "drivers/sh/Kconfig"
 
 endmenu
@@ -770,6 +802,17 @@ config ENTRY_OFFSET
        default "0x00010000" if PAGE_SIZE_64KB
        default "0x00000000"
 
+config ROMIMAGE_MMCIF
+       bool "Include MMCIF loader in romImage (EXPERIMENTAL)"
+       depends on CPU_SUBTYPE_SH7724 && EXPERIMENTAL
+       help
+         Say Y here to include experimental MMCIF loading code in
+         romImage. With this enabled it is possible to write the romImage
+         kernel image to an MMC card and boot the kernel straight from
+         the reset vector. At reset the processor Mask ROM will load the
+         first part of the romImage which in turn loads the rest the kernel
+         image to RAM using the MMCIF hardware block.
+
 choice
        prompt "Kernel command line"
        optional
@@ -820,6 +863,8 @@ config PCI
        bool "PCI support"
        depends on SYS_SUPPORTS_PCI
        select PCI_DOMAINS
+       select GENERIC_PCI_IOMAP
+       select NO_GENERIC_PCI_IOPORT_MAP
        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