menuconfig ARCH_ORION5X
	bool "Marvell Orion"
	depends on MMU && ARCH_MULTI_V5
	select ARCH_REQUIRE_GPIOLIB
	select CPU_FEROCEON
	select GENERIC_CLOCKEVENTS
	select MVEBU_MBUS
	select PCI
	select PLAT_ORION_LEGACY
	help
	  Support for the following Marvell Orion 5x series SoCs:
	  Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
	  Orion-2 (5281), Orion-1-90 (6183).

if ARCH_ORION5X

config ARCH_ORION5X_DT
	bool "Marvell Orion5x Flattened Device Tree"
	select USE_OF
	select ORION_CLK
	select ORION_IRQCHIP
	select ORION_TIMER
	select PINCTRL
	select PINCTRL_ORION
	help
	  Say 'Y' here if you want your kernel to support the
	  Marvell Orion5x using flattened device tree.

config MACH_DB88F5281
	bool "Marvell Orion-2 Development Board"
	select I2C_BOARDINFO if I2C
	help
	  Say 'Y' here if you want your kernel to support the
	  Marvell Orion-2 (88F5281) Development Board

config MACH_RD88F5182
	bool "Marvell Orion-NAS Reference Design"
	select I2C_BOARDINFO if I2C
	help
	  Say 'Y' here if you want your kernel to support the
	  Marvell Orion-NAS (88F5182) RD2

config MACH_RD88F5182_DT
	bool "Marvell Orion-NAS Reference Design (Flattened Device Tree)"
	select ARCH_ORION5X_DT
	select I2C_BOARDINFO if I2C
	help
	  Say 'Y' here if you want your kernel to support the Marvell
	  Orion-NAS (88F5182) RD2, Flattened Device Tree.

config MACH_KUROBOX_PRO
	bool "KuroBox Pro"
	select I2C_BOARDINFO if I2C
	help
	  Say 'Y' here if you want your kernel to support the
	  KuroBox Pro platform.

config MACH_DNS323
	bool "D-Link DNS-323"
	select GENERIC_NET_UTILS
	select I2C_BOARDINFO if I2C
	help
	  Say 'Y' here if you want your kernel to support the
	  D-Link DNS-323 platform.

config MACH_TS209
	bool "QNAP TS-109/TS-209"
	select GENERIC_NET_UTILS
	help
	  Say 'Y' here if you want your kernel to support the
	  QNAP TS-109/TS-209 platform.

config MACH_TERASTATION_PRO2
	bool "Buffalo Terastation Pro II/Live"
	help
	  Say 'Y' here if you want your kernel to support the
	  Buffalo Terastation Pro II/Live platform.

config MACH_LINKSTATION_PRO
	bool "Buffalo Linkstation Pro/Live"
	select I2C_BOARDINFO if I2C
	help
	  Say 'Y' here if you want your kernel to support the
	  Buffalo Linkstation Pro/Live platform. Both v1 and
	  v2 devices are supported.

config MACH_LINKSTATION_LSCHL
	bool "Buffalo Linkstation Live v3 (LS-CHL)"
	select I2C_BOARDINFO if I2C
	help
	  Say 'Y' here if you want your kernel to support the
	  Buffalo Linkstation Live v3 (LS-CHL) platform.

config MACH_LINKSTATION_MINI
	bool "Buffalo Linkstation Mini (Flattened Device Tree)"
	select ARCH_ORION5X_DT
	help
	  Say 'Y' here if you want your kernel to support the
	  Buffalo Linkstation Mini (LS-WSGL) platform.

config MACH_LINKSTATION_LS_HGL
	bool "Buffalo Linkstation LS-HGL"
	select I2C_BOARDINFO if I2C
	help
	  Say 'Y' here if you want your kernel to support the
	  Buffalo Linkstation LS-HGL platform.

config MACH_TS409
	bool "QNAP TS-409"
	select GENERIC_NET_UTILS
	help
	  Say 'Y' here if you want your kernel to support the
	  QNAP TS-409 platform.

config MACH_WRT350N_V2
	bool "Linksys WRT350N v2"
	help
	  Say 'Y' here if you want your kernel to support the
	  Linksys WRT350N v2 platform.

config MACH_TS78XX
	bool "Technologic Systems TS-78xx"
	help
	  Say 'Y' here if you want your kernel to support the
	  Technologic Systems TS-78xx platform.

config MACH_MV2120
	bool "HP Media Vault mv2120"
	help
	  Say 'Y' here if you want your kernel to support the
	  HP Media Vault mv2120 or mv5100.

config MACH_D2NET_DT
	bool "LaCie d2 Network / Big Disk Network (Flattened Device Tree)"
	select ARCH_ORION5X_DT
	help
	  Say 'Y' here if you want your kernel to support the
	  LaCie d2 Network NAS.

config MACH_NET2BIG
	bool "LaCie 2Big Network"
	select I2C_BOARDINFO if I2C
	help
	  Say 'Y' here if you want your kernel to support the
	  LaCie 2Big Network NAS.

config MACH_MSS2_DT
	bool "Maxtor Shared Storage II (Flattened Device Tree)"
	select ARCH_ORION5X_DT
	help
	  Say 'Y' here if you want your kernel to support the
	  Maxtor Shared Storage II platform.

config MACH_WNR854T
	bool "Netgear WNR854T"
	help
	  Say 'Y' here if you want your kernel to support the
	  Netgear WNR854T platform.

config MACH_RD88F5181L_GE
	bool "Marvell Orion-VoIP GE Reference Design"
	help
	  Say 'Y' here if you want your kernel to support the
	  Marvell Orion-VoIP GE (88F5181L) RD.

config MACH_RD88F5181L_FXO
	bool "Marvell Orion-VoIP FXO Reference Design"
	help
	  Say 'Y' here if you want your kernel to support the
	  Marvell Orion-VoIP FXO (88F5181L) RD.

config MACH_RD88F6183AP_GE
	bool "Marvell Orion-1-90 AP GE Reference Design"
	help
	  Say 'Y' here if you want your kernel to support the
	  Marvell Orion-1-90 (88F6183) AP GE RD.

endif
