
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 SUN_MOSTEK_RTC
	tristate "Mostek real time clock support"
	depends on SPARC32
	help
	  The Mostek RTC chip is used on all known Sun computers except
	  some JavaStations. For a JavaStation you need to say Y both here
	  and to "Enhanced Real Time Clock Support".

	  Say Y here unless you are building a special purpose kernel.

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 SUN_BPP
	tristate "Bidirectional parallel port support (OBSOLETE)"
	depends on EXPERIMENTAL
	help
	  Say Y here to support Sun's obsolete variant of IEEE1284
	  bidirectional parallel port protocol as /dev/bppX.  Can be built on
	  x86 machines.

config SUN_VIDEOPIX
	tristate "Videopix Frame Grabber (EXPERIMENTAL)"
	depends on EXPERIMENTAL && (BROKEN || !64BIT)
	help
	  Say Y here to support the Videopix Frame Grabber from Sun
	  Microsystems, commonly found on SPARCstations.  This card, which is
	  based on the Phillips SAA9051, can handle NTSC and PAL/SECAM and
	  SVIDEO signals.

config TADPOLE_TS102_UCTRL
	tristate "Tadpole TS102 Microcontroller support (EXPERIMENTAL)"
	depends on EXPERIMENTAL && SPARC32
	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 (EXPERIMENTAL)"
	depends on EXPERIMENTAL && 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

