menuconfig GREYBUS
	tristate "Greybus support"
	depends on SYSFS
	---help---
	  This option enables the Greybus driver core.  Greybus is an
	  hardware protocol that was designed to provide Unipro with a
	  sane application layer.  It was originally designed for the
	  ARA project, a module phone system, but has shown up in other
	  phones, and can be tunneled over other busses in order to
	  control hardware devices.

	  Say Y here to enable support for these types of drivers.

	  To compile this code as a module, chose M here: the module
	  will be called greybus.ko

if GREYBUS

config GREYBUS_ES2
	tristate "Greybus ES3 USB host controller"
	depends on USB
	---help---
	  Select this option if you have a Toshiba ES3 USB device that
	  acts as a Greybus "host controller".  This device is a bridge
	  from a USB device to a Unipro network.

	  To compile this code as a module, chose M here: the module
	  will be called gb-es2.ko

config GREYBUS_AUDIO
	tristate "Greybus Audio Class driver"
	depends on SOUND
	---help---
	  Select this option if you have a device that follows the
	  Greybus Audio Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-audio.ko

config GREYBUS_BOOTROM
	tristate "Greybus Bootrom Class driver"
	---help---
	  Select this option if you have a device that follows the
	  Greybus Bootrom Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-bootrom.ko

config GREYBUS_CAMERA
	tristate "Greybus Camera Class driver"
	depends on MEDIA_SUPPORT && LEDS_CLASS_FLASH && BROKEN
	---help---
	  Select this option if you have a device that follows the
	  Greybus Camera Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-camera.ko

config GREYBUS_FIRMWARE
	tristate "Greybus Firmware Download Class driver"
	depends on SPI
	---help---
	  Select this option if you have a device that follows the
	  Greybus Firmware Download Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-firmware.ko

config GREYBUS_HID
	tristate "Greybus HID Class driver"
	depends on HID && INPUT
	---help---
	  Select this option if you have a device that follows the
	  Greybus HID Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-hid.ko

config GREYBUS_LIGHT
	tristate "Greybus LED Class driver"
	depends on LEDS_CLASS
	---help---
	  Select this option if you have a device that follows the
	  Greybus LED Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-light.ko

config GREYBUS_LOG
	tristate "Greybus Debug Log Class driver"
	---help---
	  Select this option if you have a device that follows the
	  Greybus Debug Log Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-log.ko

config GREYBUS_LOOPBACK
	tristate "Greybus Loopback Class driver"
	---help---
	  Select this option if you have a device that follows the
	  Greybus Debug Log Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-log.ko

config GREYBUS_POWER
	tristate "Greybus Powersupply Class driver"
	depends on POWER_SUPPLY
	---help---
	  Select this option if you have a device that follows the
	  Greybus Powersupply Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-power-supply.ko

config GREYBUS_RAW
	tristate "Greybus Raw Class driver"
	---help---
	  Select this option if you have a device that follows the
	  Greybus Raw Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-raw.ko

config GREYBUS_VIBRATOR
	tristate "Greybus Vibrator Motor Class driver"
	---help---
	  Select this option if you have a device that follows the
	  Greybus Vibrator Motor Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-vibrator.ko

menuconfig GREYBUS_BRIDGED_PHY
	tristate "Greybus Bridged PHY Class drivers"
	---help---
	  Select this option to pick from a variety of Greybus Bridged
	  PHY class drivers.  These drivers emulate a number of
	  different "traditional" busses by tunneling them over Greybus.
	  Examples of this include serial, SPI, USB, and others.

	  To compile this code as a module, chose M here: the module
	  will be called gb-phy.ko

if GREYBUS_BRIDGED_PHY

config GREYBUS_GPIO
	tristate "Greybus GPIO Bridged PHY driver"
	depends on GPIOLIB
	---help---
	  Select this option if you have a device that follows the
	  Greybus GPIO Bridged PHY Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-gpio.ko

config GREYBUS_I2C
	tristate "Greybus I2C Bridged PHY driver"
	depends on I2C
	---help---
	  Select this option if you have a device that follows the
	  Greybus I2C Bridged PHY Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-i2c.ko

config GREYBUS_PWM
	tristate "Greybus PWM Bridged PHY driver"
	depends on PWM
	---help---
	  Select this option if you have a device that follows the
	  Greybus PWM Bridged PHY Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-pwm.ko

config GREYBUS_SDIO
	tristate "Greybus SDIO Bridged PHY driver"
	depends on MMC
	---help---
	  Select this option if you have a device that follows the
	  Greybus SDIO Bridged PHY Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-sdio.ko

config GREYBUS_SPI
	tristate "Greybus SPI Bridged PHY driver"
	depends on SPI
	---help---
	  Select this option if you have a device that follows the
	  Greybus SPI Bridged PHY Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-spi.ko

config GREYBUS_UART
	tristate "Greybus UART Bridged PHY driver"
	depends on TTY
	---help---
	  Select this option if you have a device that follows the
	  Greybus UART Bridged PHY Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-uart.ko

config GREYBUS_USB
	tristate "Greybus USB Host Bridged PHY driver"
	depends on USB
	---help---
	  Select this option if you have a device that follows the
	  Greybus USB Host Bridged PHY Class specification.

	  To compile this code as a module, chose M here: the module
	  will be called gb-usb.ko

endif	# GREYBUS_BRIDGED_PHY
endif	# GREYBUS
