diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mfd/mc13783.h | 2 | ||||
| -rw-r--r-- | include/linux/regulator/consumer.h | 4 | ||||
| -rw-r--r-- | include/linux/regulator/driver.h | 6 | ||||
| -rw-r--r-- | include/linux/regulator/fixed.h | 2 | ||||
| -rw-r--r-- | include/linux/regulator/max8649.h | 44 | 
5 files changed, 57 insertions, 1 deletions
| diff --git a/include/linux/mfd/mc13783.h b/include/linux/mfd/mc13783.h index 35680409b8cf..94cb51a64037 100644 --- a/include/linux/mfd/mc13783.h +++ b/include/linux/mfd/mc13783.h @@ -108,6 +108,8 @@ int mc13783_adc_do_conversion(struct mc13783 *mc13783, unsigned int mode,  #define	MC13783_REGU_V2		28  #define	MC13783_REGU_V3		29  #define	MC13783_REGU_V4		30 +#define	MC13783_REGU_PWGT1SPI	31 +#define	MC13783_REGU_PWGT2SPI	32  #define MC13783_IRQ_ADCDONE	0  #define MC13783_IRQ_ADCBISDONE	1 diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index 030d92255c7a..28c9fd020d39 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h @@ -89,8 +89,9 @@   * REGULATION_OUT Regulator output is out of regulation.   * FAIL           Regulator output has failed.   * OVER_TEMP      Regulator over temp. - * FORCE_DISABLE  Regulator shut down by software. + * FORCE_DISABLE  Regulator forcibly shut down by software.   * VOLTAGE_CHANGE Regulator voltage changed. + * DISABLE        Regulator was disabled.   *   * NOTE: These events can be OR'ed together when passed into handler.   */ @@ -102,6 +103,7 @@  #define REGULATOR_EVENT_OVER_TEMP		0x10  #define REGULATOR_EVENT_FORCE_DISABLE		0x20  #define REGULATOR_EVENT_VOLTAGE_CHANGE		0x40 +#define REGULATOR_EVENT_DISABLE 		0x80  struct regulator; diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h index 31f2055eae28..592cd7c642c2 100644 --- a/include/linux/regulator/driver.h +++ b/include/linux/regulator/driver.h @@ -58,6 +58,9 @@ enum regulator_status {   * @get_optimum_mode: Get the most efficient operating mode for the regulator   *                    when running with the specified parameters.   * + * @enable_time: Time taken for the regulator voltage output voltage to + *               stabalise after being enabled, in microseconds. + *   * @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 @@ -93,6 +96,9 @@ struct regulator_ops {  	int (*set_mode) (struct regulator_dev *, unsigned int mode);  	unsigned int (*get_mode) (struct regulator_dev *); +	/* Time taken to enable the regulator */ +	int (*enable_time) (struct regulator_dev *); +  	/* report regulator status ... most other accessors report  	 * control inputs, this reports results of combining inputs  	 * from Linux (and other sources) with the actual load. diff --git a/include/linux/regulator/fixed.h b/include/linux/regulator/fixed.h index e94a4a1c7c8a..ffd7d508e726 100644 --- a/include/linux/regulator/fixed.h +++ b/include/linux/regulator/fixed.h @@ -25,6 +25,7 @@ struct regulator_init_data;   * @microvolts:		Output voltage of regulator   * @gpio:		GPIO to use for enable control   * 			set to -EINVAL if not used + * @startup_delay:	Start-up time in microseconds   * @enable_high:	Polarity of enable GPIO   *			1 = Active high, 0 = Active low   * @enabled_at_boot:	Whether regulator has been enabled at @@ -41,6 +42,7 @@ struct fixed_voltage_config {  	const char *supply_name;  	int microvolts;  	int gpio; +	unsigned startup_delay;  	unsigned enable_high:1;  	unsigned enabled_at_boot:1;  	struct regulator_init_data *init_data; diff --git a/include/linux/regulator/max8649.h b/include/linux/regulator/max8649.h new file mode 100644 index 000000000000..417d14ecd5cb --- /dev/null +++ b/include/linux/regulator/max8649.h @@ -0,0 +1,44 @@ +/* + * Interface of Maxim max8649 + * + * Copyright (C) 2009-2010 Marvell International Ltd. + *      Haojian Zhuang <haojian.zhuang@marvell.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef __LINUX_REGULATOR_MAX8649_H +#define	__LINUX_REGULATOR_MAX8649_H + +#include <linux/regulator/machine.h> + +enum { +	MAX8649_EXTCLK_26MHZ = 0, +	MAX8649_EXTCLK_13MHZ, +	MAX8649_EXTCLK_19MHZ,	/* 19.2MHz */ +}; + +enum { +	MAX8649_RAMP_32MV = 0, +	MAX8649_RAMP_16MV, +	MAX8649_RAMP_8MV, +	MAX8649_RAMP_4MV, +	MAX8649_RAMP_2MV, +	MAX8649_RAMP_1MV, +	MAX8649_RAMP_0_5MV, +	MAX8649_RAMP_0_25MV, +}; + +struct max8649_platform_data { +	struct regulator_init_data *regulator; + +	unsigned	mode:2;		/* bit[1:0] = VID1,VID0 */ +	unsigned	extclk_freq:2; +	unsigned	extclk:1; +	unsigned	ramp_timing:3; +	unsigned	ramp_down:1; +}; + +#endif	/* __LINUX_REGULATOR_MAX8649_H */ | 
