Commit 022992ee authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6:
  regulator: fix kernel-doc warnings
  regulator: catch some registration errors
  regulator: Add basic DocBook manual
  regulator: Fix some kerneldoc rendering issues
  regulator: Add missing kerneldoc
  regulator: Clean up kerneldoc warnings
  regulator: Remove extraneous kerneldoc annotations
  regulator: init/link earlier
  regulator: move set_machine_constraints after regulator device initialization
  regulator: da903x: make da903x_is_enabled return 0 or 1
  regulator: da903x: add '\n' to error messages
  regulator: sysfs attribute reduction (v2)
  regulator: code shrink (v2)
  regulator: improved mode error checks
  regulator: enable/disable refcounting
  regulator: struct device - replace bus_id with dev_name(), dev_set_name()
parents 5fbbf5f6 0ba4887c
...@@ -12,7 +12,7 @@ DOCBOOKS := z8530book.xml mcabook.xml \ ...@@ -12,7 +12,7 @@ DOCBOOKS := z8530book.xml mcabook.xml \
kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \
gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \ genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
mac80211.xml debugobjects.xml sh.xml mac80211.xml debugobjects.xml sh.xml regulator.xml
### ###
# The build process is as follows (targets): # The build process is as follows (targets):
......
This diff is collapsed.
...@@ -18,6 +18,9 @@ obj-$(CONFIG_ARM_AMBA) += amba/ ...@@ -18,6 +18,9 @@ obj-$(CONFIG_ARM_AMBA) += amba/
obj-$(CONFIG_XEN) += xen/ obj-$(CONFIG_XEN) += xen/
# regulators early, since some subsystems rely on them to initialize
obj-$(CONFIG_REGULATOR) += regulator/
# char/ comes before serial/ etc so that the VT console is the boot-time # char/ comes before serial/ etc so that the VT console is the boot-time
# default. # default.
obj-y += char/ obj-y += char/
...@@ -101,5 +104,4 @@ obj-$(CONFIG_PPC_PS3) += ps3/ ...@@ -101,5 +104,4 @@ obj-$(CONFIG_PPC_PS3) += ps3/
obj-$(CONFIG_OF) += of/ obj-$(CONFIG_OF) += of/
obj-$(CONFIG_SSB) += ssb/ obj-$(CONFIG_SSB) += ssb/
obj-$(CONFIG_VIRTIO) += virtio/ obj-$(CONFIG_VIRTIO) += virtio/
obj-$(CONFIG_REGULATOR) += regulator/
obj-$(CONFIG_STAGING) += staging/ obj-$(CONFIG_STAGING) += staging/
This diff is collapsed.
...@@ -102,7 +102,7 @@ static int da903x_set_ldo_voltage(struct regulator_dev *rdev, ...@@ -102,7 +102,7 @@ static int da903x_set_ldo_voltage(struct regulator_dev *rdev,
uint8_t val, mask; uint8_t val, mask;
if (check_range(info, min_uV, max_uV)) { if (check_range(info, min_uV, max_uV)) {
pr_err("invalid voltage range (%d, %d) uV", min_uV, max_uV); pr_err("invalid voltage range (%d, %d) uV\n", min_uV, max_uV);
return -EINVAL; return -EINVAL;
} }
...@@ -159,7 +159,7 @@ static int da903x_is_enabled(struct regulator_dev *rdev) ...@@ -159,7 +159,7 @@ static int da903x_is_enabled(struct regulator_dev *rdev)
if (ret) if (ret)
return ret; return ret;
return reg_val & (1 << info->enable_bit); return !!(reg_val & (1 << info->enable_bit));
} }
/* DA9030 specific operations */ /* DA9030 specific operations */
...@@ -172,7 +172,7 @@ static int da9030_set_ldo1_15_voltage(struct regulator_dev *rdev, ...@@ -172,7 +172,7 @@ static int da9030_set_ldo1_15_voltage(struct regulator_dev *rdev,
int ret; int ret;
if (check_range(info, min_uV, max_uV)) { if (check_range(info, min_uV, max_uV)) {
pr_err("invalid voltage range (%d, %d) uV", min_uV, max_uV); pr_err("invalid voltage range (%d, %d) uV\n", min_uV, max_uV);
return -EINVAL; return -EINVAL;
} }
...@@ -199,7 +199,7 @@ static int da9030_set_ldo14_voltage(struct regulator_dev *rdev, ...@@ -199,7 +199,7 @@ static int da9030_set_ldo14_voltage(struct regulator_dev *rdev,
int thresh; int thresh;
if (check_range(info, min_uV, max_uV)) { if (check_range(info, min_uV, max_uV)) {
pr_err("invalid voltage range (%d, %d) uV", min_uV, max_uV); pr_err("invalid voltage range (%d, %d) uV\n", min_uV, max_uV);
return -EINVAL; return -EINVAL;
} }
...@@ -248,7 +248,7 @@ static int da9034_set_dvc_voltage(struct regulator_dev *rdev, ...@@ -248,7 +248,7 @@ static int da9034_set_dvc_voltage(struct regulator_dev *rdev,
int ret; int ret;
if (check_range(info, min_uV, max_uV)) { if (check_range(info, min_uV, max_uV)) {
pr_err("invalid voltage range (%d, %d) uV", min_uV, max_uV); pr_err("invalid voltage range (%d, %d) uV\n", min_uV, max_uV);
return -EINVAL; return -EINVAL;
} }
...@@ -273,7 +273,7 @@ static int da9034_set_ldo12_voltage(struct regulator_dev *rdev, ...@@ -273,7 +273,7 @@ static int da9034_set_ldo12_voltage(struct regulator_dev *rdev,
uint8_t val, mask; uint8_t val, mask;
if (check_range(info, min_uV, max_uV)) { if (check_range(info, min_uV, max_uV)) {
pr_err("invalid voltage range (%d, %d) uV", min_uV, max_uV); pr_err("invalid voltage range (%d, %d) uV\n", min_uV, max_uV);
return -EINVAL; return -EINVAL;
} }
......
...@@ -104,10 +104,10 @@ struct regulator; ...@@ -104,10 +104,10 @@ struct regulator;
/** /**
* struct regulator_bulk_data - Data used for bulk regulator operations. * struct regulator_bulk_data - Data used for bulk regulator operations.
* *
* @supply The name of the supply. Initialised by the user before * @supply: The name of the supply. Initialised by the user before
* using the bulk regulator APIs. * using the bulk regulator APIs.
* @consumer The regulator consumer for the supply. This will be managed * @consumer: The regulator consumer for the supply. This will be managed
* by the bulk API. * by the bulk API.
* *
* The regulator APIs provide a series of regulator_bulk_() API calls as * The regulator APIs provide a series of regulator_bulk_() API calls as
* a convenience to consumers which require multiple supplies. This * a convenience to consumers which require multiple supplies. This
......
...@@ -24,7 +24,33 @@ struct regulator_init_data; ...@@ -24,7 +24,33 @@ struct regulator_init_data;
/** /**
* struct regulator_ops - regulator operations. * struct regulator_ops - regulator operations.
* *
* This struct describes regulator operations. * This struct describes regulator operations which can be implemented by
* regulator chip drivers.
*
* @enable: Enable the regulator.
* @disable: Disable the regulator.
* @is_enabled: Return 1 if the regulator is enabled, 0 otherwise.
*
* @set_voltage: Set the voltage for the regulator within the range specified.
* The driver should select the voltage closest to min_uV.
* @get_voltage: Return the currently configured voltage for the regulator.
*
* @set_current_limit: Configure a limit for a current-limited regulator.
* @get_current_limit: Get the limit for a current-limited regulator.
*
* @set_mode: Set the operating mode for the regulator.
* @get_mode: Get the current operating mode for the regulator.
* @get_optimum_mode: Get the most efficient operating mode for the regulator
* when running with the specified parameters.
*
* @set_suspend_voltage: Set the voltage for the regulator when the system
* is suspended.
* @set_suspend_enable: Mark the regulator as enabled when the system is
* suspended.
* @set_suspend_disable: Mark the regulator as disabled when the system is
* suspended.
* @set_suspend_mode: Set the operating mode for the regulator when the
* system is suspended.
*/ */
struct regulator_ops { struct regulator_ops {
...@@ -75,6 +101,15 @@ enum regulator_type { ...@@ -75,6 +101,15 @@ enum regulator_type {
/** /**
* struct regulator_desc - Regulator descriptor * struct regulator_desc - Regulator descriptor
* *
* Each regulator registered with the core is described with a structure of
* this type.
*
* @name: Identifying name for the regulator.
* @id: Numerical identifier for the regulator.
* @ops: Regulator operations table.
* @irq: Interrupt number for the regulator.
* @type: Indicates if the regulator is a voltage or current regulator.
* @owner: Module providing the regulator, used for refcounting.
*/ */
struct regulator_desc { struct regulator_desc {
const char *name; const char *name;
......
...@@ -44,6 +44,10 @@ struct regulator; ...@@ -44,6 +44,10 @@ struct regulator;
* struct regulator_state - regulator state during low power syatem states * struct regulator_state - regulator state during low power syatem states
* *
* This describes a regulators state during a system wide low power state. * This describes a regulators state during a system wide low power state.
*
* @uV: Operating voltage during suspend.
* @mode: Operating mode during suspend.
* @enabled: Enabled during suspend.
*/ */
struct regulator_state { struct regulator_state {
int uV; /* suspend voltage */ int uV; /* suspend voltage */
...@@ -55,6 +59,30 @@ struct regulator_state { ...@@ -55,6 +59,30 @@ struct regulator_state {
* struct regulation_constraints - regulator operating constraints. * struct regulation_constraints - regulator operating constraints.
* *
* This struct describes regulator and board/machine specific constraints. * This struct describes regulator and board/machine specific constraints.
*
* @name: Descriptive name for the constraints, used for display purposes.
*
* @min_uV: Smallest voltage consumers may set.
* @max_uV: Largest voltage consumers may set.
*
* @min_uA: Smallest consumers consumers may set.
* @max_uA: Largest current consumers may set.
*
* @valid_modes_mask: Mask of modes which may be configured by consumers.
* @valid_ops_mask: Operations which may be performed by consumers.
*
* @always_on: Set if the regulator should never be disabled.
* @boot_on: Set if the regulator is enabled when the system is initially
* started.
* @apply_uV: Apply the voltage constraint when initialising.
*
* @input_uV: Input voltage for regulator when supplied by another regulator.
*
* @state_disk: State for regulator when system is suspended in disk mode.
* @state_mem: State for regulator when system is suspended in mem mode.
* @state_standby: State for regulator when system is suspended in standby
* mode.
* @initial_state: Suspend state to set by default.
*/ */
struct regulation_constraints { struct regulation_constraints {
...@@ -93,6 +121,9 @@ struct regulation_constraints { ...@@ -93,6 +121,9 @@ struct regulation_constraints {
* struct regulator_consumer_supply - supply -> device mapping * struct regulator_consumer_supply - supply -> device mapping
* *
* This maps a supply name to a device. * This maps a supply name to a device.
*
* @dev: Device structure for the consumer.
* @supply: Name for the supply.
*/ */
struct regulator_consumer_supply { struct regulator_consumer_supply {
struct device *dev; /* consumer */ struct device *dev; /* consumer */
...@@ -103,6 +134,16 @@ struct regulator_consumer_supply { ...@@ -103,6 +134,16 @@ struct regulator_consumer_supply {
* struct regulator_init_data - regulator platform initialisation data. * struct regulator_init_data - regulator platform initialisation data.
* *
* Initialisation constraints, our supply and consumers supplies. * Initialisation constraints, our supply and consumers supplies.
*
* @supply_regulator_dev: Parent regulator (if any).
*
* @constraints: Constraints. These must be specified for the regulator to
* be usable.
* @num_consumer_supplies: Number of consumer device supplies.
* @consumer_supplies: Consumer device supply configuration.
*
* @regulator_init: Callback invoked when the regulator has been registered.
* @driver_data: Data passed to regulator_init.
*/ */
struct regulator_init_data { struct regulator_init_data {
struct device *supply_regulator_dev; /* or NULL for LINE */ struct device *supply_regulator_dev; /* or NULL for LINE */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment