9e58e1855c
This patch enables CPU frequency scaling for AT32AP devices. This will enable the CPU to scale between the speed of the high speed bus and the master clock and thus save some power. The patch also adds a parent to cpu_clk and a cpu_clk_set_rate to enable changing the CPU clock divider in a sane way. The driver does not check if the given rate is 0, thus resulting in a div by 0. I think this check should be go into the clk_set_rate framework, and not here. Tested on AT32AP7000/ATSTK1000. Hardware documentation can be found in the AT32AP7000 datasheet. Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
237 lines
3.8 KiB
Plaintext
237 lines
3.8 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see Documentation/kbuild/kconfig-language.txt.
|
|
#
|
|
|
|
mainmenu "Linux Kernel Configuration"
|
|
|
|
config AVR32
|
|
bool
|
|
default y
|
|
# With EMBEDDED=n, we get lots of stuff automatically selected
|
|
# that we usually don't need on AVR32.
|
|
select EMBEDDED
|
|
help
|
|
AVR32 is a high-performance 32-bit RISC microprocessor core,
|
|
designed for cost-sensitive embedded applications, with particular
|
|
emphasis on low power consumption and high code density.
|
|
|
|
There is an AVR32 Linux project with a web page at
|
|
http://avr32linux.org/.
|
|
|
|
config UID16
|
|
bool
|
|
|
|
config GENERIC_GPIO
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_HARDIRQS
|
|
bool
|
|
default y
|
|
|
|
config HARDIRQS_SW_RESEND
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_IRQ_PROBE
|
|
bool
|
|
default y
|
|
|
|
config RWSEM_GENERIC_SPINLOCK
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_TIME
|
|
bool
|
|
default y
|
|
|
|
config RWSEM_XCHGADD_ALGORITHM
|
|
bool
|
|
|
|
config ARCH_HAS_ILOG2_U32
|
|
bool
|
|
default n
|
|
|
|
config ARCH_HAS_ILOG2_U64
|
|
bool
|
|
default n
|
|
|
|
config GENERIC_HWEIGHT
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_CALIBRATE_DELAY
|
|
bool
|
|
default y
|
|
|
|
config GENERIC_BUG
|
|
bool
|
|
default y
|
|
depends on BUG
|
|
|
|
source "init/Kconfig"
|
|
|
|
menu "System Type and features"
|
|
|
|
config SUBARCH_AVR32B
|
|
bool
|
|
config MMU
|
|
bool
|
|
config PERFORMANCE_COUNTERS
|
|
bool
|
|
|
|
config PLATFORM_AT32AP
|
|
bool
|
|
select SUBARCH_AVR32B
|
|
select MMU
|
|
select PERFORMANCE_COUNTERS
|
|
|
|
choice
|
|
prompt "AVR32 CPU type"
|
|
default CPU_AT32AP7000
|
|
|
|
config CPU_AT32AP7000
|
|
bool "AT32AP7000"
|
|
select PLATFORM_AT32AP
|
|
endchoice
|
|
|
|
#
|
|
# CPU Daughterboards for ATSTK1000
|
|
config BOARD_ATSTK1002
|
|
bool
|
|
|
|
choice
|
|
prompt "AVR32 board type"
|
|
default BOARD_ATSTK1000
|
|
|
|
config BOARD_ATSTK1000
|
|
bool "ATSTK1000 evaluation board"
|
|
select BOARD_ATSTK1002 if CPU_AT32AP7000
|
|
|
|
config BOARD_ATNGW100
|
|
bool "ATNGW100 Network Gateway"
|
|
endchoice
|
|
|
|
choice
|
|
prompt "Boot loader type"
|
|
default LOADER_U_BOOT
|
|
|
|
config LOADER_U_BOOT
|
|
bool "U-Boot (or similar) bootloader"
|
|
endchoice
|
|
|
|
source "arch/avr32/mach-at32ap/Kconfig"
|
|
|
|
config LOAD_ADDRESS
|
|
hex
|
|
default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP7000=y
|
|
|
|
config ENTRY_ADDRESS
|
|
hex
|
|
default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP7000=y
|
|
|
|
config PHYS_OFFSET
|
|
hex
|
|
default 0x10000000 if CPU_AT32AP7000=y
|
|
|
|
source "kernel/Kconfig.preempt"
|
|
|
|
config HAVE_ARCH_BOOTMEM_NODE
|
|
bool
|
|
default n
|
|
|
|
config ARCH_HAVE_MEMORY_PRESENT
|
|
bool
|
|
default n
|
|
|
|
config NEED_NODE_MEMMAP_SIZE
|
|
bool
|
|
default n
|
|
|
|
config ARCH_FLATMEM_ENABLE
|
|
bool
|
|
default y
|
|
|
|
config ARCH_DISCONTIGMEM_ENABLE
|
|
bool
|
|
default n
|
|
|
|
config ARCH_SPARSEMEM_ENABLE
|
|
bool
|
|
default n
|
|
|
|
source "mm/Kconfig"
|
|
|
|
config OWNERSHIP_TRACE
|
|
bool "Ownership trace support"
|
|
default y
|
|
help
|
|
Say Y to generate an Ownership Trace message on every context switch,
|
|
enabling Nexus-compliant debuggers to keep track of the PID of the
|
|
currently executing task.
|
|
|
|
# FPU emulation goes here
|
|
|
|
source "kernel/Kconfig.hz"
|
|
|
|
config CMDLINE
|
|
string "Default kernel command line"
|
|
default ""
|
|
help
|
|
If you don't have a boot loader capable of passing a command line string
|
|
to the kernel, you may specify one here. As a minimum, you should specify
|
|
the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
|
|
|
|
endmenu
|
|
|
|
menu "Power managment options"
|
|
|
|
menu "CPU Frequency scaling"
|
|
|
|
source "drivers/cpufreq/Kconfig"
|
|
|
|
config CPU_FREQ_AT32AP
|
|
bool "CPU frequency driver for AT32AP"
|
|
depends on CPU_FREQ && PLATFORM_AT32AP
|
|
default n
|
|
help
|
|
This enables the CPU frequency driver for AT32AP processors.
|
|
|
|
For details, take a look in <file:Documentation/cpu-freq>.
|
|
|
|
If in doubt, say N.
|
|
|
|
endmenu
|
|
|
|
endmenu
|
|
|
|
menu "Bus options"
|
|
|
|
config PCI
|
|
bool
|
|
|
|
source "drivers/pci/Kconfig"
|
|
|
|
source "drivers/pcmcia/Kconfig"
|
|
|
|
endmenu
|
|
|
|
menu "Executable file formats"
|
|
source "fs/Kconfig.binfmt"
|
|
endmenu
|
|
|
|
source "net/Kconfig"
|
|
|
|
source "drivers/Kconfig"
|
|
|
|
source "fs/Kconfig"
|
|
|
|
source "arch/avr32/Kconfig.debug"
|
|
|
|
source "security/Kconfig"
|
|
|
|
source "crypto/Kconfig"
|
|
|
|
source "lib/Kconfig"
|