Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6b6b180 authored by Philipp Zabel's avatar Philipp Zabel Committed by Anton Vorontsov
Browse files

pda_power: add init and exit function callbacks



This adds init/exit function callbacks to pda_power, to
provide a place where the platform code can request/free
GPIOs that it wants to use in the is_ac_online, is_usb_online
and set_charge functions.

Signed-off-by: default avatarPhilipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: default avatarAnton Vorontsov <cbouatmailru@gmail.com>
parent a985aabe
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -209,6 +209,12 @@ static int pda_power_probe(struct platform_device *pdev)

	pdata = pdev->dev.platform_data;

	if (pdata->init) {
		ret = pdata->init(dev);
		if (ret < 0)
			goto init_failed;
	}

	update_status();
	update_charger();

@@ -298,6 +304,9 @@ static int pda_power_probe(struct platform_device *pdev)
	if (pdata->is_ac_online)
		power_supply_unregister(&pda_psy_ac);
ac_supply_failed:
	if (pdata->exit)
		pdata->exit(dev);
init_failed:
wrongid:
	return ret;
}
@@ -318,6 +327,8 @@ static int pda_power_remove(struct platform_device *pdev)
		power_supply_unregister(&pda_psy_usb);
	if (pdata->is_ac_online)
		power_supply_unregister(&pda_psy_ac);
	if (pdata->exit)
		pdata->exit(dev);

	return 0;
}
+4 −0
Original line number Diff line number Diff line
@@ -16,10 +16,14 @@
#define PDA_POWER_CHARGE_AC  (1 << 0)
#define PDA_POWER_CHARGE_USB (1 << 1)

struct device;

struct pda_power_pdata {
	int (*init)(struct device *dev);
	int (*is_ac_online)(void);
	int (*is_usb_online)(void);
	void (*set_charge)(int flags);
	void (*exit)(struct device *dev);

	char **supplied_to;
	size_t num_supplicants;