diff options
Diffstat (limited to 'drivers/power/tps80031-charger.c')
-rw-r--r-- | drivers/power/tps80031-charger.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/power/tps80031-charger.c b/drivers/power/tps80031-charger.c index 3da8eef2e01e..93b283e0b04f 100644 --- a/drivers/power/tps80031-charger.c +++ b/drivers/power/tps80031-charger.c @@ -65,6 +65,11 @@ struct tps80031_charger { }; static struct tps80031_charger *charger_data; +static uint8_t charging_current_val_code[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD, 0xE, 0x27, + 0x37, 0x28, 0x38, 0x29, 0x39, 0x2A, 0x3A, 0x2B, 0x3B, 0x2C, + 0x3C, 0x2D, 0x3D, 0x2E, +}; static int set_charge_current_limit(struct regulator_dev *rdev, int min_uA, int max_uA) @@ -101,8 +106,8 @@ static int set_charge_current_limit(struct regulator_dev *rdev, if (max_vbus_current) max_vbus_current--; ret = tps80031_update(charger->dev->parent, SLAVE_ID2, - CHARGERUSB_CINLIMIT, - (uint8_t)max_vbus_current, 0x3F); + CHARGERUSB_CINLIMIT, + charging_current_val_code[max_vbus_current], 0x3F); if (ret < 0) { dev_err(charger->dev, "%s(): Failed in writing register 0x%02x\n", __func__, CHARGERUSB_CINLIMIT); |