# SPDX-License-Identifier: GPL-2.0

menu "Processor type and features"

config CPUFREQ_IS_FIXED
	def_bool n

choice
	prompt "Processor type"
	default ATMEGA32

source "arch/avr/devs/allavr.Kconfig"

endchoice

menu "Fuse configuration"
source "arch/avr/devs/allfuses.Kconfig"
endmenu

source "arch/avr/devs/cpufreq.Kconfig"

config AVRDUDE_OPTIONS
	string "avrdude options"
	default "-c gpio"

endmenu

choice
	prompt "Interrupt support"
	default IRQ_CLASSIC

config NO_IRQ
	bool "Disabled"
	help
	  Interrupt handling is completely disabled. This saves space because
	  the vector table does not exist, and also local_irq_enable()/disable()
	  macros expand to no-ops.

config IRQ_CLASSIC
	bool "Classic vector table"
	help
	  Use classic interrupt handling. Interrupt handlers can be really fast in this mode,
	  especially if there is no scheduler.

config IRQ_COMMON_STATIC
	bool "Common with static vector table"
	help
	  This enables common interrupt handling. This saves only code size
	  and adds to interrupt latency. Interrupt handlers still can be only
	  requested at compile time.
	  

config IRQ_COMMON_DYNAMIC
	bool "Common with dynamic vector table"
	help
	  This enables common interupt handling, with full support for request_irq().
	  It allows you request interrupt handling at runtime.
	  irq_enable() and irq_disable() may be there in the future (Who knows?)

endchoice

config IRQ
	def_bool y
	depends on !NO_IRQ

config IRQ_COMMON
	def_bool y
	depends on IRQ_COMMON_STATIC || IRQ_COMMON_DYNAMIC
