#
# 1-wire slaves configuration
#

menu "1-wire Slaves"

config W1_SLAVE_THERM
	tristate "Thermal family implementation"
	help
	  Say Y here if you want to connect 1-wire thermal sensors to your
	  wire.

config W1_SLAVE_SMEM
	tristate "Simple 64bit memory family implementation"
	help
	  Say Y here if you want to connect 1-wire
	  simple 64bit memory rom(ds2401/ds2411/ds1990*) to your wire.

config W1_SLAVE_DS2405
	tristate "DS2405 Addressable Switch"
	help
	  Say Y or M here if you want to use a DS2405 1-wire
	  single-channel addressable switch.
	  This device can also work as a single-channel
	  binary remote sensor.

config W1_SLAVE_DS2408
	tristate "8-Channel Addressable Switch (IO Expander) 0x29 family support (DS2408)"
	help
	  Say Y here if you want to use a 1-wire
	  DS2408 8-Channel Addressable Switch device support

config W1_SLAVE_DS2408_READBACK
	bool "Read-back values written to DS2408's output register"
	depends on W1_SLAVE_DS2408
	default y
	help
	  Enabling this will cause the driver to read back the values written
	  to the chip's output register in order to detect errors.

	  This is slower but useful when debugging chips and/or busses.

config W1_SLAVE_DS2413
	tristate "Dual Channel Addressable Switch 0x3a family support (DS2413)"
	help
	  Say Y here if you want to use a 1-wire
	  DS2413 Dual Channel Addressable Switch device support

config W1_SLAVE_DS2406
	tristate "Dual Channel Addressable Switch 0x12 family support (DS2406)"
	select CRC16
	help
	  Say Y or M here if you want to use a 1-wire
	  DS2406 Dual Channel Addressable Switch.  EPROM read/write
	  support for these devices is not implemented.

config W1_SLAVE_DS2423
	tristate "Counter 1-wire device (DS2423)"
	select CRC16
	help
	  If you enable this you can read the counter values available
	  in the DS2423 chipset from the w1_slave file under the
	  sys file system.

	  Say Y here if you want to use a 1-wire
	  counter family device (DS2423).

config W1_SLAVE_DS2805
	tristate "112-byte EEPROM support (DS28E05)"
	help
	  Say Y here if you want to use a 1-wire
	  is a 112-byte user-programmable EEPROM is
          organized as 7 pages of 16 bytes each with 64bit
          unique number. Requires OverDrive Speed to talk to.

config W1_SLAVE_DS2431
	tristate "1kb EEPROM family support (DS2431)"
	help
	  Say Y here if you want to use a 1-wire
	  1kb EEPROM family device (DS2431)

config W1_SLAVE_DS2433
	tristate "4kb EEPROM family support (DS2433)"
	help
	  Say Y here if you want to use a 1-wire
	  4kb EEPROM family device (DS2433).

config W1_SLAVE_DS2433_CRC
	bool "Protect DS2433 data with a CRC16"
	depends on W1_SLAVE_DS2433
	select CRC16
	help
	  Say Y here to protect DS2433 data with a CRC16.
	  Each block has 30 bytes of data and a two byte CRC16.
	  Full block writes are only allowed if the CRC is valid.

config W1_SLAVE_DS2438
	tristate "DS2438 Smart Battery Monitor 0x26 family support"
	help
	  Say Y here if you want to use a 1-wire
	  DS2438 Smart Battery Monitor device support

config W1_SLAVE_DS2780
	tristate "Dallas 2780 battery monitor chip"
	help
	  If you enable this you will have the DS2780 battery monitor
	  chip support.

	  The battery monitor chip is used in many batteries/devices
	  as the one who is responsible for charging/discharging/monitoring
	  Li+ batteries.

	  If you are unsure, say N.

config W1_SLAVE_DS2781
	tristate "Dallas 2781 battery monitor chip"
	help
	  If you enable this you will have the DS2781 battery monitor
	  chip support.

	  The battery monitor chip is used in many batteries/devices
	  as the one who is responsible for charging/discharging/monitoring
	  Li+ batteries.

	  If you are unsure, say N.

config W1_SLAVE_DS28E04
	tristate "4096-Bit Addressable 1-Wire EEPROM with PIO (DS28E04-100)"
	select CRC16
	help
	  If you enable this you will have the DS28E04-100
	  chip support.

	  Say Y here if you want to use a 1-wire
	  4kb EEPROM with PIO family device (DS28E04).

	  If you are unsure, say N.

config W1_SLAVE_DS28E17
	tristate "1-wire-to-I2C master bridge (DS28E17)"
	select CRC16
	depends on I2C
	help
	  Say Y here if you want to use the DS28E17 1-wire-to-I2C master bridge.
	  For each DS28E17 detected, a new I2C adapter is created within the
	  kernel. I2C devices on that bus can be configured to be used by the
	  kernel and userspace tools as on any other "native" I2C bus.

	  This driver is also available as a module. If so, the module
	  will be called w1_ds28e17.

	  If you are unsure, say N.

endmenu
