diff options
author | Krzysztof Kozlowski <k.kozlowski@samsung.com> | 2015-03-12 03:44:02 -0400 |
---|---|---|
committer | Sebastian Reichel <sre@kernel.org> | 2015-03-13 18:15:12 -0400 |
commit | 2dc9215d7c94f7f9f34ccf8b1710ad73d82f6216 (patch) | |
tree | b8bae66b916e1f64dd725a68bca2182ee315bf66 /drivers/power/lp8727_charger.c | |
parent | e44ea364394499d38a26ed4c9668fb378ae8797f (diff) |
power_supply: Move run-time configuration to separate structure
Add new structure 'power_supply_config' for holding run-time
initialization data like of_node, supplies and private driver data.
The power_supply_register() function is changed so all power supply
drivers need updating.
When registering the power supply this new 'power_supply_config' should be
used instead of directly initializing 'struct power_supply'. This allows
changing the ownership of power_supply structure from driver to the
power supply core in next patches.
When a driver does not use of_node or supplies then it should use NULL
as config. If driver uses of_node or supplies then it should allocate
config on stack and initialize it with proper values.
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
[for the nvec part]
Reviewed-by: Marc Dietrich <marvin24@gmx.de>
[for drivers/platform/x86/compal-laptop.c]
Reviewed-by: Darren Hart <dvhart@linux.intel.com>
[for drivers/hid/*]
Reviewed-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Diffstat (limited to 'drivers/power/lp8727_charger.c')
-rw-r--r-- | drivers/power/lp8727_charger.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/power/lp8727_charger.c b/drivers/power/lp8727_charger.c index 32de636dcd73..1f71af7a3811 100644 --- a/drivers/power/lp8727_charger.c +++ b/drivers/power/lp8727_charger.c | |||
@@ -420,6 +420,7 @@ static void lp8727_charger_changed(struct power_supply *psy) | |||
420 | 420 | ||
421 | static int lp8727_register_psy(struct lp8727_chg *pchg) | 421 | static int lp8727_register_psy(struct lp8727_chg *pchg) |
422 | { | 422 | { |
423 | struct power_supply_config psy_cfg = {}; /* Only for ac and usb */ | ||
423 | struct lp8727_psy *psy; | 424 | struct lp8727_psy *psy; |
424 | 425 | ||
425 | psy = devm_kzalloc(pchg->dev, sizeof(*psy), GFP_KERNEL); | 426 | psy = devm_kzalloc(pchg->dev, sizeof(*psy), GFP_KERNEL); |
@@ -428,15 +429,16 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) | |||
428 | 429 | ||
429 | pchg->psy = psy; | 430 | pchg->psy = psy; |
430 | 431 | ||
432 | psy_cfg.supplied_to = battery_supplied_to; | ||
433 | psy_cfg.num_supplicants = ARRAY_SIZE(battery_supplied_to); | ||
434 | |||
431 | psy->ac.name = "ac"; | 435 | psy->ac.name = "ac"; |
432 | psy->ac.type = POWER_SUPPLY_TYPE_MAINS; | 436 | psy->ac.type = POWER_SUPPLY_TYPE_MAINS; |
433 | psy->ac.properties = lp8727_charger_prop; | 437 | psy->ac.properties = lp8727_charger_prop; |
434 | psy->ac.num_properties = ARRAY_SIZE(lp8727_charger_prop); | 438 | psy->ac.num_properties = ARRAY_SIZE(lp8727_charger_prop); |
435 | psy->ac.get_property = lp8727_charger_get_property; | 439 | psy->ac.get_property = lp8727_charger_get_property; |
436 | psy->ac.supplied_to = battery_supplied_to; | ||
437 | psy->ac.num_supplicants = ARRAY_SIZE(battery_supplied_to); | ||
438 | 440 | ||
439 | if (power_supply_register(pchg->dev, &psy->ac)) | 441 | if (power_supply_register(pchg->dev, &psy->ac, &psy_cfg)) |
440 | goto err_psy_ac; | 442 | goto err_psy_ac; |
441 | 443 | ||
442 | psy->usb.name = "usb"; | 444 | psy->usb.name = "usb"; |
@@ -444,10 +446,8 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) | |||
444 | psy->usb.properties = lp8727_charger_prop; | 446 | psy->usb.properties = lp8727_charger_prop; |
445 | psy->usb.num_properties = ARRAY_SIZE(lp8727_charger_prop); | 447 | psy->usb.num_properties = ARRAY_SIZE(lp8727_charger_prop); |
446 | psy->usb.get_property = lp8727_charger_get_property; | 448 | psy->usb.get_property = lp8727_charger_get_property; |
447 | psy->usb.supplied_to = battery_supplied_to; | ||
448 | psy->usb.num_supplicants = ARRAY_SIZE(battery_supplied_to); | ||
449 | 449 | ||
450 | if (power_supply_register(pchg->dev, &psy->usb)) | 450 | if (power_supply_register(pchg->dev, &psy->usb, &psy_cfg)) |
451 | goto err_psy_usb; | 451 | goto err_psy_usb; |
452 | 452 | ||
453 | psy->batt.name = "main_batt"; | 453 | psy->batt.name = "main_batt"; |
@@ -457,7 +457,7 @@ static int lp8727_register_psy(struct lp8727_chg *pchg) | |||
457 | psy->batt.get_property = lp8727_battery_get_property; | 457 | psy->batt.get_property = lp8727_battery_get_property; |
458 | psy->batt.external_power_changed = lp8727_charger_changed; | 458 | psy->batt.external_power_changed = lp8727_charger_changed; |
459 | 459 | ||
460 | if (power_supply_register(pchg->dev, &psy->batt)) | 460 | if (power_supply_register(pchg->dev, &psy->batt, NULL)) |
461 | goto err_psy_batt; | 461 | goto err_psy_batt; |
462 | 462 | ||
463 | return 0; | 463 | return 0; |