choice
	prompt "Machine type"
	depends on MACH_VR41XX
	default TANBAC_TB022X

config CASIO_E55
	bool "CASIO CASSIOPEIA E-10/15/55/65"
	select CEVT_R4K
	select CSRC_R4K
	select DMA_NONCOHERENT
	select IRQ_CPU
	select ISA
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN

config IBM_WORKPAD
	bool "IBM WorkPad z50"
	select CEVT_R4K
	select CSRC_R4K
	select DMA_NONCOHERENT
	select IRQ_CPU
	select ISA
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN

config NEC_CMBVR4133
	bool "NEC CMB-VR4133"
	select CEVT_R4K
	select CSRC_R4K
	select DMA_NONCOHERENT
	select IRQ_CPU
	select HW_HAS_PCI
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN

config TANBAC_TB022X
	bool "TANBAC VR4131 multichip module and TANBAC VR4131DIMM"
	select CEVT_R4K
	select CSRC_R4K
	select DMA_NONCOHERENT
	select IRQ_CPU
	select HW_HAS_PCI
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN
	help
	  The TANBAC VR4131 multichip module(TB0225) and
	  the TANBAC VR4131DIMM(TB0229) are MIPS-based platforms
	  manufactured by TANBAC.
	  Please refer to <http://www.tanbac.co.jp/>
	  about VR4131 multichip module and VR4131DIMM.

config VICTOR_MPC30X
	bool "Victor MP-C303/304"
	select CEVT_R4K
	select CSRC_R4K
	select DMA_NONCOHERENT
	select IRQ_CPU
	select HW_HAS_PCI
	select PCI_VR41XX
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN

config ZAO_CAPCELLA
	bool "ZAO Networks Capcella"
	select CEVT_R4K
	select CSRC_R4K
	select DMA_NONCOHERENT
	select IRQ_CPU
	select HW_HAS_PCI
	select PCI_VR41XX
	select SYS_SUPPORTS_32BIT_KERNEL
	select SYS_SUPPORTS_LITTLE_ENDIAN

endchoice

config ROCKHOPPER
	bool "Support for Rockhopper base board"
	depends on NEC_CMBVR4133
	select PCI_VR41XX
	select I8259
	select HAVE_STD_PC_SERIAL_PORT

choice
	prompt "Base board type"
	depends on TANBAC_TB022X
	default TANBAC_TB0287

config TANBAC_TB0219
	bool "TANBAC DIMM Evaluation Kit(TB0219)"
	select GPIO_VR41XX
	select PCI_VR41XX
	help
	  The TANBAC DIMM Evaluation Kit(TB0219) is a MIPS-based platform
	  manufactured by TANBAC.
	  Please refer to <http://www.tanbac.co.jp/> about DIMM Evaluation Kit.

config TANBAC_TB0226
	bool "TANBAC Mbase(TB0226)"
	select GPIO_VR41XX
	select PCI_VR41XX
	help
	  The TANBAC Mbase(TB0226) is a MIPS-based platform
	  manufactured by TANBAC.
	  Please refer to <http://www.tanbac.co.jp/> about Mbase.

config TANBAC_TB0287
	bool "TANBAC Mini-ITX DIMM base(TB0287)"
	select PCI_VR41XX
	help
	  The TANBAC Mini-ITX DIMM base(TB0287) is a MIPS-based platform
	  manufactured by TANBAC.
	  Please refer to <http://www.tanbac.co.jp/> about Mini-ITX DIMM base.

endchoice

config PCI_VR41XX
	bool "Add PCI control unit support of NEC VR4100 series"
	depends on MACH_VR41XX && HW_HAS_PCI
	default y
	select PCI
