
menu "Misc Linux/SPARC drivers"

config SUN_OPENPROMIO
	tristate "/dev/openprom device support"
	help
	  This driver provides user programs with an interface to the SPARC
	  PROM device tree. The driver implements a SunOS-compatible
	  interface and a NetBSD-compatible interface.

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

	  If unsure, say Y.

config OBP_FLASH
	tristate "OBP Flash Device support"
	depends on SPARC64
	help
	  The OpenBoot PROM on Ultra systems is flashable. If you want to be
	  able to upgrade the OBP firmware, say Y here.

config TADPOLE_TS102_UCTRL
	tristate "Tadpole TS102 Microcontroller support"
	help
	  Say Y here to directly support the TS102 Microcontroller interface
	  on the Tadpole Sparcbook 3.  This device handles power-management
	  events, and can also notice the attachment/detachment of external
	  monitors and mice.

config SUN_JSFLASH
	tristate "JavaStation OS Flash SIMM"
	depends on SPARC32
	help
	  If you say Y here, you will be able to boot from your JavaStation's
	  Flash memory.

config BBC_I2C
	tristate "UltraSPARC-III bootbus i2c controller driver"
	depends on PCI && SPARC64
	help
	  The BBC devices on the UltraSPARC III have two I2C controllers.  The
	  first I2C controller connects mainly to configuration PROMs (NVRAM,
	  CPU configuration, DIMM types, etc.).  The second I2C controller
	  connects to environmental control devices such as fans and
	  temperature sensors.  The second controller also connects to the
	  smartcard reader, if present.  Say Y to enable support for these.

config ENVCTRL
	tristate "SUNW, envctrl support"
	depends on PCI && SPARC64
	help
	  Kernel support for temperature and fan monitoring on Sun SME
	  machines.

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

config DISPLAY7SEG
	tristate "7-Segment Display support"
	depends on PCI && SPARC64
	---help---
	  This is the driver for the 7-segment display and LED present on
	  Sun Microsystems CompactPCI models CP1400 and CP1500.

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

	  If you do not have a CompactPCI model CP1400 or CP1500, or
	  another UltraSPARC-IIi-cEngine boardset with a 7-segment display,
	  you should say N to this option.

endmenu

