diff options
| author | Ćukasz Majewski <l.majewski@samsung.com> | 2012-11-13 03:22:00 +0000 | 
|---|---|---|
| committer | Anatolij Gustschin <agust@denx.de> | 2012-11-14 11:21:09 +0100 | 
| commit | bd8479e8deca8d57c9b27096ced4153d9aacd962 (patch) | |
| tree | 310b98eb76c83da068ca7363dde49184e1d6cc57 /include/power/pmic.h | |
| parent | e0a0cbf2472feb840a8b820838272c1204d51584 (diff) | |
| download | olio-uboot-2014.01-bd8479e8deca8d57c9b27096ced4153d9aacd962.tar.xz olio-uboot-2014.01-bd8479e8deca8d57c9b27096ced4153d9aacd962.zip | |
pmic: Extend struct pmic to support battery and charger related operations
Now it is possible to provide specific function per PMIC/power
device instance.
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Diffstat (limited to 'include/power/pmic.h')
| -rw-r--r-- | include/power/pmic.h | 30 | 
1 files changed, 29 insertions, 1 deletions
| diff --git a/include/power/pmic.h b/include/power/pmic.h index e9affc8dd..1ecfc0543 100644 --- a/include/power/pmic.h +++ b/include/power/pmic.h @@ -27,8 +27,9 @@  #include <common.h>  #include <linux/list.h>  #include <i2c.h> +#include <power/power_chrg.h> -enum { PMIC_I2C, PMIC_SPI, }; +enum { PMIC_I2C, PMIC_SPI, PMIC_NONE};  enum { I2C_PMIC, I2C_NUM, };  enum { PMIC_READ, PMIC_WRITE, };  enum { PMIC_SENSOR_BYTE_ORDER_LITTLE, PMIC_SENSOR_BYTE_ORDER_BIG, }; @@ -48,6 +49,27 @@ struct p_spi {  	u32 (*prepare_tx)(u32 reg, u32 *val, u32 write);  }; +struct pmic; +struct power_fg { +	int (*fg_battery_check) (struct pmic *p, struct pmic *bat); +	int (*fg_battery_update) (struct pmic *p, struct pmic *bat); +}; + +struct power_chrg { +	int (*chrg_type) (struct pmic *p); +	int (*chrg_bat_present) (struct pmic *p); +	int (*chrg_state) (struct pmic *p, int state, int current); +}; + +struct power_battery { +	struct battery *bat; +	int (*battery_init) (struct pmic *bat, struct pmic *p1, +			     struct pmic *p2, struct pmic *p3); +	int (*battery_charge) (struct pmic *bat); +	/* Keep info about power devices involved with battery operation */ +	struct pmic *chrg, *fg, *muic; +}; +  struct pmic {  	const char *name;  	unsigned char bus; @@ -59,6 +81,12 @@ struct pmic {  		struct p_spi spi;  	} hw; +	void (*low_power_mode) (void); +	struct power_battery *pbat; +	struct power_chrg *chrg; +	struct power_fg *fg; + +	struct pmic *parent;  	struct list_head list;  }; |