mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.4 KiB
72 lines
2.4 KiB
======================== |
|
Kernel driver w1_ds28e17 |
|
======================== |
|
|
|
Supported chips: |
|
|
|
* Maxim DS28E17 1-Wire-to-I2C Master Bridge |
|
|
|
supported family codes: |
|
|
|
================= ==== |
|
W1_FAMILY_DS28E17 0x19 |
|
================= ==== |
|
|
|
Author: Jan Kandziora <[email protected]> |
|
|
|
|
|
Description |
|
----------- |
|
The DS28E17 is a Onewire slave device which acts as an I2C bus master. |
|
|
|
This driver creates a new I2C bus for any DS28E17 device detected. I2C buses |
|
come and go as the DS28E17 devices come and go. I2C slave devices connected to |
|
a DS28E17 can be accessed by the kernel or userspace tools as if they were |
|
connected to a "native" I2C bus master. |
|
|
|
|
|
An udev rule like the following:: |
|
|
|
SUBSYSTEM=="i2c-dev", KERNEL=="i2c-[0-9]*", ATTRS{name}=="w1-19-*", \ |
|
SYMLINK+="i2c-$attr{name}" |
|
|
|
may be used to create stable /dev/i2c- entries based on the unique id of the |
|
DS28E17 chip. |
|
|
|
|
|
Driver parameters are: |
|
|
|
speed: |
|
This sets up the default I2C speed a DS28E17 get configured for as soon |
|
it is connected. The power-on default of the DS28E17 is 400kBaud, but |
|
chips may come and go on the Onewire bus without being de-powered and |
|
as soon the "w1_ds28e17" driver notices a freshly connected, or |
|
reconnected DS28E17 device on the Onewire bus, it will re-apply this |
|
setting. |
|
|
|
Valid values are 100, 400, 900 [kBaud]. Any other value means to leave |
|
alone the current DS28E17 setting on detect. The default value is 100. |
|
|
|
stretch: |
|
This sets up the default stretch value used for freshly connected |
|
DS28E17 devices. It is a multiplier used on the calculation of the busy |
|
wait time for an I2C transfer. This is to account for I2C slave devices |
|
which make heavy use of the I2C clock stretching feature and thus, the |
|
needed timeout cannot be pre-calculated correctly. As the w1_ds28e17 |
|
driver checks the DS28E17's busy flag in a loop after the precalculated |
|
wait time, it should be hardly needed to tweak this setting. |
|
|
|
Leave it at 1 unless you get ETIMEDOUT errors and a "w1_slave_driver |
|
19-00000002dbd8: busy timeout" in the kernel log. |
|
|
|
Valid values are 1 to 9. The default is 1. |
|
|
|
|
|
The driver creates sysfs files /sys/bus/w1/devices/19-<id>/speed and |
|
/sys/bus/w1/devices/19-<id>/stretch for each device, preloaded with the default |
|
settings from the driver parameters. They may be changed anytime. In addition a |
|
directory /sys/bus/w1/devices/19-<id>/i2c-<nnn> for the I2C bus master sysfs |
|
structure is created. |
|
|
|
|
|
See https://github.com/ianka/w1_ds28e17 for even more information.
|
|
|