# SPDX-License-Identifier: GPL-2.0-only
menuconfig ARCH_EP93XX
	bool "EP93xx-based"
	depends on ATAGS
	depends on ARCH_MULTI_V4T
	depends on CPU_LITTLE_ENDIAN
	select ARCH_SPARSEMEM_ENABLE
	select ARM_AMBA
	select ARM_VIC
	select CLKSRC_MMIO
	select CPU_ARM920T
	select GPIOLIB
	help
	  This enables support for the Cirrus EP93xx series of CPUs.

if ARCH_EP93XX

menu "Cirrus EP93xx Implementation Options"

config EP93XX_SOC_COMMON
	bool
	default y
	select SOC_BUS
	select LEDS_GPIO_REGISTER

comment "EP93xx Platforms"

config MACH_BK3
	bool "Support Liebherr BK3.1"
	select MACH_TS72XX
	help
	  Say 'Y' here if you want your kernel to support the
	  Liebherr controller BK3.1.

config MACH_EDB93XX
	bool

config MACH_EDB9301
	bool "Support Cirrus Logic EDB9301"
	select MACH_EDB93XX
	help
	  Say 'Y' here if you want your kernel to support the Cirrus
	  Logic EDB9301 Evaluation Board.

config MACH_EDB9302
	bool "Support Cirrus Logic EDB9302"
	select MACH_EDB93XX
	help
	  Say 'Y' here if you want your kernel to support the Cirrus
	  Logic EDB9302 Evaluation Board.

config MACH_EDB9302A
	bool "Support Cirrus Logic EDB9302A"
	select MACH_EDB93XX
	help
	  Say 'Y' here if you want your kernel to support the Cirrus
	  Logic EDB9302A Evaluation Board.

config MACH_EDB9307
	bool "Support Cirrus Logic EDB9307"
	select MACH_EDB93XX
	help
	  Say 'Y' here if you want your kernel to support the Cirrus
	  Logic EDB9307 Evaluation Board.

config MACH_EDB9307A
	bool "Support Cirrus Logic EDB9307A"
	select MACH_EDB93XX
	help
	  Say 'Y' here if you want your kernel to support the Cirrus
	  Logic EDB9307A Evaluation Board.

config MACH_EDB9312
	bool "Support Cirrus Logic EDB9312"
	select MACH_EDB93XX
	help
	  Say 'Y' here if you want your kernel to support the Cirrus
	  Logic EDB9312 Evaluation Board.

config MACH_EDB9315
	bool "Support Cirrus Logic EDB9315"
	select MACH_EDB93XX
	help
	  Say 'Y' here if you want your kernel to support the Cirrus
	  Logic EDB9315 Evaluation Board.

config MACH_EDB9315A
	bool "Support Cirrus Logic EDB9315A"
	select MACH_EDB93XX
	help
	  Say 'Y' here if you want your kernel to support the Cirrus
	  Logic EDB9315A Evaluation Board.

config MACH_TS72XX
	bool "Support Technologic Systems TS-72xx SBC"
	help
	  Say 'Y' here if you want your kernel to support the
	  Technologic Systems TS-72xx board.

config MACH_VISION_EP9307
	bool "Support Vision Engraving Systems EP9307 SoM"
	help
	  Say 'Y' here if you want your kernel to support the
	  Vision Engraving Systems EP9307 SoM.

endmenu

endif
