Commit 18c807db authored by Baolin Wang's avatar Baolin Wang Committed by Sebastian Reichel
Browse files

power: supply: sc2731_charger: Add charger status detection



The USB charger status can be notified before the charger driver registers
the USB phy notifier, so we should check the charger status in probe() in
case we missed the USB charger notification.

Signed-off-by: default avatarBaolin Wang <baolin.wang@linaro.org>
Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
parent 8ac1091e
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -432,6 +432,24 @@ error:
	return ret;
}

static void sc2731_charger_detect_status(struct sc2731_charger_info *info)
{
	unsigned int min, max;

	/*
	 * If the USB charger status has been USB_CHARGER_PRESENT before
	 * registering the notifier, we should start to charge with getting
	 * the charge current.
	 */
	if (info->usb_phy->chg_state != USB_CHARGER_PRESENT)
		return;

	usb_phy_get_charger_current(info->usb_phy, &min, &max);
	info->limit = min;

	schedule_work(&info->work);
}

static int sc2731_charger_probe(struct platform_device *pdev)
{
	struct device_node *np = pdev->dev.of_node;
@@ -486,6 +504,8 @@ static int sc2731_charger_probe(struct platform_device *pdev)
		return ret;
	}

	sc2731_charger_detect_status(info);

	return 0;
}