# SPDX-License-Identifier: GPL-2.0-only
#
# MemoryStick host controller drivers
#

comment "MemoryStick Host Controller Drivers"

config MEMSTICK_TIFM_MS
	tristate "TI Flash Media MemoryStick Interface support "
	depends on PCI
	select TIFM_CORE
	help
	  Say Y here if you want to be able to access MemoryStick cards with
	  the Texas Instruments(R) Flash Media card reader, found in many
	  laptops.
	  This option 'selects' (turns on, enables) 'TIFM_CORE', but you
	  probably also need appropriate card reader host adapter, such as
	  'Misc devices: TI Flash Media PCI74xx/PCI76xx host adapter support
	  (TIFM_7XX1)'.

          To compile this driver as a module, choose M here: the
	  module will be called tifm_ms.

config MEMSTICK_JMICRON_38X
	tristate "JMicron JMB38X MemoryStick interface support"
	depends on PCI

	help
	  Say Y here if you want to be able to access MemoryStick cards with
	  the JMicron(R) JMB38X MemoryStick card reader.

          To compile this driver as a module, choose M here: the
	  module will be called jmb38x_ms.

config MEMSTICK_R592
	tristate "Ricoh R5C592 MemoryStick interface support"
	depends on PCI

	help
	  Say Y here if you want to be able to access MemoryStick cards with
	  the Ricoh R5C592 MemoryStick card reader (which is part of 5 in one
		multifunction reader)

	  To compile this driver as a module, choose M here: the module will
	  be called r592.

config MEMSTICK_REALTEK_PCI
	tristate "Realtek PCI-E Memstick Card Interface Driver"
	depends on MISC_RTSX_PCI
	help
	  Say Y here to include driver code to support Memstick card interface
	  of Realtek PCI-E card reader

	  To compile this driver as a module, choose M here: the module will
	  be called rtsx_pci_ms.

config MEMSTICK_REALTEK_USB
	tristate "Realtek USB Memstick Card Interface Driver"
	depends on MISC_RTSX_USB
	help
	  Say Y here to include driver code to support Memstick card interface
	  of Realtek RTS5129/39 series USB card reader

	  To compile this driver as a module, choose M here: the module will
	  be called rts5139_ms.
