mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-26 06:04:14 +08:00
power: supply: axp288_charger: Pick lower input current limit not higher
The code before this commit would pick 900 mA when asking for an input current limit of 600mA, rather then 500 mA, not good. While touching almost all code using the silly xxxMA defines anyways, also get rid of these simply typing out the numbers and switch the unit to uA as that is the psy class standard unit for currents. Reviewed-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
This commit is contained in:
parent
d1ce7e5853
commit
9563d05416
@ -99,21 +99,6 @@
|
|||||||
#define CV_4200MV 4200 /* 4200mV */
|
#define CV_4200MV 4200 /* 4200mV */
|
||||||
#define CV_4350MV 4350 /* 4350mV */
|
#define CV_4350MV 4350 /* 4350mV */
|
||||||
|
|
||||||
#define CC_200MA 200 /* 200mA */
|
|
||||||
#define CC_600MA 600 /* 600mA */
|
|
||||||
#define CC_800MA 800 /* 800mA */
|
|
||||||
#define CC_1000MA 1000 /* 1000mA */
|
|
||||||
#define CC_1600MA 1600 /* 1600mA */
|
|
||||||
#define CC_2000MA 2000 /* 2000mA */
|
|
||||||
|
|
||||||
#define ILIM_100MA 100 /* 100mA */
|
|
||||||
#define ILIM_500MA 500 /* 500mA */
|
|
||||||
#define ILIM_900MA 900 /* 900mA */
|
|
||||||
#define ILIM_1500MA 1500 /* 1500mA */
|
|
||||||
#define ILIM_2000MA 2000 /* 2000mA */
|
|
||||||
#define ILIM_2500MA 2500 /* 2500mA */
|
|
||||||
#define ILIM_3000MA 3000 /* 3000mA */
|
|
||||||
|
|
||||||
#define AXP288_EXTCON_DEV_NAME "axp288_extcon"
|
#define AXP288_EXTCON_DEV_NAME "axp288_extcon"
|
||||||
#define USB_HOST_EXTCON_HID "INT3496"
|
#define USB_HOST_EXTCON_HID "INT3496"
|
||||||
#define USB_HOST_EXTCON_NAME "INT3496:00"
|
#define USB_HOST_EXTCON_NAME "INT3496:00"
|
||||||
@ -253,23 +238,20 @@ static inline int axp288_charger_set_vbus_inlmt(struct axp288_chrg_info *info,
|
|||||||
int ret;
|
int ret;
|
||||||
u8 reg_val;
|
u8 reg_val;
|
||||||
|
|
||||||
if (inlmt <= ILIM_100MA) {
|
if (inlmt >= 3000000)
|
||||||
reg_val = CHRG_VBUS_ILIM_100MA;
|
reg_val = CHRG_VBUS_ILIM_3000MA << CHRG_VBUS_ILIM_BIT_POS;
|
||||||
} else if (inlmt <= ILIM_500MA) {
|
else if (inlmt >= 2500000)
|
||||||
reg_val = CHRG_VBUS_ILIM_500MA;
|
reg_val = CHRG_VBUS_ILIM_2500MA << CHRG_VBUS_ILIM_BIT_POS;
|
||||||
} else if (inlmt <= ILIM_900MA) {
|
else if (inlmt >= 2000000)
|
||||||
reg_val = CHRG_VBUS_ILIM_900MA;
|
reg_val = CHRG_VBUS_ILIM_2000MA << CHRG_VBUS_ILIM_BIT_POS;
|
||||||
} else if (inlmt <= ILIM_1500MA) {
|
else if (inlmt >= 1500000)
|
||||||
reg_val = CHRG_VBUS_ILIM_1500MA;
|
reg_val = CHRG_VBUS_ILIM_1500MA << CHRG_VBUS_ILIM_BIT_POS;
|
||||||
} else if (inlmt <= ILIM_2000MA) {
|
else if (inlmt >= 900000)
|
||||||
reg_val = CHRG_VBUS_ILIM_2000MA;
|
reg_val = CHRG_VBUS_ILIM_900MA << CHRG_VBUS_ILIM_BIT_POS;
|
||||||
} else if (inlmt <= ILIM_2500MA) {
|
else if (inlmt >= 500000)
|
||||||
reg_val = CHRG_VBUS_ILIM_2500MA;
|
reg_val = CHRG_VBUS_ILIM_500MA << CHRG_VBUS_ILIM_BIT_POS;
|
||||||
} else {
|
else
|
||||||
reg_val = CHRG_VBUS_ILIM_3000MA;
|
reg_val = CHRG_VBUS_ILIM_100MA << CHRG_VBUS_ILIM_BIT_POS;
|
||||||
}
|
|
||||||
|
|
||||||
reg_val = reg_val << CHRG_VBUS_ILIM_BIT_POS;
|
|
||||||
|
|
||||||
ret = regmap_update_bits(info->regmap, AXP20X_CHRG_BAK_CTRL,
|
ret = regmap_update_bits(info->regmap, AXP20X_CHRG_BAK_CTRL,
|
||||||
CHRG_VBUS_ILIM_MASK, reg_val);
|
CHRG_VBUS_ILIM_MASK, reg_val);
|
||||||
@ -584,13 +566,13 @@ static void axp288_charger_extcon_evt_worker(struct work_struct *work)
|
|||||||
/* Determine cable/charger type */
|
/* Determine cable/charger type */
|
||||||
if (extcon_get_state(edev, EXTCON_CHG_USB_SDP) > 0) {
|
if (extcon_get_state(edev, EXTCON_CHG_USB_SDP) > 0) {
|
||||||
dev_dbg(&info->pdev->dev, "USB SDP charger is connected\n");
|
dev_dbg(&info->pdev->dev, "USB SDP charger is connected\n");
|
||||||
current_limit = ILIM_500MA;
|
current_limit = 500000;
|
||||||
} else if (extcon_get_state(edev, EXTCON_CHG_USB_CDP) > 0) {
|
} else if (extcon_get_state(edev, EXTCON_CHG_USB_CDP) > 0) {
|
||||||
dev_dbg(&info->pdev->dev, "USB CDP charger is connected\n");
|
dev_dbg(&info->pdev->dev, "USB CDP charger is connected\n");
|
||||||
current_limit = ILIM_1500MA;
|
current_limit = 1500000;
|
||||||
} else if (extcon_get_state(edev, EXTCON_CHG_USB_DCP) > 0) {
|
} else if (extcon_get_state(edev, EXTCON_CHG_USB_DCP) > 0) {
|
||||||
dev_dbg(&info->pdev->dev, "USB DCP charger is connected\n");
|
dev_dbg(&info->pdev->dev, "USB DCP charger is connected\n");
|
||||||
current_limit = ILIM_2000MA;
|
current_limit = 2000000;
|
||||||
} else {
|
} else {
|
||||||
/* Charger type detection still in progress, bail. */
|
/* Charger type detection still in progress, bail. */
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user