if MACH_PIC32

choice
	prompt "Machine Type"

config PIC32MZDA
	bool "Microchip PIC32MZDA Platform"
	select BOOT_ELF32
	select BOOT_RAW
	select CEVT_R4K
	select CSRC_R4K
	select DMA_NONCOHERENT
	select SYS_HAS_CPU_MIPS32_R2
	select SYS_HAS_EARLY_PRINTK
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN
	select ARCH_REQUIRE_GPIOLIB
	select COMMON_CLK
	select CLKDEV_LOOKUP
	select LIBFDT
	select USE_OF
	select PINCTRL
	select PIC32_EVIC
	help
	  Support for the Microchip PIC32MZDA microcontroller.

	  This is a 32-bit microcontroller with support for external or
	  internally packaged DDR2 memory up to 128MB.

	  For more information, see <http://www.microchip.com/>.

endchoice

choice
	prompt "Devicetree selection"
	default DTB_PIC32_NONE
	help
	  Select the devicetree.

config DTB_PIC32_NONE
       bool "None"

config DTB_PIC32_MZDA_SK
       bool "PIC32MZDA Starter Kit"
       depends on PIC32MZDA
       select BUILTIN_DTB

endchoice

endif # MACH_PIC32
