diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index 52283f76c304894a8619704f630253b72ecdba22..516015b3293b5e8054ff22be49f3323993799b77 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -84,36 +84,23 @@ config PLATFORM_AT32AP
 	select MMU
 	select PERFORMANCE_COUNTERS
 
+#
+# CPU types
+#
+
+# AP7000 derivatives
 config CPU_AT32AP700X
 	bool
 	select PLATFORM_AT32AP
-
-choice
-	prompt "AVR32 CPU type"
-	default CPU_AT32AP7000
-
 config CPU_AT32AP7000
-	bool "AT32AP7000"
+	bool
 	select CPU_AT32AP700X
-
 config CPU_AT32AP7001
-	bool "AT32AP7001"
+	bool
 	select CPU_AT32AP700X
-
 config CPU_AT32AP7002
-	bool "AT32AP7002"
-	select CPU_AT32AP700X
-
-endchoice
-
-#
-# CPU Daughterboards for ATSTK1000
-config BOARD_ATSTK1002
-	bool
-config BOARD_ATSTK1003
-	bool
-config BOARD_ATSTK1004
 	bool
+	select CPU_AT32AP700X
 
 choice
 	prompt "AVR32 board type"
@@ -121,12 +108,10 @@ choice
 
 config BOARD_ATSTK1000
 	bool "ATSTK1000 evaluation board"
-	select BOARD_ATSTK1002 if CPU_AT32AP7000
-	select BOARD_ATSTK1003 if CPU_AT32AP7001
-	select BOARD_ATSTK1004 if CPU_AT32AP7002
 
 config BOARD_ATNGW100
 	bool "ATNGW100 Network Gateway"
+	select CPU_AT32AP7000
 endchoice
 
 if BOARD_ATSTK1000
diff --git a/arch/avr32/boards/atstk1000/Kconfig b/arch/avr32/boards/atstk1000/Kconfig
index 28c47802a560b3c259a1cef746ef739abd8ff836..af90b00100fd0d96f58df404411e00affce02bcd 100644
--- a/arch/avr32/boards/atstk1000/Kconfig
+++ b/arch/avr32/boards/atstk1000/Kconfig
@@ -2,6 +2,25 @@
 
 if BOARD_ATSTK1000
 
+choice
+	prompt "ATSTK1000 CPU daughterboard type"
+	default BOARD_ATSTK1002
+
+config BOARD_ATSTK1002
+	bool "ATSTK1002"
+	select CPU_AT32AP7000
+
+config BOARD_ATSTK1003
+	bool "ATSTK1003"
+	select CPU_AT32AP7001
+
+config BOARD_ATSTK1004
+	bool "ATSTK1004"
+	select CPU_AT32AP7002
+
+endchoice
+
+
 config BOARD_ATSTK100X_CUSTOM
 	bool "Non-default STK1002/STK1003/STK1004 jumper settings"
 	help