sh: clkfwk: Make clock-cpg usable for non-legacy platforms.
[linux-2.6/mini2440.git] / arch / sh / Kconfig
blobc815975b8d75ebc20994b9ce3660946045356b6d
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
6 mainmenu "Linux/SuperH Kernel Configuration"
8 config SUPERH
9         def_bool y
10         select EMBEDDED
11         select HAVE_CLK
12         select HAVE_IDE
13         select HAVE_OPROFILE
14         select HAVE_GENERIC_DMA_COHERENT
15         select HAVE_IOREMAP_PROT if MMU
16         select HAVE_ARCH_TRACEHOOK
17         select HAVE_DMA_API_DEBUG
18         select RTC_LIB
19         help
20           The SuperH is a RISC processor targeted for use in embedded systems
21           and consumer electronics; it was also used in the Sega Dreamcast
22           gaming console.  The SuperH port has a home page at
23           <http://www.linux-sh.org/>.
25 config SUPERH32
26         def_bool ARCH = "sh"
27         select HAVE_KPROBES
28         select HAVE_KRETPROBES
29         select HAVE_FUNCTION_TRACER
30         select HAVE_FTRACE_MCOUNT_RECORD
31         select HAVE_DYNAMIC_FTRACE
32         select HAVE_ARCH_KGDB
33         select ARCH_HIBERNATION_POSSIBLE if MMU
35 config SUPERH64
36         def_bool ARCH = "sh64"
38 config ARCH_DEFCONFIG
39         string
40         default "arch/sh/configs/shx3_defconfig" if SUPERH32
41         default "arch/sh/configs/cayman_defconfig" if SUPERH64
43 config RWSEM_GENERIC_SPINLOCK
44         def_bool y
46 config RWSEM_XCHGADD_ALGORITHM
47         bool
49 config GENERIC_BUG
50         def_bool y
51         depends on BUG && SUPERH32
53 config GENERIC_FIND_NEXT_BIT
54         def_bool y
56 config GENERIC_HWEIGHT
57         def_bool y
59 config GENERIC_HARDIRQS
60         def_bool y
62 config GENERIC_HARDIRQS_NO__DO_IRQ
63         def_bool y
65 config GENERIC_IRQ_PROBE
66         def_bool y
68 config GENERIC_GPIO
69         def_bool n
71 config GENERIC_CALIBRATE_DELAY
72         bool
74 config GENERIC_IOMAP
75         bool
77 config GENERIC_TIME
78         def_bool y
80 config GENERIC_CLOCKEVENTS
81         def_bool y
83 config GENERIC_CLOCKEVENTS_BROADCAST
84         bool
86 config GENERIC_CMOS_UPDATE
87         def_bool y
88         depends on SH_SH03 || SH_DREAMCAST
90 config GENERIC_LOCKBREAK
91         def_bool y
92         depends on SMP && PREEMPT
94 config SYS_SUPPORTS_PM
95         bool
96         depends on !SMP
98 config ARCH_SUSPEND_POSSIBLE
99         def_bool n
101 config ARCH_HIBERNATION_POSSIBLE
102         def_bool n
104 config SYS_SUPPORTS_APM_EMULATION
105         bool
106         select ARCH_SUSPEND_POSSIBLE
108 config SYS_SUPPORTS_SMP
109         bool
111 config SYS_SUPPORTS_NUMA
112         bool
114 config SYS_SUPPORTS_PCI
115         bool
117 config SYS_SUPPORTS_CMT
118         bool
120 config SYS_SUPPORTS_MTU2
121         bool
123 config SYS_SUPPORTS_TMU
124         bool
126 config STACKTRACE_SUPPORT
127         def_bool y
129 config LOCKDEP_SUPPORT
130         def_bool y
132 config HAVE_LATENCYTOP_SUPPORT
133         def_bool y
134         depends on !SMP
136 config ARCH_HAS_ILOG2_U32
137         def_bool n
139 config ARCH_HAS_ILOG2_U64
140         def_bool n
142 config ARCH_NO_VIRT_TO_BUS
143         def_bool y
145 config ARCH_HAS_DEFAULT_IDLE
146         def_bool y
148 config IO_TRAPPED
149         bool
151 source "init/Kconfig"
153 source "kernel/Kconfig.freezer"
155 menu "System type"
158 # Processor families
160 config CPU_SH2
161         bool
163 config CPU_SH2A
164         bool
165         select CPU_SH2
167 config CPU_SH3
168         bool
169         select CPU_HAS_INTEVT
170         select CPU_HAS_SR_RB
171         select SYS_SUPPORTS_TMU
173 config CPU_SH4
174         bool
175         select CPU_HAS_INTEVT
176         select CPU_HAS_SR_RB
177         select CPU_HAS_PTEA if !CPU_SH4A || CPU_SHX2
178         select CPU_HAS_FPU if !CPU_SH4AL_DSP
179         select SYS_SUPPORTS_TMU
181 config CPU_SH4A
182         bool
183         select CPU_SH4
185 config CPU_SH4AL_DSP
186         bool
187         select CPU_SH4A
188         select CPU_HAS_DSP
190 config CPU_SH5
191         bool
192         select CPU_HAS_FPU
193         select SYS_SUPPORTS_TMU
195 config CPU_SHX2
196         bool
198 config CPU_SHX3
199         bool
201 config ARCH_SHMOBILE
202         bool
203         select ARCH_SUSPEND_POSSIBLE
205 if SUPERH32
207 choice
208         prompt "Processor sub-type selection"
211 # Processor subtypes
214 # SH-2 Processor Support
216 config CPU_SUBTYPE_SH7619
217         bool "Support SH7619 processor"
218         select CPU_SH2
219         select SYS_SUPPORTS_CMT
221 # SH-2A Processor Support
223 config CPU_SUBTYPE_SH7201
224         bool "Support SH7201 processor"
225         select CPU_SH2A
226         select CPU_HAS_FPU
227         select SYS_SUPPORTS_MTU2
229 config CPU_SUBTYPE_SH7203
230         bool "Support SH7203 processor"
231         select CPU_SH2A
232         select CPU_HAS_FPU
233         select SYS_SUPPORTS_CMT
234         select SYS_SUPPORTS_MTU2
236 config CPU_SUBTYPE_SH7206
237         bool "Support SH7206 processor"
238         select CPU_SH2A
239         select SYS_SUPPORTS_CMT
240         select SYS_SUPPORTS_MTU2
242 config CPU_SUBTYPE_SH7263
243         bool "Support SH7263 processor"
244         select CPU_SH2A
245         select CPU_HAS_FPU
246         select SYS_SUPPORTS_CMT
247         select SYS_SUPPORTS_MTU2
249 config CPU_SUBTYPE_MXG
250         bool "Support MX-G processor"
251         select CPU_SH2A
252         select SYS_SUPPORTS_MTU2
253         help
254           Select MX-G if running on an R8A03022BG part.
256 # SH-3 Processor Support
258 config CPU_SUBTYPE_SH7705
259         bool "Support SH7705 processor"
260         select CPU_SH3
262 config CPU_SUBTYPE_SH7706
263         bool "Support SH7706 processor"
264         select CPU_SH3
265         help
266           Select SH7706 if you have a 133 Mhz SH-3 HD6417706 CPU.
268 config CPU_SUBTYPE_SH7707
269         bool "Support SH7707 processor"
270         select CPU_SH3
271         help
272           Select SH7707 if you have a  60 Mhz SH-3 HD6417707 CPU.
274 config CPU_SUBTYPE_SH7708
275         bool "Support SH7708 processor"
276         select CPU_SH3
277         help
278           Select SH7708 if you have a  60 Mhz SH-3 HD6417708S or
279           if you have a 100 Mhz SH-3 HD6417708R CPU.
281 config CPU_SUBTYPE_SH7709
282         bool "Support SH7709 processor"
283         select CPU_SH3
284         help
285           Select SH7709 if you have a  80 Mhz SH-3 HD6417709 CPU.
287 config CPU_SUBTYPE_SH7710
288         bool "Support SH7710 processor"
289         select CPU_SH3
290         select CPU_HAS_DSP
291         help
292           Select SH7710 if you have a SH3-DSP SH7710 CPU.
294 config CPU_SUBTYPE_SH7712
295         bool "Support SH7712 processor"
296         select CPU_SH3
297         select CPU_HAS_DSP
298         help
299           Select SH7712 if you have a SH3-DSP SH7712 CPU.
301 config CPU_SUBTYPE_SH7720
302         bool "Support SH7720 processor"
303         select CPU_SH3
304         select CPU_HAS_DSP
305         select SYS_SUPPORTS_CMT
306         help
307           Select SH7720 if you have a SH3-DSP SH7720 CPU.
309 config CPU_SUBTYPE_SH7721
310         bool "Support SH7721 processor"
311         select CPU_SH3
312         select CPU_HAS_DSP
313         select SYS_SUPPORTS_CMT
314         help
315           Select SH7721 if you have a SH3-DSP SH7721 CPU.
317 # SH-4 Processor Support
319 config CPU_SUBTYPE_SH7750
320         bool "Support SH7750 processor"
321         select CPU_SH4
322         help
323           Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.
325 config CPU_SUBTYPE_SH7091
326         bool "Support SH7091 processor"
327         select CPU_SH4
328         help
329           Select SH7091 if you have an SH-4 based Sega device (such as
330           the Dreamcast, Naomi, and Naomi 2).
332 config CPU_SUBTYPE_SH7750R
333         bool "Support SH7750R processor"
334         select CPU_SH4
336 config CPU_SUBTYPE_SH7750S
337         bool "Support SH7750S processor"
338         select CPU_SH4
340 config CPU_SUBTYPE_SH7751
341         bool "Support SH7751 processor"
342         select CPU_SH4
343         help
344           Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU,
345           or if you have a HD6417751R CPU.
347 config CPU_SUBTYPE_SH7751R
348         bool "Support SH7751R processor"
349         select CPU_SH4
351 config CPU_SUBTYPE_SH7760
352         bool "Support SH7760 processor"
353         select CPU_SH4
355 config CPU_SUBTYPE_SH4_202
356         bool "Support SH4-202 processor"
357         select CPU_SH4
359 # SH-4A Processor Support
361 config CPU_SUBTYPE_SH7723
362         bool "Support SH7723 processor"
363         select CPU_SH4A
364         select CPU_SHX2
365         select ARCH_SHMOBILE
366         select ARCH_SPARSEMEM_ENABLE
367         select SYS_SUPPORTS_CMT
368         help
369           Select SH7723 if you have an SH-MobileR2 CPU.
371 config CPU_SUBTYPE_SH7724
372         bool "Support SH7724 processor"
373         select CPU_SH4A
374         select CPU_SHX2
375         select ARCH_SHMOBILE
376         select ARCH_SPARSEMEM_ENABLE
377         select SYS_SUPPORTS_CMT
378         help
379           Select SH7724 if you have an SH-MobileR2R CPU.
381 config CPU_SUBTYPE_SH7763
382         bool "Support SH7763 processor"
383         select CPU_SH4A
384         help
385           Select SH7763 if you have a SH4A SH7763(R5S77631) CPU.
387 config CPU_SUBTYPE_SH7770
388         bool "Support SH7770 processor"
389         select CPU_SH4A
391 config CPU_SUBTYPE_SH7780
392         bool "Support SH7780 processor"
393         select CPU_SH4A
395 config CPU_SUBTYPE_SH7785
396         bool "Support SH7785 processor"
397         select CPU_SH4A
398         select CPU_SHX2
399         select ARCH_SPARSEMEM_ENABLE
400         select SYS_SUPPORTS_NUMA
402 config CPU_SUBTYPE_SH7786
403         bool "Support SH7786 processor"
404         select CPU_SH4A
405         select CPU_SHX3
406         select CPU_HAS_PTEAEX
407         select ARCH_SPARSEMEM_ENABLE
408         select SYS_SUPPORTS_NUMA
410 config CPU_SUBTYPE_SHX3
411         bool "Support SH-X3 processor"
412         select CPU_SH4A
413         select CPU_SHX3
414         select ARCH_SPARSEMEM_ENABLE
415         select SYS_SUPPORTS_NUMA
416         select SYS_SUPPORTS_SMP
417         select GENERIC_CLOCKEVENTS_BROADCAST if SMP
419 # SH4AL-DSP Processor Support
421 config CPU_SUBTYPE_SH7343
422         bool "Support SH7343 processor"
423         select CPU_SH4AL_DSP
424         select ARCH_SHMOBILE
425         select SYS_SUPPORTS_CMT
427 config CPU_SUBTYPE_SH7722
428         bool "Support SH7722 processor"
429         select CPU_SH4AL_DSP
430         select CPU_SHX2
431         select ARCH_SHMOBILE
432         select ARCH_SPARSEMEM_ENABLE
433         select SYS_SUPPORTS_NUMA
434         select SYS_SUPPORTS_CMT
436 config CPU_SUBTYPE_SH7366
437         bool "Support SH7366 processor"
438         select CPU_SH4AL_DSP
439         select CPU_SHX2
440         select ARCH_SHMOBILE
441         select ARCH_SPARSEMEM_ENABLE
442         select SYS_SUPPORTS_NUMA
443         select SYS_SUPPORTS_CMT
445 endchoice
447 endif
449 if SUPERH64
451 choice
452         prompt "Processor sub-type selection"
454 # SH-5 Processor Support
456 config CPU_SUBTYPE_SH5_101
457         bool "Support SH5-101 processor"
458         select CPU_SH5
460 config CPU_SUBTYPE_SH5_103
461         bool "Support SH5-103 processor"
462         select CPU_SH5
464 endchoice
466 endif
468 source "arch/sh/mm/Kconfig"
470 source "arch/sh/Kconfig.cpu"
472 source "arch/sh/boards/Kconfig"
474 menu "Timer and clock configuration"
476 config SH_TIMER_TMU
477         bool "TMU timer driver"
478         depends on SYS_SUPPORTS_TMU
479         default y
480         help
481           This enables the build of the TMU timer driver.
483 config SH_TIMER_CMT
484         bool "CMT timer driver"
485         depends on SYS_SUPPORTS_CMT
486         default y
487         help
488           This enables build of the CMT timer driver.
490 config SH_TIMER_MTU2
491         bool "MTU2 timer driver"
492         depends on SYS_SUPPORTS_MTU2
493         default y
494         help
495           This enables build of the MTU2 timer driver.
497 config SH_PCLK_FREQ
498         int "Peripheral clock frequency (in Hz)"
499         default "27000000" if CPU_SUBTYPE_SH7343
500         default "31250000" if CPU_SUBTYPE_SH7619
501         default "32000000" if CPU_SUBTYPE_SH7722
502         default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \
503                               CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \
504                               CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \
505                               CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG    || \
506                               CPU_SUBTYPE_SH7786
507         default "41666666" if CPU_SUBTYPE_SH7724
508         default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R
509         default "66000000" if CPU_SUBTYPE_SH4_202
510         default "50000000"
511         help
512           This option is used to specify the peripheral clock frequency.
513           This is necessary for determining the reference clock value on
514           platforms lacking an RTC.
516 config SH_CLK_CPG
517         def_bool y
519 config SH_CLK_CPG_LEGACY
520         depends on SH_CLK_CPG
521         def_bool y if !CPU_SUBTYPE_SH7785
523 config SH_CLK_MD
524         int "CPU Mode Pin Setting"
525         depends on CPU_SH2
526         default 6 if CPU_SUBTYPE_SH7206
527         default 5 if CPU_SUBTYPE_SH7619
528         default 0
529         help
530           MD2 - MD0 pin setting.
532 source "kernel/time/Kconfig"
534 endmenu
536 menu "CPU Frequency scaling"
538 source "drivers/cpufreq/Kconfig"
540 config SH_CPU_FREQ
541         tristate "SuperH CPU Frequency driver"
542         depends on CPU_FREQ
543         select CPU_FREQ_TABLE
544         help
545           This adds the cpufreq driver for SuperH. Any CPU that supports
546           clock rate rounding through the clock framework can use this
547           driver. While it will make the kernel slightly larger, this is
548           harmless for CPUs that don't support rate rounding. The driver
549           will also generate a notice in the boot log before disabling
550           itself if the CPU in question is not capable of rate rounding.
552           For details, take a look at <file:Documentation/cpu-freq>.
554           If unsure, say N.
556 endmenu
558 source "arch/sh/drivers/Kconfig"
560 endmenu
562 menu "Kernel features"
564 source kernel/Kconfig.hz
566 config KEXEC
567         bool "kexec system call (EXPERIMENTAL)"
568         depends on SUPERH32 && EXPERIMENTAL && MMU
569         help
570           kexec is a system call that implements the ability to shutdown your
571           current kernel, and to start another kernel.  It is like a reboot
572           but it is independent of the system firmware.  And like a reboot
573           you can start any kernel with it, not just Linux.
575           The name comes from the similarity to the exec system call.
577           It is an ongoing process to be certain the hardware in a machine
578           is properly shutdown, so do not be surprised if this code does not
579           initially work for you.  It may help to enable device hotplugging
580           support.  As of this writing the exact hardware interface is
581           strongly in flux, so no good recommendation can be made.
583 config CRASH_DUMP
584         bool "kernel crash dumps (EXPERIMENTAL)"
585         depends on SUPERH32 && EXPERIMENTAL
586         help
587           Generate crash dump after being started by kexec.
588           This should be normally only set in special crash dump kernels
589           which are loaded in the main kernel with kexec-tools into
590           a specially reserved region and then later executed after
591           a crash by kdump/kexec. The crash dump kernel must be compiled
592           to a memory address not used by the main kernel using
593           MEMORY_START.
595           For more details see Documentation/kdump/kdump.txt
597 config KEXEC_JUMP
598         bool "kexec jump (EXPERIMENTAL)"
599         depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
600         help
601           Jump between original kernel and kexeced kernel and invoke
602           code via KEXEC
604 config SECCOMP
605         bool "Enable seccomp to safely compute untrusted bytecode"
606         depends on PROC_FS
607         help
608           This kernel feature is useful for number crunching applications
609           that may need to compute untrusted bytecode during their
610           execution. By using pipes or other transports made available to
611           the process as file descriptors supporting the read/write
612           syscalls, it's possible to isolate those applications in
613           their own address space using seccomp. Once seccomp is
614           enabled via prctl, it cannot be disabled and the task is only
615           allowed to execute a few safe syscalls defined by each seccomp
616           mode.
618           If unsure, say N.
620 config SMP
621         bool "Symmetric multi-processing support"
622         depends on SYS_SUPPORTS_SMP
623         select USE_GENERIC_SMP_HELPERS
624         ---help---
625           This enables support for systems with more than one CPU. If you have
626           a system with only one CPU, like most personal computers, say N. If
627           you have a system with more than one CPU, say Y.
629           If you say N here, the kernel will run on single and multiprocessor
630           machines, but will use only one CPU of a multiprocessor machine. If
631           you say Y here, the kernel will run on many, but not all,
632           singleprocessor machines. On a singleprocessor machine, the kernel
633           will run faster if you say N here.
635           People using multiprocessor machines who say Y here should also say
636           Y to "Enhanced Real Time Clock Support", below.
638           See also <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO
639           available at <http://www.tldp.org/docs.html#howto>.
641           If you don't know what to do here, say N.
643 config NR_CPUS
644         int "Maximum number of CPUs (2-32)"
645         range 2 32
646         depends on SMP
647         default "4" if CPU_SHX3
648         default "2"
649         help
650           This allows you to specify the maximum number of CPUs which this
651           kernel will support.  The maximum supported value is 32 and the
652           minimum value which makes sense is 2.
654           This is purely to save memory - each supported CPU adds
655           approximately eight kilobytes to the kernel image.
657 source "kernel/Kconfig.preempt"
659 config GUSA
660         def_bool y
661         depends on !SMP && SUPERH32
662         help
663           This enables support for gUSA (general UserSpace Atomicity).
664           This is the default implementation for both UP and non-ll/sc
665           CPUs, and is used by the libc, amongst others.
667           For additional information, design information can be found 
668           in <http://lc.linux.or.jp/lc2002/papers/niibe0919p.pdf>.
670           This should only be disabled for special cases where alternate
671           atomicity implementations exist.
673 config GUSA_RB
674         bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
675         depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
676         help
677           Enabling this option will allow the kernel to implement some
678           atomic operations using a software implementation of load-locked/
679           store-conditional (LLSC). On machines which do not have hardware
680           LLSC, this should be more efficient than the other alternative of
681           disabling interrupts around the atomic sequence.
683 endmenu
685 menu "Boot options"
687 config ZERO_PAGE_OFFSET
688         hex
689         default "0x00010000" if PAGE_SIZE_64KB || SH_RTS7751R2D || \
690                                 SH_7751_SOLUTION_ENGINE
691         default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
692         default "0x00002000" if PAGE_SIZE_8KB
693         default "0x00001000"
694         help
695           This sets the default offset of zero page.
697 config BOOT_LINK_OFFSET
698         hex
699         default "0x00210000" if SH_SHMIN
700         default "0x00400000" if SH_CAYMAN
701         default "0x00810000" if SH_7780_SOLUTION_ENGINE
702         default "0x009e0000" if SH_TITAN
703         default "0x01800000" if SH_SDK7780
704         default "0x02000000" if SH_EDOSK7760
705         default "0x00800000"
706         help
707           This option allows you to set the link address offset of the zImage.
708           This can be useful if you are on a board which has a small amount of
709           memory.
711 config ENTRY_OFFSET
712         hex
713         default "0x00001000" if PAGE_SIZE_4KB
714         default "0x00002000" if PAGE_SIZE_8KB
715         default "0x00004000" if PAGE_SIZE_16KB
716         default "0x00010000" if PAGE_SIZE_64KB
717         default "0x00000000"
719 config UBC_WAKEUP
720         bool "Wakeup UBC on startup"
721         depends on CPU_SH4 && !CPU_SH4A
722         help
723           Selecting this option will wakeup the User Break Controller (UBC) on
724           startup. Although the UBC is left in an awake state when the processor
725           comes up, some boot loaders misbehave by putting the UBC to sleep in a
726           power saving state, which causes issues with things like ptrace().
728           If unsure, say N.
730 config CMDLINE_BOOL
731         bool "Default bootloader kernel arguments"
733 config CMDLINE
734         string "Initial kernel command string"
735         depends on CMDLINE_BOOL
736         default "console=ttySC1,115200"
738 endmenu
740 menu "Bus options"
742 config SUPERHYWAY
743         tristate "SuperHyway Bus support"
744         depends on CPU_SUBTYPE_SH4_202
746 config MAPLE
747         bool "Maple Bus support"
748         depends on SH_DREAMCAST
749         help
750          The Maple Bus is SEGA's serial communication bus for peripherals
751          on the Dreamcast. Without this bus support you won't be able to
752          get your Dreamcast keyboard etc to work, so most users
753          probably want to say 'Y' here, unless you are only using the
754          Dreamcast with a serial line terminal or a remote network
755          connection.
757 source "arch/sh/drivers/pci/Kconfig"
759 source "drivers/pci/pcie/Kconfig"
761 source "drivers/pci/Kconfig"
763 source "drivers/pcmcia/Kconfig"
765 source "drivers/pci/hotplug/Kconfig"
767 endmenu
769 menu "Executable file formats"
771 source "fs/Kconfig.binfmt"
773 endmenu
775 menu "Power management options (EXPERIMENTAL)"
776 depends on EXPERIMENTAL
778 source "kernel/power/Kconfig"
780 source "drivers/cpuidle/Kconfig"
782 endmenu
784 source "net/Kconfig"
786 source "drivers/Kconfig"
788 source "fs/Kconfig"
790 source "arch/sh/Kconfig.debug"
792 source "security/Kconfig"
794 source "crypto/Kconfig"
796 source "lib/Kconfig"