w1: new driver. DS2430 chip
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>
3 files changed