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