What:		/sys/bus/w1/devices/.../alarms
Date:		May 2020
Contact:	Akira Shimahara <akira215corp@gmail.com>
Description:
		(RW) read or write TH and TL (Temperature High an Low) alarms.
		Values shall be space separated and in the device range
		(typical -55 degC to 125 degC), if not values will be trimmed
		to device min/max capabilities. Values are integer as they are
		stored in a 8bit register in the device. Lowest value is
		automatically put to TL. Once set, alarms could be search at
		master level, refer to Documentation/w1/w1-generic.rst for
		detailed information
Users:		any user space application which wants to communicate with
		w1_term device


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..14': device resolution in bit
			  or resolution to set in bit
			* '-xx': xx is kernel error when reading the resolution
			* Anything else: do nothing

		Some DS18B20 clones are fixed in 12-bit resolution, so the
		actual resolution is read back from the chip and verified. Error
		is reported if the results differ.
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.

			* If a bulk read has been triggered, it will directly
			  return the temperature computed when the bulk read
			  occurred, if available. If not yet available, nothing
			  is returned (a debug kernel message is sent), you
			  should retry later on.
			* If no bulk read has been triggered, it will trigger
			  a conversion and send the result. 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..14' : 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


What:		/sys/bus/w1/devices/w1_bus_masterXX/therm_bulk_read
Date:		May 2020
Contact:	Akira Shimahara <akira215corp@gmail.com>
Description:
		(RW) trigger a bulk read conversion. read the status

		*read*:
			* '-1':
				conversion in progress on at least 1 sensor
			* '1' :
				conversion complete but at least one sensor
				value has not been read yet
			* '0' :
				no bulk operation. Reading temperature will
				trigger a conversion on each device

		*write*:
			'trigger': trigger a bulk read on all supporting
			devices on the bus

		Note that if a bulk read is sent but one sensor is not read
		immediately, the next access to temperature on this device
		will return the temperature measured at the time of issue
		of the bulk read command (not the current temperature).
Users:		any user space application which wants to communicate with
		w1_term device


What:		/sys/bus/w1/devices/.../conv_time
Date:		July 2020
Contact:	Ivan Zaentsev <ivan.zaentsev@wirenboard.ru>
Description:
		(RW) Get, set, or measure a temperature conversion time. The
		setting remains active until a resolution change. Then it is
		reset to default (datasheet) conversion time for a new
		resolution.

		*read*:
			Actual conversion time in milliseconds.

		*write*:
			* '0':
			     Set the default conversion time from the datasheet.
			* '1':
			     Measure and set the conversion time. Make a single
			     temperature conversion, measure an actual value.
			     Increase it by 20% for temperature range. A new
			     conversion time can be obtained by reading this
			     same attribute.
			* other positive value:
			     Set the conversion time in milliseconds.

Users:		An application using the w1_term device


What:		/sys/bus/w1/devices/.../features
Date:		July 2020
Contact:	Ivan Zaentsev <ivan.zaentsev@wirenboard.ru>
Description:
		(RW) Control optional driver settings.
		Bit masks to read/write (bitwise OR):

		== ============================================================
                 1 Enable check for conversion success. If byte 6 of
                   scratchpad memory is 0xC after conversion, and
                   temperature reads 85.00 (powerup value) or 127.94
                   (insufficient power) - return a conversion error.

                2  Enable poll for conversion completion. Generate read cycles
                   after the conversion start and wait for 1's. In parasite
                   power mode this feature is not available.
		== ============================================================

		*read*:
		    Currently selected features.

		*write*:
		    Select features.

Users:		An application using the w1_term device
