# SPDX-License-Identifier: GPL-2.0
config MFD_NVEC
	tristate "NV Tegra Embedded Controller SMBus Interface"
	depends on I2C && GPIOLIB && ARCH_TEGRA
	select MFD_CORE
	help
	    Say Y here to enable support for a nVidia compliant embedded
	    controller.

	    To compile this driver as a module, say M here: the module will be
	    called mfd-nvec

config KEYBOARD_NVEC
	tristate "Keyboard on nVidia compliant EC"
	depends on MFD_NVEC && INPUT
	help
	  Say Y here to enable support for a keyboard connected to
	  a nVidia compliant embedded controller.

	  To compile this driver as a module, say M here: the module will be
	  called keyboard-nvec

config SERIO_NVEC_PS2
	tristate "PS2 on nVidia EC"
	depends on MFD_NVEC && SERIO
	help
	  Say Y here to enable support for a Touchpad / Mouse connected
	  to a nVidia compliant embedded controller.

	  To compile this driver as a module, say M here: the module will be
	  called serio-nvec-ps2


config NVEC_POWER
	tristate "NVEC charger and battery"
	depends on MFD_NVEC && POWER_SUPPLY
	help
	  Say Y to enable support for battery and charger interface for
	  nVidia compliant embedded controllers.

	  To compile this driver as a module, say M here: the module will be
	  called nvec-power


config NVEC_PAZ00
	tristate "Support for OEM specific functions on Compal PAZ00 based devices"
	depends on MFD_NVEC && LEDS_CLASS
	help
	  Say Y to enable control of the yellow side leds on Compal PAZ00 based
	  devices, e.g. Toshbia AC100 and Dynabooks AZ netbooks.

	  To compile this driver as a module, say M here: the module will be
	  called nvec-paz00

