blob: c15bb5b919b7975d1d8ad0cdd01976e32dfd074a [file] [log] [blame]
Mauro Carvalho Chehabe9bb6272019-07-31 17:08:53 -03001=======================
Mariusz Bialonczyka9ee2052017-02-23 07:38:42 +01002Kernel driver w1_ds2413
3=======================
4
5Supported chips:
Mauro Carvalho Chehabe9bb6272019-07-31 17:08:53 -03006
Mariusz Bialonczyka9ee2052017-02-23 07:38:42 +01007 * Maxim DS2413 1-Wire Dual Channel Addressable Switch
8
9supported family codes:
Mauro Carvalho Chehabe9bb6272019-07-31 17:08:53 -030010
11 ================ ====
Mariusz Bialonczyka9ee2052017-02-23 07:38:42 +010012 W1_FAMILY_DS2413 0x3A
Mauro Carvalho Chehabe9bb6272019-07-31 17:08:53 -030013 ================ ====
Mariusz Bialonczyka9ee2052017-02-23 07:38:42 +010014
15Author: Mariusz Bialonczyk <manio@skyboo.net>
16
17Description
18-----------
19
20The DS2413 chip has two open-drain outputs (PIO A and PIO B).
21Support is provided through the sysfs files "output" and "state".
22
23Reading state
24-------------
25The "state" file provides one-byte value which is in the same format as for
26the chip PIO_ACCESS_READ command (refer the datasheet for details):
27
Mauro Carvalho Chehabe9bb6272019-07-31 17:08:53 -030028======== =============================================================
Mariusz Bialonczyka9ee2052017-02-23 07:38:42 +010029Bit 0: PIOA Pin State
30Bit 1: PIOA Output Latch State
31Bit 2: PIOB Pin State
32Bit 3: PIOB Output Latch State
33Bit 4-7: Complement of Bit 3 to Bit 0 (verified by the kernel module)
Mauro Carvalho Chehabe9bb6272019-07-31 17:08:53 -030034======== =============================================================
Mariusz Bialonczyka9ee2052017-02-23 07:38:42 +010035
36This file is readonly.
37
38Writing output
39--------------
40You can set the PIO pins using the "output" file.
41It is writable, you can write one-byte value to this sysfs file.
42Similarly the byte format is the same as for the PIO_ACCESS_WRITE command:
43
Mauro Carvalho Chehabe9bb6272019-07-31 17:08:53 -030044======== ======================================
Mariusz Bialonczyka9ee2052017-02-23 07:38:42 +010045Bit 0: PIOA
46Bit 1: PIOB
47Bit 2-7: No matter (driver will set it to "1"s)
Mauro Carvalho Chehabe9bb6272019-07-31 17:08:53 -030048======== ======================================
Mariusz Bialonczyka9ee2052017-02-23 07:38:42 +010049
50
51The chip has some kind of basic protection against transmission errors.
52When reading the state, there is a four complement bits.
53The driver is checking this complement, and when it is wrong then it is
54returning I/O error.
55
56When writing output, the master must repeat the PIO Output Data byte in
57its inverted form and it is waiting for a confirmation.
58If the write is unsuccessful for three times, the write also returns
59I/O error.