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