69 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Kernel driver w1_ds28e17
 | |
| ========================
 | |
| 
 | |
| Supported chips:
 | |
|   * Maxim DS28E17 1-Wire-to-I2C Master Bridge
 | |
| 
 | |
| supported family codes:
 | |
| 	W1_FAMILY_DS28E17  0x19
 | |
| 
 | |
| Author: Jan Kandziora <jjj@gmx.de>
 | |
| 
 | |
| 
 | |
| 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.
 | |
| 
 |