What:		/sys/class/regulator/.../state
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		state. This reports the regulator enable status, for
		regulators which can report that value.

		This will be one of the following strings:

		'enabled'
		'disabled'
		'unknown'

		'enabled' means the regulator output is ON and is supplying
		power to the system.

		'disabled' means the regulator output is OFF and is not
		supplying power to the system..

		'unknown' means software cannot determine the state, or
		the reported state is invalid.

		NOTE: this field can be used in conjunction with microvolts
		and microamps to determine regulator output levels.


What:		/sys/class/regulator/.../type
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory will contain a field called
		type. This holds the regulator type.

		This will be one of the following strings:

		'voltage'
		'current'
		'unknown'

		'voltage' means the regulator output voltage can be controlled
		by software.

		'current' means the regulator output current limit can be
		controlled by software.

		'unknown' means software cannot control either voltage or
		current limit.


What:		/sys/class/regulator/.../microvolts
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		microvolts. This holds the regulator output voltage setting
		measured in microvolts (i.e. E-6 Volts), for regulators
		which can report that voltage.

		NOTE: This value should not be used to determine the regulator
		output voltage level as this value is the same regardless of
		whether the regulator is enabled or disabled.


What:		/sys/class/regulator/.../microamps
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		microamps. This holds the regulator output current limit
		setting measured in microamps (i.e. E-6 Amps), for regulators
		which can report that current.

		NOTE: This value should not be used to determine the regulator
		output current level as this value is the same regardless of
		whether the regulator is enabled or disabled.


What:		/sys/class/regulator/.../opmode
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		opmode. This holds the current regulator operating mode,
		for regulators which can report it.

		The opmode value can be one of the following strings:

		'fast'
		'normal'
		'idle'
		'standby'
		'unknown'

		The modes are described in include/linux/regulator/consumer.h

		NOTE: This value should not be used to determine the regulator
		output operating mode as this value is the same regardless of
		whether the regulator is enabled or disabled.


What:		/sys/class/regulator/.../min_microvolts
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		min_microvolts. This holds the minimum safe working regulator
		output voltage setting for this domain measured in microvolts,
		for regulators which support voltage constraints.

		NOTE: this will return the string 'constraint not defined' if
		the power domain has no min microvolts constraint defined by
		platform code.


What:		/sys/class/regulator/.../max_microvolts
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		max_microvolts. This holds the maximum safe working regulator
		output voltage setting for this domain measured in microvolts,
		for regulators which support voltage constraints.

		NOTE: this will return the string 'constraint not defined' if
		the power domain has no max microvolts constraint defined by
		platform code.


What:		/sys/class/regulator/.../min_microamps
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		min_microamps. This holds the minimum safe working regulator
		output current limit setting for this domain measured in
		microamps, for regulators which support current constraints.

		NOTE: this will return the string 'constraint not defined' if
		the power domain has no min microamps constraint defined by
		platform code.


What:		/sys/class/regulator/.../max_microamps
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		max_microamps. This holds the maximum safe working regulator
		output current limit setting for this domain measured in
		microamps, for regulators which support current constraints.

		NOTE: this will return the string 'constraint not defined' if
		the power domain has no max microamps constraint defined by
		platform code.


What:		/sys/class/regulator/.../name
Date:		October 2008
KernelVersion:	2.6.28
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory will contain a field called
		name. This holds a string identifying the regulator for
		display purposes.

		NOTE: this will be empty if no suitable name is provided
		by platform or regulator drivers.


What:		/sys/class/regulator/.../num_users
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory will contain a field called
		num_users. This holds the number of consumer devices that
		have called regulator_enable() on this regulator.


What:		/sys/class/regulator/.../requested_microamps
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		requested_microamps. This holds the total requested load
		current in microamps for this regulator from all its consumer
		devices.


What:		/sys/class/regulator/.../parent
Date:		April 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a link called parent.
		This points to the parent or supply regulator if one exists.

What:		/sys/class/regulator/.../suspend_mem_microvolts
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		suspend_mem_microvolts. This holds the regulator output
		voltage setting for this domain measured in microvolts when
		the system is suspended to memory, for voltage regulators
		implementing suspend voltage configuration constraints.

What:		/sys/class/regulator/.../suspend_disk_microvolts
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		suspend_disk_microvolts. This holds the regulator output
		voltage setting for this domain measured in microvolts when
		the system is suspended to disk, for voltage regulators
		implementing suspend voltage configuration constraints.

What:		/sys/class/regulator/.../suspend_standby_microvolts
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		suspend_standby_microvolts. This holds the regulator output
		voltage setting for this domain measured in microvolts when
		the system is suspended to standby, for voltage regulators
		implementing suspend voltage configuration constraints.

What:		/sys/class/regulator/.../suspend_mem_mode
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		suspend_mem_mode. This holds the regulator operating mode
		setting for this domain when the system is suspended to
		memory, for regulators implementing suspend mode
		configuration constraints.

What:		/sys/class/regulator/.../suspend_disk_mode
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		suspend_disk_mode. This holds the regulator operating mode
		setting for this domain when the system is suspended to disk,
		for regulators implementing suspend mode configuration
		constraints.

What:		/sys/class/regulator/.../suspend_standby_mode
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		suspend_standby_mode. This holds the regulator operating mode
		setting for this domain when the system is suspended to
		standby, for regulators implementing suspend mode
		configuration constraints.

What:		/sys/class/regulator/.../suspend_mem_state
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		suspend_mem_state. This holds the regulator operating state
		when suspended to memory, for regulators implementing suspend
		configuration constraints.

		This will be one of the same strings reported by
		the "state" attribute.

What:		/sys/class/regulator/.../suspend_disk_state
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		suspend_disk_state. This holds the regulator operating state
		when suspended to disk, for regulators implementing
		suspend configuration constraints.

		This will be one of the same strings reported by
		the "state" attribute.

What:		/sys/class/regulator/.../suspend_standby_state
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Some regulator directories will contain a field called
		suspend_standby_state. This holds the regulator operating
		state when suspended to standby, for regulators implementing
		suspend configuration constraints.

		This will be one of the same strings reported by
		the "state" attribute.
