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

		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.

		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:
		Each regulator directory will contain a field called
		microvolts. This holds the regulator output voltage setting
		measured in microvolts (i.e. E-6 Volts).

		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:
		Each regulator directory will contain a field called
		microamps. This holds the regulator output current limit
		setting measured in microamps (i.e. E-6 Amps).

		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:
		Each regulator directory will contain a field called
		opmode. This holds the regulator operating mode setting.

		The opmode value can be one of the following strings:

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

		The modes are described in include/linux/regulator/regulator.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:
		Each regulator directory will contain a field called
		min_microvolts. This holds the minimum safe working regulator
		output voltage setting for this domain measured in microvolts.

		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:
		Each regulator directory will contain a field called
		max_microvolts. This holds the maximum safe working regulator
		output voltage setting for this domain measured in microvolts.

		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:
		Each regulator directory will contain a field called
		min_microamps. This holds the minimum safe working regulator
		output current limit setting for this domain measured in
		microamps.

		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:
		Each regulator directory will contain a field called
		max_microamps. This holds the maximum safe working regulator
		output current limit setting for this domain measured in
		microamps.

		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:
		Each regulator directory 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:
		Each regulator directory 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.

		NOTE: this will return the string 'not defined' if
		the power domain has no suspend to memory voltage defined by
		platform code.

What:		/sys/class/regulator/.../suspend_disk_microvolts
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory 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.

		NOTE: this will return the string 'not defined' if
		the power domain has no suspend to disk voltage defined by
		platform code.

What:		/sys/class/regulator/.../suspend_standby_microvolts
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory 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.

		NOTE: this will return the string 'not defined' if
		the power domain has no suspend to standby voltage defined by
		platform code.

What:		/sys/class/regulator/.../suspend_mem_mode
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory 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.

		NOTE: this will return the string 'not defined' if
		the power domain has no suspend to memory mode defined by
		platform code.

What:		/sys/class/regulator/.../suspend_disk_mode
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory 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.

		NOTE: this will return the string 'not defined' if
		the power domain has no suspend to disk mode defined by
		platform code.

What:		/sys/class/regulator/.../suspend_standby_mode
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory 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.

		NOTE: this will return the string 'not defined' if
		the power domain has no suspend to standby mode defined by
		platform code.

What:		/sys/class/regulator/.../suspend_mem_state
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory will contain a field called
		suspend_mem_state. This holds the regulator operating state
		when suspended to memory.

		This will be one of the following strings:

		'enabled'
		'disabled'
		'not defined'

What:		/sys/class/regulator/.../suspend_disk_state
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory will contain a field called
		suspend_disk_state. This holds the regulator operating state
		when suspended to disk.

		This will be one of the following strings:

		'enabled'
		'disabled'
		'not defined'

What:		/sys/class/regulator/.../suspend_standby_state
Date:		May 2008
KernelVersion:	2.6.26
Contact:	Liam Girdwood <lrg@slimlogic.co.uk>
Description:
		Each regulator directory will contain a field called
		suspend_standby_state. This holds the regulator operating
		state when suspended to standby.

		This will be one of the following strings:

		'enabled'
		'disabled'
		'not defined'
