# 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_ADSSPHERE
	bool "Support ADS Sphere"
	depends on UNUSED_BOARD_FILES
	help
	  Say 'Y' here if you want your kernel to support the ADS
	  Sphere board.

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_GESBC9312
	bool "Support Glomation GESBC-9312-sx"
	depends on UNUSED_BOARD_FILES
	help
	  Say 'Y' here if you want your kernel to support the Glomation
	  GESBC-9312-sx board.

config MACH_MICRO9
	bool

config MACH_MICRO9H
	bool "Support Contec Micro9-High"
	select MACH_MICRO9
	depends on UNUSED_BOARD_FILES
	help
	  Say 'Y' here if you want your kernel to support the
	  Contec Micro9-High board.

config MACH_MICRO9M
	bool "Support Contec Micro9-Mid"
	select MACH_MICRO9
	depends on UNUSED_BOARD_FILES
	help
	  Say 'Y' here if you want your kernel to support the
	  Contec Micro9-Mid board.

config MACH_MICRO9L
	bool "Support Contec Micro9-Lite"
	select MACH_MICRO9
	depends on UNUSED_BOARD_FILES
	help
	  Say 'Y' here if you want your kernel to support the
	  Contec Micro9-Lite board.

config MACH_MICRO9S
	bool "Support Contec Micro9-Slim"
	select MACH_MICRO9
	depends on UNUSED_BOARD_FILES
	help
	  Say 'Y' here if you want your kernel to support the
	  Contec Micro9-Slim board.

config MACH_SIM_ONE
        bool "Support Simplemachines Sim.One board"
	depends on UNUSED_BOARD_FILES
        help
          Say 'Y' here if you want your kernel to support the
          Simplemachines Sim.One board.

config MACH_SNAPPER_CL15
	bool "Support Bluewater Systems Snapper CL15 Module"
	depends on UNUSED_BOARD_FILES
	help
	  Say 'Y' here if you want your kernel to support the Bluewater
	  Systems Snapper CL15 Module.

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
