67b392f7b8
Optimizing temperature reading by reducing waiting conversion time according to device resolution settings, as per device specification. This is device dependent as not all the devices supports resolution setting, so it has been added in device family structures. The process to read the temperature on the device has been adapted in a new function 'convert_t()', which replace the former 'read_therm()', is introduce to deal with this timing. Strong pull up is also applied during the required time, according to device power status needs and 'strong_pullup' module parameter. 'temperature_from_RAM()' function is introduced to get the correct temperature computation (device dependent) from device RAM data. An new sysfs entry has been added to ouptut only temperature. The old entry w1_slave has been kept for compatibility, without changing its output format. Updating Documentation/ABI/testing/sysfs-driver-w1_therm accordingly. Signed-off-by: Akira Shimahara <akira215corp@gmail.com> Link: https://lore.kernel.org/r/20200511203742.411039-1-akira215corp@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
72 lines
2.6 KiB
Plaintext
72 lines
2.6 KiB
Plaintext
What: /sys/bus/w1/devices/.../eeprom
|
|
Date: May 2020
|
|
Contact: Akira Shimahara <akira215corp@gmail.com>
|
|
Description:
|
|
(WO) writing that file will either trigger a save of the
|
|
device data to its embedded EEPROM, either restore data
|
|
embedded in device EEPROM. Be aware that devices support
|
|
limited EEPROM writing cycles (typical 50k)
|
|
* 'save': save device RAM to EEPROM
|
|
* 'restore': restore EEPROM data in device RAM
|
|
Users: any user space application which wants to communicate with
|
|
w1_term device
|
|
|
|
|
|
What: /sys/bus/w1/devices/.../ext_power
|
|
Date: May 2020
|
|
Contact: Akira Shimahara <akira215corp@gmail.com>
|
|
Description:
|
|
(RO) return the power status by asking the device
|
|
* '0': device parasite powered
|
|
* '1': device externally powered
|
|
* '-xx': xx is kernel error when reading power status
|
|
Users: any user space application which wants to communicate with
|
|
w1_term device
|
|
|
|
|
|
What: /sys/bus/w1/devices/.../resolution
|
|
Date: May 2020
|
|
Contact: Akira Shimahara <akira215corp@gmail.com>
|
|
Description:
|
|
(RW) get or set the device resolution (on supported devices,
|
|
if not, this entry is not present). Note that the resolution
|
|
will be changed only in device RAM, so it will be cleared when
|
|
power is lost. Trigger a 'save' to EEPROM command to keep
|
|
values after power-on. Read or write are :
|
|
* '9..12': device resolution in bit
|
|
or resolution to set in bit
|
|
* '-xx': xx is kernel error when reading the resolution
|
|
* Anything else: do nothing
|
|
Users: any user space application which wants to communicate with
|
|
w1_term device
|
|
|
|
|
|
What: /sys/bus/w1/devices/.../temperature
|
|
Date: May 2020
|
|
Contact: Akira Shimahara <akira215corp@gmail.com>
|
|
Description:
|
|
(RO) return the temperature in 1/1000 degC.
|
|
Note that the conversion duration depend on the resolution (if
|
|
device support this feature). It takes 94ms in 9bits
|
|
resolution, 750ms for 12bits.
|
|
Users: any user space application which wants to communicate with
|
|
w1_term device
|
|
|
|
|
|
What: /sys/bus/w1/devices/.../w1_slave
|
|
Date: May 2020
|
|
Contact: Akira Shimahara <akira215corp@gmail.com>
|
|
Description:
|
|
(RW) return the temperature in 1/1000 degC.
|
|
*read*: return 2 lines with the hexa output data sent on the
|
|
bus, return the CRC check and temperature in 1/1000 degC
|
|
*write* :
|
|
* '0' : save the 2 or 3 bytes to the device EEPROM
|
|
(i.e. TH, TL and config register)
|
|
* '9..12' : set the device resolution in RAM
|
|
(if supported)
|
|
* Anything else: do nothing
|
|
refer to Documentation/w1/slaves/w1_therm.rst for detailed
|
|
information.
|
|
Users: any user space application which wants to communicate with
|
|
w1_term device |