Based on previous LKML discussions: * Update docs for regulator sysfs class attributes to highlight the fact that all current attributes are intended to be control inputs, including notably "state" and "opmode" which previously implied otherwise. * Define a new regulator driver get_status() method, which is the first method reporting regulator outputs instead of inputs. It can report on/off and error status; or instead of simply "on", report the actual operating mode. For the moment, this is a sysfs-only interface, not accessible to regulator clients. Such clients can use the current notification interfaces to detect errors, if the regulator reports them. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
		
			
				
	
	
		
			351 lines
		
	
	
	
		
			11 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			351 lines
		
	
	
	
		
			11 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
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 control, for
 | 
						|
		regulators which can report that input 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 (assuming no error prevents it).
 | 
						|
 | 
						|
		'disabled' means the regulator output is OFF and is not
 | 
						|
		supplying power to the system (unless some non-Linux
 | 
						|
		control has enabled it).
 | 
						|
 | 
						|
		'unknown' means software cannot determine the state, or
 | 
						|
		the reported state is invalid.
 | 
						|
 | 
						|
		NOTE: this field can be used in conjunction with microvolts
 | 
						|
		or microamps to determine configured regulator output levels.
 | 
						|
 | 
						|
 | 
						|
What:		/sys/class/regulator/.../status
 | 
						|
Description:
 | 
						|
		Some regulator directories will contain a field called
 | 
						|
		"status". This reports the current regulator status, for
 | 
						|
		regulators which can report that output value.
 | 
						|
 | 
						|
		This will be one of the following strings:
 | 
						|
 | 
						|
			off
 | 
						|
			on
 | 
						|
			error
 | 
						|
			fast
 | 
						|
			normal
 | 
						|
			idle
 | 
						|
			standby
 | 
						|
 | 
						|
		"off" means the regulator is not supplying power to the
 | 
						|
		system.
 | 
						|
 | 
						|
		"on" means the regulator is supplying power to the system,
 | 
						|
		and the regulator can't report a detailed operation mode.
 | 
						|
 | 
						|
		"error" indicates an out-of-regulation status such as being
 | 
						|
		disabled due to thermal shutdown, or voltage being unstable
 | 
						|
		because of problems with the input power supply.
 | 
						|
 | 
						|
		"fast", "normal", "idle", and "standby" are all detailed
 | 
						|
		regulator operation modes (described elsewhere).  They
 | 
						|
		imply "on", but provide more detail.
 | 
						|
 | 
						|
		Note that regulator status is a function of many inputs,
 | 
						|
		not limited to control inputs from Linux.  For example,
 | 
						|
		the actual load presented may trigger "error" status; or
 | 
						|
		a regulator may be enabled by another user, even though
 | 
						|
		Linux did not enable it.
 | 
						|
 | 
						|
 | 
						|
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 the control input for 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 the control input for a current limit.
 | 
						|
 | 
						|
		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 that control input value.
 | 
						|
 | 
						|
		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.  A "status"
 | 
						|
		attribute may be available to determine the actual mode.
 | 
						|
 | 
						|
 | 
						|
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.
 |