Merge tag 'for-v3.7' of git://git.infradead.org/battery-2.6

Pull battery updates from Anton Vorontsov:
 "1. New drivers:
     - Marvell 88pm860x charger and battery drivers;
     - Texas Instruments LP8788 charger driver;
  2. Two new power supply properties: whether a battery is authentic,
     and chargers' maximal currents and voltages;
  3. A lot of TI LP8727 Charger cleanups;
  4. New features for Charger Manager, mainly now we can disable
     specific regulators;
  5. Random fixes and cleanups for other drivers."

Fix up trivial conflicts in <linux/mfd/88pm860x.h>

* tag 'for-v3.7' of git://git.infradead.org/battery-2.6: (52 commits)
  pda_power: Remove ac_draw_failed goto and label
  charger-manager: Add support sysfs entry for charger
  charger-manager: Support limit of maximum possible
  charger-manager: Check fully charged state of battery periodically
  lp8727_charger: More pure cosmetic improvements
  lp8727_charger: Fix checkpatch warning
  lp8727_charger: Add description in the private data
  lp8727_charger: Fix a typo - chg_parm to chg_param
  lp8727_charger: Make some cosmetic changes in lp8727_delayed_func()
  lp8727_charger: Clean up lp8727_charger_changed()
  lp8727_charger: Return if the battery is discharging
  lp8727_charger: Make lp8727_charger_get_propery() simpler
  lp8727_charger: Make lp8727_ctrl_switch() inline
  lp8727_charger: Make lp8727_init_device() shorter
  lp8727_charger: Clean up lp8727_is_charger_attached()
  lp8727_charger: Use specific definition
  lp8727_charger: Clean up lp8727 definitions
  lp8727_charger: Use the definition rather than enum
  lp8727_charger: Fix code for getting battery temp
  lp8727_charger: Clear interrrupts at inital time
  ...
This commit is contained in:
Linus Torvalds
2012-10-07 17:29:24 +09:00
26 changed files with 3519 additions and 297 deletions

View File

@@ -39,6 +39,21 @@ enum {
#define PM8606_DCM_BOOST (0x00)
#define PM8606_PWM (0x01)
#define PM8607_MISC2 (0x42)
/* Power Up Log Register */
#define PM8607_POWER_UP_LOG (0x3F)
/* Charger Control Registers */
#define PM8607_CCNT (0x47)
#define PM8607_CHG_CTRL1 (0x48)
#define PM8607_CHG_CTRL2 (0x49)
#define PM8607_CHG_CTRL3 (0x4A)
#define PM8607_CHG_CTRL4 (0x4B)
#define PM8607_CHG_CTRL5 (0x4C)
#define PM8607_CHG_CTRL6 (0x4D)
#define PM8607_CHG_CTRL7 (0x4E)
/* Backlight Registers */
#define PM8606_WLED1A (0x02)
#define PM8606_WLED1B (0x03)
@@ -189,6 +204,71 @@ enum {
#define PM8607_PD_PREBIAS (0x56) /* prebias time */
#define PM8607_GPADC_MISC1 (0x57)
/* bit definitions of MEAS_EN1*/
#define PM8607_MEAS_EN1_VBAT (1 << 0)
#define PM8607_MEAS_EN1_VCHG (1 << 1)
#define PM8607_MEAS_EN1_VSYS (1 << 2)
#define PM8607_MEAS_EN1_TINT (1 << 3)
#define PM8607_MEAS_EN1_RFTMP (1 << 4)
#define PM8607_MEAS_EN1_TBAT (1 << 5)
#define PM8607_MEAS_EN1_GPADC2 (1 << 6)
#define PM8607_MEAS_EN1_GPADC3 (1 << 7)
/* Battery Monitor Registers */
#define PM8607_GP_BIAS2 (0x5A)
#define PM8607_VBAT_LOWTH (0x5B)
#define PM8607_VCHG_LOWTH (0x5C)
#define PM8607_VSYS_LOWTH (0x5D)
#define PM8607_TINT_LOWTH (0x5E)
#define PM8607_GPADC0_LOWTH (0x5F)
#define PM8607_GPADC1_LOWTH (0x60)
#define PM8607_GPADC2_LOWTH (0x61)
#define PM8607_GPADC3_LOWTH (0x62)
#define PM8607_VBAT_HIGHTH (0x63)
#define PM8607_VCHG_HIGHTH (0x64)
#define PM8607_VSYS_HIGHTH (0x65)
#define PM8607_TINT_HIGHTH (0x66)
#define PM8607_GPADC0_HIGHTH (0x67)
#define PM8607_GPADC1_HIGHTH (0x68)
#define PM8607_GPADC2_HIGHTH (0x69)
#define PM8607_GPADC3_HIGHTH (0x6A)
#define PM8607_IBAT_MEAS1 (0x6B)
#define PM8607_IBAT_MEAS2 (0x6C)
#define PM8607_VBAT_MEAS1 (0x6D)
#define PM8607_VBAT_MEAS2 (0x6E)
#define PM8607_VCHG_MEAS1 (0x6F)
#define PM8607_VCHG_MEAS2 (0x70)
#define PM8607_VSYS_MEAS1 (0x71)
#define PM8607_VSYS_MEAS2 (0x72)
#define PM8607_TINT_MEAS1 (0x73)
#define PM8607_TINT_MEAS2 (0x74)
#define PM8607_GPADC0_MEAS1 (0x75)
#define PM8607_GPADC0_MEAS2 (0x76)
#define PM8607_GPADC1_MEAS1 (0x77)
#define PM8607_GPADC1_MEAS2 (0x78)
#define PM8607_GPADC2_MEAS1 (0x79)
#define PM8607_GPADC2_MEAS2 (0x7A)
#define PM8607_GPADC3_MEAS1 (0x7B)
#define PM8607_GPADC3_MEAS2 (0x7C)
#define PM8607_CCNT_MEAS1 (0x95)
#define PM8607_CCNT_MEAS2 (0x96)
#define PM8607_VBAT_AVG (0x97)
#define PM8607_VCHG_AVG (0x98)
#define PM8607_VSYS_AVG (0x99)
#define PM8607_VBAT_MIN (0x9A)
#define PM8607_VCHG_MIN (0x9B)
#define PM8607_VSYS_MIN (0x9C)
#define PM8607_VBAT_MAX (0x9D)
#define PM8607_VCHG_MAX (0x9E)
#define PM8607_VSYS_MAX (0x9F)
#define PM8607_GPADC_MISC2 (0x59)
#define PM8607_GPADC0_GP_BIAS_A0 (1 << 0)
#define PM8607_GPADC1_GP_BIAS_A1 (1 << 1)
#define PM8607_GPADC2_GP_BIAS_A2 (1 << 2)
#define PM8607_GPADC3_GP_BIAS_A3 (1 << 3)
#define PM8607_GPADC2_GP_BIAS_OUT2 (1 << 6)
/* RTC Control Registers */
#define PM8607_RTC1 (0xA0)
#define PM8607_RTC_COUNTER1 (0xA1)
@@ -350,7 +430,8 @@ struct pm860x_touch_pdata {
};
struct pm860x_power_pdata {
unsigned fast_charge; /* charge current */
int max_capacity;
int resistor;
};
struct pm860x_platform_data {
@@ -375,6 +456,7 @@ struct pm860x_platform_data {
struct regulator_init_data *ldo12;
struct regulator_init_data *ldo_vibrator;
struct regulator_init_data *ldo14;
struct charger_desc *chg_desc;
int companion_addr; /* I2C address of companion chip */
int i2c_port; /* Controlled by GI2C or PI2C */