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 | u-boot-imx-bd8479e8deca8d57c9b27096ced4153d9aacd962.zip u-boot-imx-bd8479e8deca8d57c9b27096ced4153d9aacd962.tar.gz u-boot-imx-bd8479e8deca8d57c9b27096ced4153d9aacd962.tar.bz2 |
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 e9affc8..1ecfc05 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; }; |