diff options
author | Jan Kandziora <jjj@gmx.de> | 2017-09-20 17:52:46 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-10-04 04:29:22 -0400 |
commit | ebc4768ac4971eab4b570e733e47ac9dfd0e4175 (patch) | |
tree | cfe3e1128131d87a19cbcb81a92db4b1925931e0 /Documentation/w1 | |
parent | eb8470db8bc018fc28901e4e3b0f48e33f1ea7df (diff) |
add w1_ds28e17 driver for the DS28E17 Onewire to I2C master bridge
This subpatch adds a driver for the DS28E17 Onewire to I2C master bridge.
Signed-off-by: Jan Kandziora <jjj@gmx.de>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'Documentation/w1')
-rw-r--r-- | Documentation/w1/slaves/00-INDEX | 2 | ||||
-rw-r--r-- | Documentation/w1/slaves/w1_ds28e17 | 68 |
2 files changed, 70 insertions, 0 deletions
diff --git a/Documentation/w1/slaves/00-INDEX b/Documentation/w1/slaves/00-INDEX index 8d76718e1ea2..68946f83e579 100644 --- a/Documentation/w1/slaves/00-INDEX +++ b/Documentation/w1/slaves/00-INDEX | |||
@@ -10,3 +10,5 @@ w1_ds2438 | |||
10 | - The Maxim/Dallas Semiconductor ds2438 smart battery monitor. | 10 | - The Maxim/Dallas Semiconductor ds2438 smart battery monitor. |
11 | w1_ds28e04 | 11 | w1_ds28e04 |
12 | - The Maxim/Dallas Semiconductor ds28e04 eeprom. | 12 | - The Maxim/Dallas Semiconductor ds28e04 eeprom. |
13 | w1_ds28e17 | ||
14 | - The Maxim/Dallas Semiconductor ds28e17 1-Wire-to-I2C Master Bridge. | ||
diff --git a/Documentation/w1/slaves/w1_ds28e17 b/Documentation/w1/slaves/w1_ds28e17 new file mode 100644 index 000000000000..7fcfad5b4a37 --- /dev/null +++ b/Documentation/w1/slaves/w1_ds28e17 | |||
@@ -0,0 +1,68 @@ | |||
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 | |||