mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 21:02:19 +00:00
c6bf3842a3
add support for ds2430, 1 page, 256bit (32bytes) eeprom (family 0x14). Tests done: 32 bytes dump: x@y:~# hexdump -C -n 32 /sys/bus/w1/devices/14-00000158556e/eeprom 00000000 39 39 0a 00 00 36 0a ff ff ff ff ff ff ff ff ff 00000010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00000020 34 bytes dump: 32 only displayed x@y:~# hexdump -C -n 34 /sys/bus/w1/devices/14-00000158556e/eeprom 00000000 39 39 0a 00 00 36 0a ff ff ff ff ff ff ff ff ff 00000010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00000020 pattern write: x@y:~# echo 123456789 > /sys/bus/w1/devices/14-00000158556e/eeprom x@y:~# hexdump -C -n 54 /sys/bus/w1/devices/14-00000158556e/eeprom 00000000 31 32 33 34 35 36 37 38 39 0a ff ff ff ff ff ff 00000010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00000020 specific address 1-byte write x@y:~# dd if=/dev/zero of=/sys/bus/w1/devices/14-00000158556e/eeprom \ count=1 bs=1 seek=4 1+0 records in 1+0 records out x@y:~# hexdump -C -n 54 /sys/bus/w1/devices/14-00000158556e/eeprom 00000000 31 32 33 34 00 36 37 38 39 0a ff ff ff ff ff ff 00000010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00000020 writing binary block x@y:~# cat dump-128bytes.bin > /sys/bus/w1/devices/14-00000158556e/eeprom cat: write error: File too large x@y:~# cat dump-32bytes.bin > /sys/bus/w1/devices/14-00000158556e/eeprom x@y:~# hexdump -C -n 54 /sys/bus/w1/devices/14-00000158556e/eeprom 00000000 10 0b 5b ff ff ff ff ff ff ff ff ff ff ff ff ff 00000010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 40 00000020 Signed-off-by: Angelo Dureghello <angelo.dureghello@timesys.com> Link: https://lore.kernel.org/r/20191019204015.61474-1-angelo.dureghello@timesys.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
171 lines
4.9 KiB
Plaintext
171 lines
4.9 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# 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_DS2430
|
|
tristate "256b EEPROM family support (DS2430)"
|
|
help
|
|
Say Y here if you want to use a 1-wire 256bit EEPROM
|
|
family device (DS2430).
|
|
This EEPROM is organized as one page of 32 bytes for random
|
|
access.
|
|
|
|
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_DS250X
|
|
tristate "512b/1kb/16kb EPROM family support"
|
|
select CRC16
|
|
help
|
|
Say Y here if you want to use a 1-wire
|
|
512b/1kb/16kb EPROM family device (DS250x).
|
|
|
|
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
|