What:		/sys/bus/iio/devices/triggerX/master_mode_available
KernelVersion:	4.11
Contact:	benjamin.gaignard@st.com
Description:
		Reading returns the list possible master modes which are:
		- "reset"     :	The UG bit from the TIMx_EGR register is
				used as trigger output (TRGO).
		- "enable"    : The Counter Enable signal CNT_EN is used
				as trigger output.
		- "update"    : The update event is selected as trigger output.
				For instance a master timer can then be used
				as a prescaler for a slave timer.
		- "compare_pulse" : The trigger output send a positive pulse
				    when the CC1IF flag is to be set.
		- "OC1REF"    : OC1REF signal is used as trigger output.
		- "OC2REF"    : OC2REF signal is used as trigger output.
		- "OC3REF"    : OC3REF signal is used as trigger output.
		- "OC4REF"    : OC4REF signal is used as trigger output.
		Additional modes (on TRGO2 only):
		- "OC5REF"    : OC5REF signal is used as trigger output.
		- "OC6REF"    : OC6REF signal is used as trigger output.
		- "compare_pulse_OC4REF":
		  OC4REF rising or falling edges generate pulses.
		- "compare_pulse_OC6REF":
		  OC6REF rising or falling edges generate pulses.
		- "compare_pulse_OC4REF_r_or_OC6REF_r":
		  OC4REF or OC6REF rising edges generate pulses.
		- "compare_pulse_OC4REF_r_or_OC6REF_f":
		  OC4REF rising or OC6REF falling edges generate pulses.
		- "compare_pulse_OC5REF_r_or_OC6REF_r":
		  OC5REF or OC6REF rising edges generate pulses.
		- "compare_pulse_OC5REF_r_or_OC6REF_f":
		  OC5REF rising or OC6REF falling edges generate pulses.

		+-----------+   +-------------+            +---------+
		| Prescaler +-> | Counter     |        +-> | Master  | TRGO(2)
		+-----------+   +--+--------+-+        |-> | Control +-->
		                   |        |          ||  +---------+
		                +--v--------+-+ OCxREF ||  +---------+
		                | Chx compare +----------> | Output  | ChX
		                +-----------+-+         |  | Control +-->
		                      .     |           |  +---------+
		                      .     |           |    .
		                +-----------v-+ OC6REF  |    .
		                | Ch6 compare +---------+>
		                +-------------+

		Example with: "compare_pulse_OC4REF_r_or_OC6REF_r":

		                X
		              X   X
		            X .   . X
		          X   .   .   X
		        X     .   .     X
		count X .     .   .     . X
		        .     .   .     .
		        .     .   .     .
		        +---------------+
		OC4REF  |     .   .     |
		      +-+     .   .     +-+
		        .     +---+     .
		OC6REF  .     |   |     .
		      +-------+   +-------+
		        +-+   +-+
		TRGO2   | |   | |
		      +-+ +---+ +---------+

What:		/sys/bus/iio/devices/triggerX/master_mode
KernelVersion:	4.11
Contact:	benjamin.gaignard@st.com
Description:
		Reading returns the current master modes.
		Writing set the master mode

What:		/sys/bus/iio/devices/triggerX/sampling_frequency
KernelVersion:	4.11
Contact:	benjamin.gaignard@st.com
Description:
		Reading returns the current sampling frequency.
		Writing an value different of 0 set and start sampling.
		Writing 0 stop sampling.

What:		/sys/bus/iio/devices/iio:deviceX/in_count0_preset
KernelVersion:	4.12
Contact:	benjamin.gaignard@st.com
Description:
		Reading returns the current preset value.
		Writing sets the preset value.
		When counting up the counter starts from 0 and fires an
		event when reach preset value.
		When counting down the counter start from preset value
		and fire event when reach 0.

What:		/sys/bus/iio/devices/iio:deviceX/in_count_enable_mode_available
KernelVersion:	4.12
Contact:	benjamin.gaignard@st.com
Description:
		Reading returns the list possible enable modes.

What:		/sys/bus/iio/devices/iio:deviceX/in_count0_enable_mode
KernelVersion:	4.12
Contact:	benjamin.gaignard@st.com
Description:
		Configure the device counter enable modes, in all case
		counting direction is set by in_count0_count_direction
		attribute and the counter is clocked by the internal clock.
		always:
			Counter is always ON.

		gated:
			Counting is enabled when connected trigger signal
			level is high else counting is disabled.

		triggered:
			Counting is enabled on rising edge of the connected
			trigger, and remains enabled for the duration of this
			selected mode.

What:		/sys/bus/iio/devices/iio:deviceX/in_count_trigger_mode_available
KernelVersion:	4.13
Contact:	benjamin.gaignard@st.com
Description:
		Reading returns the list possible trigger modes.

What:		/sys/bus/iio/devices/iio:deviceX/in_count0_trigger_mode
KernelVersion:	4.13
Contact:	benjamin.gaignard@st.com
Description:
		Configure the device counter trigger mode
		counting direction is set by in_count0_count_direction
		attribute and the counter is clocked by the connected trigger
		rising edges.
