Commit | Line | Data |
---|---|---|
e9bb6275 | 1 | ======================== |
ebc4768a JK |
2 | Kernel driver w1_ds28e17 |
3 | ======================== | |
4 | ||
5 | Supported chips: | |
e9bb6275 | 6 | |
ebc4768a JK |
7 | * Maxim DS28E17 1-Wire-to-I2C Master Bridge |
8 | ||
9 | supported family codes: | |
e9bb6275 MCC |
10 | |
11 | ================= ==== | |
ebc4768a | 12 | W1_FAMILY_DS28E17 0x19 |
e9bb6275 | 13 | ================= ==== |
ebc4768a JK |
14 | |
15 | Author: Jan Kandziora <jjj@gmx.de> | |
16 | ||
17 | ||
18 | Description | |
19 | ----------- | |
20 | The DS28E17 is a Onewire slave device which acts as an I2C bus master. | |
21 | ||
22 | This driver creates a new I2C bus for any DS28E17 device detected. I2C buses | |
23 | come and go as the DS28E17 devices come and go. I2C slave devices connected to | |
24 | a DS28E17 can be accessed by the kernel or userspace tools as if they were | |
25 | connected to a "native" I2C bus master. | |
26 | ||
27 | ||
e9bb6275 MCC |
28 | An udev rule like the following:: |
29 | ||
30 | SUBSYSTEM=="i2c-dev", KERNEL=="i2c-[0-9]*", ATTRS{name}=="w1-19-*", \ | |
31 | SYMLINK+="i2c-$attr{name}" | |
32 | ||
ebc4768a JK |
33 | may be used to create stable /dev/i2c- entries based on the unique id of the |
34 | DS28E17 chip. | |
35 | ||
36 | ||
37 | Driver parameters are: | |
38 | ||
39 | speed: | |
40 | This sets up the default I2C speed a DS28E17 get configured for as soon | |
41 | it is connected. The power-on default of the DS28E17 is 400kBaud, but | |
42 | chips may come and go on the Onewire bus without being de-powered and | |
43 | as soon the "w1_ds28e17" driver notices a freshly connected, or | |
44 | reconnected DS28E17 device on the Onewire bus, it will re-apply this | |
45 | setting. | |
46 | ||
47 | Valid values are 100, 400, 900 [kBaud]. Any other value means to leave | |
48 | alone the current DS28E17 setting on detect. The default value is 100. | |
49 | ||
50 | stretch: | |
51 | This sets up the default stretch value used for freshly connected | |
52 | DS28E17 devices. It is a multiplier used on the calculation of the busy | |
53 | wait time for an I2C transfer. This is to account for I2C slave devices | |
54 | which make heavy use of the I2C clock stretching feature and thus, the | |
55 | needed timeout cannot be pre-calculated correctly. As the w1_ds28e17 | |
56 | driver checks the DS28E17's busy flag in a loop after the precalculated | |
57 | wait time, it should be hardly needed to tweak this setting. | |
58 | ||
59 | Leave it at 1 unless you get ETIMEDOUT errors and a "w1_slave_driver | |
60 | 19-00000002dbd8: busy timeout" in the kernel log. | |
61 | ||
62 | Valid values are 1 to 9. The default is 1. | |
63 | ||
64 | ||
65 | The driver creates sysfs files /sys/bus/w1/devices/19-<id>/speed and | |
66 | /sys/bus/w1/devices/19-<id>/stretch for each device, preloaded with the default | |
67 | settings from the driver parameters. They may be changed anytime. In addition a | |
68 | directory /sys/bus/w1/devices/19-<id>/i2c-<nnn> for the I2C bus master sysfs | |
69 | structure is created. | |
70 | ||
71 | ||
72 | See https://github.com/ianka/w1_ds28e17 for even more information. |