if ARCH_SUNXI

choice
	prompt "Sunxi SoC Variant"

config MACH_SUN4I
	bool "sun4i (Allwinner A10)"
	select CPU_V7
	select SUPPORT_SPL

config MACH_SUN5I
	bool "sun5i (Allwinner A13)"
	select CPU_V7
	select SUPPORT_SPL

config MACH_SUN6I
	bool "sun6i (Allwinner A31)"
	select CPU_V7
	select SUPPORT_SPL

config MACH_SUN7I
	bool "sun7i (Allwinner A20)"
	select CPU_V7
	select SUPPORT_SPL

config MACH_SUN8I
	bool "sun8i (Allwinner A23)"
	select CPU_V7

endchoice

config SYS_CONFIG_NAME
	string
	default "sun4i" if MACH_SUN4I
	default "sun5i" if MACH_SUN5I
	default "sun6i" if MACH_SUN6I
	default "sun7i" if MACH_SUN7I
	default "sun8i" if MACH_SUN8I

choice
	prompt "Board"

config TARGET_A10_OLINUXINO_L
	bool "A10_OLINUXINO_L"
	depends on MACH_SUN4I

config TARGET_A10S_OLINUXINO_M
	bool "A10S_OLINUXINO_M"
	depends on MACH_SUN5I

config TARGET_A13_OLINUXINOM
	bool "A13_OLINUXINOM"
	depends on MACH_SUN5I

config TARGET_A13_OLINUXINO
	bool "A13_OLINUXINO"
	depends on MACH_SUN5I

config TARGET_A20_OLINUXINO_L2
	bool "A20_OLINUXINO_L2"
	depends on MACH_SUN7I

config TARGET_A20_OLINUXINO_L
	bool "A20_OLINUXINO_L"
	depends on MACH_SUN7I

config TARGET_A20_OLINUXINO_M
	bool "A20_OLINUXINO_M"
	depends on MACH_SUN7I

config TARGET_AUXTEK_T004
	bool "AUXTEK_T004"
	depends on MACH_SUN5I

config TARGET_BANANAPI
	bool "BANANAPI"
	depends on MACH_SUN7I

config TARGET_COLOMBUS
	bool "COLOMBUS"
	depends on MACH_SUN6I

config TARGET_CUBIEBOARD2
	bool "CUBIEBOARD2"
	depends on MACH_SUN7I

config TARGET_CUBIEBOARD
	bool "CUBIEBOARD"
	depends on MACH_SUN4I

config TARGET_CUBIETRUCK
	bool "CUBIETRUCK"
	depends on MACH_SUN7I

config TARGET_IPPO_Q8H_V5
	bool "IPPO_Q8H_V5"
	depends on MACH_SUN8I

config TARGET_PCDUINO3
	bool "PCDUINO3"
	depends on MACH_SUN7I

config TARGET_MELE_A1000G
	bool "MELE_A1000G"
	depends on MACH_SUN4I

config TARGET_MELE_A1000
	bool "MELE_A1000"
	depends on MACH_SUN4I

config TARGET_MELE_M3
	bool "MELE_M3"
	depends on MACH_SUN7I

config TARGET_MINI_X_1GB
	bool "MINI_X_1GB"
	depends on MACH_SUN4I

config TARGET_MINI_X
	bool "MINI_X"
	depends on MACH_SUN4I

config TARGET_BA10_TV_BOX
	bool "BA10_TV_BOX"
	depends on MACH_SUN4I

config TARGET_I12_TVBOX
	bool "I12_TVBOX"
	depends on MACH_SUN7I

config TARGET_QT840A
	bool "QT840A"
	depends on MACH_SUN7I

config TARGET_R7DONGLE
	bool "R7DONGLE"
	depends on MACH_SUN5I

endchoice

config SYS_BOARD
	default "sunxi"

config SYS_SOC
	default "sunxi"

config SPL_FEL
	bool "SPL/FEL mode support"
	depends on SPL
	default n

config FDTFILE
	string "Default fdtfile env setting for this board"

config OLD_SUNXI_KERNEL_COMPAT
	boolean "Enable workarounds for booting old kernels"
	default n
	---help---
	Set this to enable various workarounds for old kernels, this results in
	sub-optimal settings for newer kernels, only enable if needed.

config MMC0_CD_PIN
	string "Card detect pin for mmc0"
	default ""
	---help---
	Set the card detect pin for mmc0, leave empty to not use cd. This
	takes a string in the format understood by sunxi_name_to_gpio, e.g.
	PH1 for pin 1 of port H.

config MMC1_CD_PIN
	string "Card detect pin for mmc1"
	default ""
	---help---
	See MMC0_CD_PIN help text.

config MMC2_CD_PIN
	string "Card detect pin for mmc2"
	default ""
	---help---
	See MMC0_CD_PIN help text.

config MMC3_CD_PIN
	string "Card detect pin for mmc3"
	default ""
	---help---
	See MMC0_CD_PIN help text.

config MMC_SUNXI_SLOT_EXTRA
	int "mmc extra slot number"
	default -1
	---help---
	sunxi builds always enable mmc0, some boards also have a second sdcard
	slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
	support for this.

endif
