Blackfin arch: Convert Blackfin GPIO driver to use common gpiolib/gpiochip infrastructure
[linux-2.6.git] / arch / blackfin / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5
6 mainmenu "Blackfin Kernel Configuration"
7
8 config MMU
9         bool
10         default n
11
12 config FPU
13         bool
14         default n
15
16 config RWSEM_GENERIC_SPINLOCK
17         bool
18         default y
19
20 config RWSEM_XCHGADD_ALGORITHM
21         bool
22         default n
23
24 config BLACKFIN
25         bool
26         default y
27         select HAVE_IDE
28         select HAVE_OPROFILE
29         select ARCH_WANT_OPTIONAL_GPIOLIB
30
31 config ZONE_DMA
32         bool
33         default y
34
35 config GENERIC_FIND_NEXT_BIT
36         bool
37         default y
38
39 config GENERIC_HWEIGHT
40         bool
41         default y
42
43 config GENERIC_HARDIRQS
44         bool
45         default y
46
47 config GENERIC_IRQ_PROBE
48         bool
49         default y
50
51 config GENERIC_GPIO
52         bool
53         default y
54
55 config FORCE_MAX_ZONEORDER
56         int
57         default "14"
58
59 config GENERIC_CALIBRATE_DELAY
60         bool
61         default y
62
63 config HARDWARE_PM
64         def_bool y
65         depends on OPROFILE
66
67 source "init/Kconfig"
68
69 source "kernel/Kconfig.preempt"
70
71 source "kernel/Kconfig.freezer"
72
73 menu "Blackfin Processor Options"
74
75 comment "Processor and Board Settings"
76
77 choice
78         prompt "CPU"
79         default BF533
80
81 config BF512
82         bool "BF512"
83         help
84           BF512 Processor Support.
85
86 config BF514
87         bool "BF514"
88         help
89           BF514 Processor Support.
90
91 config BF516
92         bool "BF516"
93         help
94           BF516 Processor Support.
95
96 config BF518
97         bool "BF518"
98         help
99           BF518 Processor Support.
100
101 config BF522
102         bool "BF522"
103         help
104           BF522 Processor Support.
105
106 config BF523
107         bool "BF523"
108         help
109           BF523 Processor Support.
110
111 config BF524
112         bool "BF524"
113         help
114           BF524 Processor Support.
115
116 config BF525
117         bool "BF525"
118         help
119           BF525 Processor Support.
120
121 config BF526
122         bool "BF526"
123         help
124           BF526 Processor Support.
125
126 config BF527
127         bool "BF527"
128         help
129           BF527 Processor Support.
130
131 config BF531
132         bool "BF531"
133         help
134           BF531 Processor Support.
135
136 config BF532
137         bool "BF532"
138         help
139           BF532 Processor Support.
140
141 config BF533
142         bool "BF533"
143         help
144           BF533 Processor Support.
145
146 config BF534
147         bool "BF534"
148         help
149           BF534 Processor Support.
150
151 config BF536
152         bool "BF536"
153         help
154           BF536 Processor Support.
155
156 config BF537
157         bool "BF537"
158         help
159           BF537 Processor Support.
160
161 config BF538
162         bool "BF538"
163         help
164           BF538 Processor Support.
165
166 config BF539
167         bool "BF539"
168         help
169           BF539 Processor Support.
170
171 config BF542
172         bool "BF542"
173         help
174           BF542 Processor Support.
175
176 config BF544
177         bool "BF544"
178         help
179           BF544 Processor Support.
180
181 config BF547
182         bool "BF547"
183         help
184           BF547 Processor Support.
185
186 config BF548
187         bool "BF548"
188         help
189           BF548 Processor Support.
190
191 config BF549
192         bool "BF549"
193         help
194           BF549 Processor Support.
195
196 config BF561
197         bool "BF561"
198         help
199           BF561 Processor Support.
200
201 endchoice
202
203 config BF_REV_MIN
204         int
205         default 0 if (BF51x || BF52x || BF54x)
206         default 2 if (BF537 || BF536 || BF534)
207         default 3 if (BF561 ||BF533 || BF532 || BF531)
208         default 4 if (BF538 || BF539)
209
210 config BF_REV_MAX
211         int
212         default 2 if (BF51x || BF52x || BF54x)
213         default 3 if (BF537 || BF536 || BF534)
214         default 5 if (BF561 || BF538 || BF539)
215         default 6 if (BF533 || BF532 || BF531)
216
217 choice
218         prompt "Silicon Rev"
219         default BF_REV_0_1 if (BF51x || BF52x || BF54x)
220         default BF_REV_0_2 if (BF534 || BF536 || BF537)
221         default BF_REV_0_3 if (BF531 || BF532 || BF533 || BF561)
222
223 config BF_REV_0_0
224         bool "0.0"
225         depends on (BF51x || BF52x || BF54x)
226
227 config BF_REV_0_1
228         bool "0.1"
229         depends on (BF52x || BF54x)
230
231 config BF_REV_0_2
232         bool "0.2"
233         depends on (BF52x || BF537 || BF536 || BF534 || BF54x)
234
235 config BF_REV_0_3
236         bool "0.3"
237         depends on (BF561 || BF537 || BF536 || BF534 || BF533 || BF532 || BF531)
238
239 config BF_REV_0_4
240         bool "0.4"
241         depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
242
243 config BF_REV_0_5
244         bool "0.5"
245         depends on (BF561 || BF533 || BF532 || BF531 || BF538 || BF539)
246
247 config BF_REV_0_6
248         bool "0.6"
249         depends on (BF533 || BF532 || BF531)
250
251 config BF_REV_ANY
252         bool "any"
253
254 config BF_REV_NONE
255         bool "none"
256
257 endchoice
258
259 config BF51x
260         bool
261         depends on (BF512 || BF514 || BF516 || BF518)
262         default y
263
264 config BF52x
265         bool
266         depends on (BF522 || BF523 || BF524 || BF525 || BF526 || BF527)
267         default y
268
269 config BF53x
270         bool
271         depends on (BF531 || BF532 || BF533 || BF534 || BF536 || BF537)
272         default y
273
274 config BF54x
275         bool
276         depends on (BF542 || BF544 || BF547 || BF548 || BF549)
277         default y
278
279 config MEM_GENERIC_BOARD
280         bool
281         depends on GENERIC_BOARD
282         default y
283
284 config MEM_MT48LC64M4A2FB_7E
285         bool
286         depends on (BFIN533_STAMP)
287         default y
288
289 config MEM_MT48LC16M16A2TG_75
290         bool
291         depends on (BFIN533_EZKIT || BFIN561_EZKIT \
292                 || BFIN533_BLUETECHNIX_CM || BFIN537_BLUETECHNIX_CM \
293                 || H8606_HVSISTEMAS || BFIN527_BLUETECHNIX_CM)
294         default y
295
296 config MEM_MT48LC32M8A2_75
297         bool
298         depends on (BFIN537_STAMP || PNAV10 || BFIN538_EZKIT)
299         default y
300
301 config MEM_MT48LC8M32B2B5_7
302         bool
303         depends on (BFIN561_BLUETECHNIX_CM)
304         default y
305
306 config MEM_MT48LC32M16A2TG_75
307         bool
308         depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP || BFIN526_EZBRD)
309         default y
310
311 source "arch/blackfin/mach-bf518/Kconfig"
312 source "arch/blackfin/mach-bf527/Kconfig"
313 source "arch/blackfin/mach-bf533/Kconfig"
314 source "arch/blackfin/mach-bf561/Kconfig"
315 source "arch/blackfin/mach-bf537/Kconfig"
316 source "arch/blackfin/mach-bf538/Kconfig"
317 source "arch/blackfin/mach-bf548/Kconfig"
318
319 menu "Board customizations"
320
321 config CMDLINE_BOOL
322         bool "Default bootloader kernel arguments"
323
324 config CMDLINE
325         string "Initial kernel command string"
326         depends on CMDLINE_BOOL
327         default "console=ttyBF0,57600"
328         help
329           If you don't have a boot loader capable of passing a command line string
330           to the kernel, you may specify one here. As a minimum, you should specify
331           the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
332
333 config BOOT_LOAD
334         hex "Kernel load address for booting"
335         default "0x1000"
336         range 0x1000 0x20000000
337         help
338           This option allows you to set the load address of the kernel.
339           This can be useful if you are on a board which has a small amount
340           of memory or you wish to reserve some memory at the beginning of
341           the address space.
342
343           Note that you need to keep this value above 4k (0x1000) as this
344           memory region is used to capture NULL pointer references as well
345           as some core kernel functions.
346
347 config ROM_BASE
348         hex "Kernel ROM Base"
349         default "0x20040000"
350         range 0x20000000 0x20400000 if !(BF54x || BF561)
351         range 0x20000000 0x30000000 if (BF54x || BF561)
352         help
353
354 comment "Clock/PLL Setup"
355
356 config CLKIN_HZ
357         int "Frequency of the crystal on the board in Hz"
358         default "11059200" if BFIN533_STAMP
359         default "27000000" if BFIN533_EZKIT
360         default "25000000" if (BFIN537_STAMP || BFIN527_EZKIT || H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN538_EZKIT || BFIN518F-EZBRD)
361         default "30000000" if BFIN561_EZKIT
362         default "24576000" if PNAV10
363         default "10000000" if BFIN532_IP0X
364         help
365           The frequency of CLKIN crystal oscillator on the board in Hz.
366           Warning: This value should match the crystal on the board. Otherwise,
367           peripherals won't work properly.
368
369 config BFIN_KERNEL_CLOCK
370         bool "Re-program Clocks while Kernel boots?"
371         default n
372         help
373           This option decides if kernel clocks are re-programed from the
374           bootloader settings. If the clocks are not set, the SDRAM settings
375           are also not changed, and the Bootloader does 100% of the hardware
376           configuration.
377
378 config PLL_BYPASS
379         bool "Bypass PLL"
380         depends on BFIN_KERNEL_CLOCK
381         default n
382
383 config CLKIN_HALF
384         bool "Half Clock In"
385         depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
386         default n
387         help
388           If this is set the clock will be divided by 2, before it goes to the PLL.
389
390 config VCO_MULT
391         int "VCO Multiplier"
392         depends on BFIN_KERNEL_CLOCK && (! PLL_BYPASS)
393         range 1 64
394         default "22" if BFIN533_EZKIT
395         default "45" if BFIN533_STAMP
396         default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
397         default "22" if BFIN533_BLUETECHNIX_CM
398         default "20" if (BFIN537_BLUETECHNIX_CM || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
399         default "20" if BFIN561_EZKIT
400         default "16" if (H8606_HVSISTEMAS || BLACKSTAMP || BFIN526_EZBRD || BFIN518F_EZBRD)
401         help
402           This controls the frequency of the on-chip PLL. This can be between 1 and 64.
403           PLL Frequency = (Crystal Frequency) * (this setting)
404
405 choice
406         prompt "Core Clock Divider"
407         depends on BFIN_KERNEL_CLOCK
408         default CCLK_DIV_1
409         help
410           This sets the frequency of the core. It can be 1, 2, 4 or 8
411           Core Frequency = (PLL frequency) / (this setting)
412
413 config CCLK_DIV_1
414         bool "1"
415
416 config CCLK_DIV_2
417         bool "2"
418
419 config CCLK_DIV_4
420         bool "4"
421
422 config CCLK_DIV_8
423         bool "8"
424 endchoice
425
426 config SCLK_DIV
427         int "System Clock Divider"
428         depends on BFIN_KERNEL_CLOCK
429         range 1 15
430         default 5
431         help
432           This sets the frequency of the system clock (including SDRAM or DDR).
433           This can be between 1 and 15
434           System Clock = (PLL frequency) / (this setting)
435
436 choice
437         prompt "DDR SDRAM Chip Type"
438         depends on BFIN_KERNEL_CLOCK
439         depends on BF54x
440         default MEM_MT46V32M16_5B
441
442 config MEM_MT46V32M16_6T
443         bool "MT46V32M16_6T"
444
445 config MEM_MT46V32M16_5B
446         bool "MT46V32M16_5B"
447 endchoice
448
449 config MAX_MEM_SIZE
450         int "Max SDRAM Memory Size in MBytes"
451         depends on !MPU
452         default 512
453         help
454           This is the max memory size that the kernel will create CPLB
455           tables for.  Your system will not be able to handle any more.
456
457 #
458 # Max & Min Speeds for various Chips
459 #
460 config MAX_VCO_HZ
461         int
462         default 400000000 if BF512
463         default 400000000 if BF514
464         default 400000000 if BF516
465         default 400000000 if BF518
466         default 600000000 if BF522
467         default 400000000 if BF523
468         default 400000000 if BF524
469         default 600000000 if BF525
470         default 400000000 if BF526
471         default 600000000 if BF527
472         default 400000000 if BF531
473         default 400000000 if BF532
474         default 750000000 if BF533
475         default 500000000 if BF534
476         default 400000000 if BF536
477         default 600000000 if BF537
478         default 533333333 if BF538
479         default 533333333 if BF539
480         default 600000000 if BF542
481         default 533333333 if BF544
482         default 600000000 if BF547
483         default 600000000 if BF548
484         default 533333333 if BF549
485         default 600000000 if BF561
486
487 config MIN_VCO_HZ
488         int
489         default 50000000
490
491 config MAX_SCLK_HZ
492         int
493         default 133333333
494
495 config MIN_SCLK_HZ
496         int
497         default 27000000
498
499 comment "Kernel Timer/Scheduler"
500
501 source kernel/Kconfig.hz
502
503 config GENERIC_TIME
504         bool "Generic time"
505         default y
506
507 config GENERIC_CLOCKEVENTS
508         bool "Generic clock events"
509         depends on GENERIC_TIME
510         default y
511
512 config CYCLES_CLOCKSOURCE
513         bool "Use 'CYCLES' as a clocksource (EXPERIMENTAL)"
514         depends on EXPERIMENTAL
515         depends on GENERIC_CLOCKEVENTS
516         depends on !BFIN_SCRATCH_REG_CYCLES
517         default n
518         help
519           If you say Y here, you will enable support for using the 'cycles'
520           registers as a clock source.  Doing so means you will be unable to
521           safely write to the 'cycles' register during runtime.  You will
522           still be able to read it (such as for performance monitoring), but
523           writing the registers will most likely crash the kernel.
524
525 source kernel/time/Kconfig
526
527 comment "Misc"
528
529 choice
530         prompt "Blackfin Exception Scratch Register"
531         default BFIN_SCRATCH_REG_RETN
532         help
533           Select the resource to reserve for the Exception handler:
534             - RETN: Non-Maskable Interrupt (NMI)
535             - RETE: Exception Return (JTAG/ICE)
536             - CYCLES: Performance counter
537
538           If you are unsure, please select "RETN".
539
540 config BFIN_SCRATCH_REG_RETN
541         bool "RETN"
542         help
543           Use the RETN register in the Blackfin exception handler
544           as a stack scratch register.  This means you cannot
545           safely use NMI on the Blackfin while running Linux, but
546           you can debug the system with a JTAG ICE and use the
547           CYCLES performance registers.
548
549           If you are unsure, please select "RETN".
550
551 config BFIN_SCRATCH_REG_RETE
552         bool "RETE"
553         help
554           Use the RETE register in the Blackfin exception handler
555           as a stack scratch register.  This means you cannot
556           safely use a JTAG ICE while debugging a Blackfin board,
557           but you can safely use the CYCLES performance registers
558           and the NMI.
559
560           If you are unsure, please select "RETN".
561
562 config BFIN_SCRATCH_REG_CYCLES
563         bool "CYCLES"
564         help
565           Use the CYCLES register in the Blackfin exception handler
566           as a stack scratch register.  This means you cannot
567           safely use the CYCLES performance registers on a Blackfin
568           board at anytime, but you can debug the system with a JTAG
569           ICE and use the NMI.
570
571           If you are unsure, please select "RETN".
572
573 endchoice
574
575 endmenu
576
577
578 menu "Blackfin Kernel Optimizations"
579
580 comment "Memory Optimizations"
581
582 config I_ENTRY_L1
583         bool "Locate interrupt entry code in L1 Memory"
584         default y
585         help
586           If enabled, interrupt entry code (STORE/RESTORE CONTEXT) is linked
587           into L1 instruction memory. (less latency)
588
589 config EXCPT_IRQ_SYSC_L1
590         bool "Locate entire ASM lowlevel exception / interrupt - Syscall and CPLB handler code in L1 Memory"
591         default y
592         help
593           If enabled, the entire ASM lowlevel exception and interrupt entry code
594           (STORE/RESTORE CONTEXT) is linked into L1 instruction memory.
595           (less latency)
596
597 config DO_IRQ_L1
598         bool "Locate frequently called do_irq dispatcher function in L1 Memory"
599         default y
600         help
601           If enabled, the frequently called do_irq dispatcher function is linked
602           into L1 instruction memory. (less latency)
603
604 config CORE_TIMER_IRQ_L1
605         bool "Locate frequently called timer_interrupt() function in L1 Memory"
606         default y
607         help
608           If enabled, the frequently called timer_interrupt() function is linked
609           into L1 instruction memory. (less latency)
610
611 config IDLE_L1
612         bool "Locate frequently idle function in L1 Memory"
613         default y
614         help
615           If enabled, the frequently called idle function is linked
616           into L1 instruction memory. (less latency)
617
618 config SCHEDULE_L1
619         bool "Locate kernel schedule function in L1 Memory"
620         default y
621         help
622           If enabled, the frequently called kernel schedule is linked
623           into L1 instruction memory. (less latency)
624
625 config ARITHMETIC_OPS_L1
626         bool "Locate kernel owned arithmetic functions in L1 Memory"
627         default y
628         help
629           If enabled, arithmetic functions are linked
630           into L1 instruction memory. (less latency)
631
632 config ACCESS_OK_L1
633         bool "Locate access_ok function in L1 Memory"
634         default y
635         help
636           If enabled, the access_ok function is linked
637           into L1 instruction memory. (less latency)
638
639 config MEMSET_L1
640         bool "Locate memset function in L1 Memory"
641         default y
642         help
643           If enabled, the memset function is linked
644           into L1 instruction memory. (less latency)
645
646 config MEMCPY_L1
647         bool "Locate memcpy function in L1 Memory"
648         default y
649         help
650           If enabled, the memcpy function is linked
651           into L1 instruction memory. (less latency)
652
653 config SYS_BFIN_SPINLOCK_L1
654         bool "Locate sys_bfin_spinlock function in L1 Memory"
655         default y
656         help
657           If enabled, sys_bfin_spinlock function is linked
658           into L1 instruction memory. (less latency)
659
660 config IP_CHECKSUM_L1
661         bool "Locate IP Checksum function in L1 Memory"
662         default n
663         help
664           If enabled, the IP Checksum function is linked
665           into L1 instruction memory. (less latency)
666
667 config CACHELINE_ALIGNED_L1
668         bool "Locate cacheline_aligned data to L1 Data Memory"
669         default y if !BF54x
670         default n if BF54x
671         depends on !BF531
672         help
673           If enabled, cacheline_anligned data is linked
674           into L1 data memory. (less latency)
675
676 config SYSCALL_TAB_L1
677         bool "Locate Syscall Table L1 Data Memory"
678         default n
679         depends on !BF531
680         help
681           If enabled, the Syscall LUT is linked
682           into L1 data memory. (less latency)
683
684 config CPLB_SWITCH_TAB_L1
685         bool "Locate CPLB Switch Tables L1 Data Memory"
686         default n
687         depends on !BF531
688         help
689           If enabled, the CPLB Switch Tables are linked
690           into L1 data memory. (less latency)
691
692 config APP_STACK_L1
693         bool "Support locating application stack in L1 Scratch Memory"
694         default y
695         help
696           If enabled the application stack can be located in L1
697           scratch memory (less latency).
698
699           Currently only works with FLAT binaries.
700
701 config EXCEPTION_L1_SCRATCH
702         bool "Locate exception stack in L1 Scratch Memory"
703         default n
704         depends on !APP_STACK_L1 && !SYSCALL_TAB_L1
705         help
706           Whenever an exception occurs, use the L1 Scratch memory for
707           stack storage.  You cannot place the stacks of FLAT binaries
708           in L1 when using this option.
709
710           If you don't use L1 Scratch, then you should say Y here.
711
712 comment "Speed Optimizations"
713 config BFIN_INS_LOWOVERHEAD
714         bool "ins[bwl] low overhead, higher interrupt latency"
715         default y
716         help
717           Reads on the Blackfin are speculative. In Blackfin terms, this means
718           they can be interrupted at any time (even after they have been issued
719           on to the external bus), and re-issued after the interrupt occurs.
720           For memory - this is not a big deal, since memory does not change if
721           it sees a read.
722
723           If a FIFO is sitting on the end of the read, it will see two reads,
724           when the core only sees one since the FIFO receives both the read
725           which is cancelled (and not delivered to the core) and the one which
726           is re-issued (which is delivered to the core).
727
728           To solve this, interrupts are turned off before reads occur to
729           I/O space. This option controls which the overhead/latency of
730           controlling interrupts during this time
731            "n" turns interrupts off every read
732                 (higher overhead, but lower interrupt latency)
733            "y" turns interrupts off every loop
734                 (low overhead, but longer interrupt latency)
735
736           default behavior is to leave this set to on (type "Y"). If you are experiencing
737           interrupt latency issues, it is safe and OK to turn this off.
738
739 endmenu
740
741
742 choice
743         prompt "Kernel executes from"
744         help
745           Choose the memory type that the kernel will be running in.
746
747 config RAMKERNEL
748         bool "RAM"
749         help
750           The kernel will be resident in RAM when running.
751
752 config ROMKERNEL
753         bool "ROM"
754         help
755           The kernel will be resident in FLASH/ROM when running.
756
757 endchoice
758
759 source "mm/Kconfig"
760
761 config BFIN_GPTIMERS
762         tristate "Enable Blackfin General Purpose Timers API"
763         default n
764         help
765           Enable support for the General Purpose Timers API.  If you
766           are unsure, say N.
767
768           To compile this driver as a module, choose M here: the module
769           will be called gptimers.ko.
770
771 config BFIN_DMA_5XX
772         bool "Enable DMA Support"
773         default y
774         help
775           DMA driver for Blackfin parts.
776
777 choice
778         prompt "Uncached DMA region"
779         default DMA_UNCACHED_1M
780         depends on BFIN_DMA_5XX
781 config DMA_UNCACHED_4M
782         bool "Enable 4M DMA region"
783 config DMA_UNCACHED_2M
784         bool "Enable 2M DMA region"
785 config DMA_UNCACHED_1M
786         bool "Enable 1M DMA region"
787 config DMA_UNCACHED_NONE
788         bool "Disable DMA region"
789 endchoice
790
791
792 comment "Cache Support"
793 config BFIN_ICACHE
794         bool "Enable ICACHE"
795 config BFIN_DCACHE
796         bool "Enable DCACHE"
797 config BFIN_DCACHE_BANKA
798         bool "Enable only 16k BankA DCACHE - BankB is SRAM"
799         depends on BFIN_DCACHE && !BF531
800         default n
801 config BFIN_ICACHE_LOCK
802         bool "Enable Instruction Cache Locking"
803
804 choice
805         prompt "Policy"
806         depends on BFIN_DCACHE
807         default BFIN_WB
808 config BFIN_WB
809         bool "Write back"
810         help
811           Write Back Policy:
812             Cached data will be written back to SDRAM only when needed.
813             This can give a nice increase in performance, but beware of
814             broken drivers that do not properly invalidate/flush their
815             cache.
816
817           Write Through Policy:
818             Cached data will always be written back to SDRAM when the
819             cache is updated.  This is a completely safe setting, but
820             performance is worse than Write Back.
821
822           If you are unsure of the options and you want to be safe,
823           then go with Write Through.
824
825 config BFIN_WT
826         bool "Write through"
827         help
828           Write Back Policy:
829             Cached data will be written back to SDRAM only when needed.
830             This can give a nice increase in performance, but beware of
831             broken drivers that do not properly invalidate/flush their
832             cache.
833
834           Write Through Policy:
835             Cached data will always be written back to SDRAM when the
836             cache is updated.  This is a completely safe setting, but
837             performance is worse than Write Back.
838
839           If you are unsure of the options and you want to be safe,
840           then go with Write Through.
841
842 endchoice
843
844 config BFIN_L2_CACHEABLE
845         bool "Cache L2 SRAM"
846         depends on (BFIN_DCACHE || BFIN_ICACHE) && (BF54x || BF561)
847         default n
848         help
849           Select to make L2 SRAM cacheable in L1 data and instruction cache.
850
851 config MPU
852         bool "Enable the memory protection unit (EXPERIMENTAL)"
853         default n
854         help
855           Use the processor's MPU to protect applications from accessing
856           memory they do not own.  This comes at a performance penalty
857           and is recommended only for debugging.
858
859 comment "Asynchonous Memory Configuration"
860
861 menu "EBIU_AMGCTL Global Control"
862 config C_AMCKEN
863         bool "Enable CLKOUT"
864         default y
865
866 config C_CDPRIO
867         bool "DMA has priority over core for ext. accesses"
868         default n
869
870 config C_B0PEN
871         depends on BF561
872         bool "Bank 0 16 bit packing enable"
873         default y
874
875 config C_B1PEN
876         depends on BF561
877         bool "Bank 1 16 bit packing enable"
878         default y
879
880 config C_B2PEN
881         depends on BF561
882         bool "Bank 2 16 bit packing enable"
883         default y
884
885 config C_B3PEN
886         depends on BF561
887         bool "Bank 3 16 bit packing enable"
888         default n
889
890 choice
891         prompt"Enable Asynchonous Memory Banks"
892         default C_AMBEN_ALL
893
894 config C_AMBEN
895         bool "Disable All Banks"
896
897 config C_AMBEN_B0
898         bool "Enable Bank 0"
899
900 config C_AMBEN_B0_B1
901         bool "Enable Bank 0 & 1"
902
903 config C_AMBEN_B0_B1_B2
904         bool "Enable Bank 0 & 1 & 2"
905
906 config C_AMBEN_ALL
907         bool "Enable All Banks"
908 endchoice
909 endmenu
910
911 menu "EBIU_AMBCTL Control"
912 config BANK_0
913         hex "Bank 0"
914         default 0x7BB0
915
916 config BANK_1
917         hex "Bank 1"
918         default 0x7BB0
919         default 0x5558 if BF54x
920
921 config BANK_2
922         hex "Bank 2"
923         default 0x7BB0
924
925 config BANK_3
926         hex "Bank 3"
927         default 0x99B3
928 endmenu
929
930 config EBIU_MBSCTLVAL
931         hex "EBIU Bank Select Control Register"
932         depends on BF54x
933         default 0
934
935 config EBIU_MODEVAL
936         hex "Flash Memory Mode Control Register"
937         depends on BF54x
938         default 1
939
940 config EBIU_FCTLVAL
941         hex "Flash Memory Bank Control Register"
942         depends on BF54x
943         default 6
944 endmenu
945
946 #############################################################################
947 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
948
949 config PCI
950         bool "PCI support"
951         depends on BROKEN
952         help
953           Support for PCI bus.
954
955 source "drivers/pci/Kconfig"
956
957 config HOTPLUG
958         bool "Support for hot-pluggable device"
959           help
960           Say Y here if you want to plug devices into your computer while
961           the system is running, and be able to use them quickly.  In many
962           cases, the devices can likewise be unplugged at any time too.
963
964           One well known example of this is PCMCIA- or PC-cards, credit-card
965           size devices such as network cards, modems or hard drives which are
966           plugged into slots found on all modern laptop computers.  Another
967           example, used on modern desktops as well as laptops, is USB.
968
969           Enable HOTPLUG and build a modular kernel.  Get agent software
970           (from <http://linux-hotplug.sourceforge.net/>) and install it.
971           Then your kernel will automatically call out to a user mode "policy
972           agent" (/sbin/hotplug) to load modules and set up software needed
973           to use devices as you hotplug them.
974
975 source "drivers/pcmcia/Kconfig"
976
977 source "drivers/pci/hotplug/Kconfig"
978
979 endmenu
980
981 menu "Executable file formats"
982
983 source "fs/Kconfig.binfmt"
984
985 endmenu
986
987 menu "Power management options"
988 source "kernel/power/Kconfig"
989
990 config ARCH_SUSPEND_POSSIBLE
991         def_bool y
992         depends on !SMP
993
994 choice
995         prompt "Standby Power Saving Mode"
996         depends on PM
997         default PM_BFIN_SLEEP_DEEPER
998 config  PM_BFIN_SLEEP_DEEPER
999         bool "Sleep Deeper"
1000         help
1001           Sleep "Deeper" Mode (High Power Savings) - This mode reduces dynamic
1002           power dissipation by disabling the clock to the processor core (CCLK).
1003           Furthermore, Standby sets the internal power supply voltage (VDDINT)
1004           to 0.85 V to provide the greatest power savings, while preserving the
1005           processor state.
1006           The PLL and system clock (SCLK) continue to operate at a very low
1007           frequency of about 3.3 MHz. To preserve data integrity in the SDRAM,
1008           the SDRAM is put into Self Refresh Mode. Typically an external event
1009           such as GPIO interrupt or RTC activity wakes up the processor.
1010           Various Peripherals such as UART, SPORT, PPI may not function as
1011           normal during Sleep Deeper, due to the reduced SCLK frequency.
1012           When in the sleep mode, system DMA access to L1 memory is not supported.
1013
1014           If unsure, select "Sleep Deeper".
1015
1016 config  PM_BFIN_SLEEP
1017         bool "Sleep"
1018         help
1019           Sleep Mode (High Power Savings) - The sleep mode reduces power
1020           dissipation by disabling the clock to the processor core (CCLK).
1021           The PLL and system clock (SCLK), however, continue to operate in
1022           this mode. Typically an external event or RTC activity will wake
1023           up the processor. When in the sleep mode, system DMA access to L1
1024           memory is not supported.
1025
1026           If unsure, select "Sleep Deeper".
1027 endchoice
1028
1029 config PM_WAKEUP_BY_GPIO
1030         bool "Allow Wakeup from Standby by GPIO"
1031
1032 config PM_WAKEUP_GPIO_NUMBER
1033         int "GPIO number"
1034         range 0 47
1035         depends on PM_WAKEUP_BY_GPIO
1036         default 2 if BFIN537_STAMP
1037
1038 choice
1039         prompt "GPIO Polarity"
1040         depends on PM_WAKEUP_BY_GPIO
1041         default PM_WAKEUP_GPIO_POLAR_H
1042 config  PM_WAKEUP_GPIO_POLAR_H
1043         bool "Active High"
1044 config  PM_WAKEUP_GPIO_POLAR_L
1045         bool "Active Low"
1046 config  PM_WAKEUP_GPIO_POLAR_EDGE_F
1047         bool "Falling EDGE"
1048 config  PM_WAKEUP_GPIO_POLAR_EDGE_R
1049         bool "Rising EDGE"
1050 config  PM_WAKEUP_GPIO_POLAR_EDGE_B
1051         bool "Both EDGE"
1052 endchoice
1053
1054 comment "Possible Suspend Mem / Hibernate Wake-Up Sources"
1055         depends on PM
1056
1057 config PM_BFIN_WAKE_PH6
1058         bool "Allow Wake-Up from on-chip PHY or PH6 GP"
1059         depends on PM && (BF51x || BF52x || BF534 || BF536 || BF537)
1060         default n
1061         help
1062           Enable PHY and PH6 GP Wake-Up (Voltage Regulator Power-Up)
1063
1064 config PM_BFIN_WAKE_GP
1065         bool "Allow Wake-Up from GPIOs"
1066         depends on PM && BF54x
1067         default n
1068         help
1069           Enable General-Purpose Wake-Up (Voltage Regulator Power-Up)
1070 endmenu
1071
1072 menu "CPU Frequency scaling"
1073
1074 source "drivers/cpufreq/Kconfig"
1075
1076 config CPU_VOLTAGE
1077         bool "CPU Voltage scaling"
1078         depends on EXPERIMENTAL 
1079         depends on CPU_FREQ
1080         default n
1081         help
1082           Say Y here if you want CPU voltage scaling according to the CPU frequency.
1083           This option violates the PLL BYPASS recommendation in the Blackfin Processor
1084           manuals. There is a theoretical risk that during VDDINT transitions 
1085           the PLL may unlock.
1086
1087 endmenu
1088
1089 source "net/Kconfig"
1090
1091 source "drivers/Kconfig"
1092
1093 source "fs/Kconfig"
1094
1095 source "arch/blackfin/Kconfig.debug"
1096
1097 source "security/Kconfig"
1098
1099 source "crypto/Kconfig"
1100
1101 source "lib/Kconfig"