aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/power/lp8727_charger.c
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>2015-03-12 03:44:02 -0400
committerSebastian Reichel <sre@kernel.org>2015-03-13 18:15:12 -0400
commit2dc9215d7c94f7f9f34ccf8b1710ad73d82f6216 (patch)
treeb8bae66b916e1f64dd725a68bca2182ee315bf66 /drivers/power/lp8727_charger.c
parente44ea364394499d38a26ed4c9668fb378ae8797f (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.c14
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
421static int lp8727_register_psy(struct lp8727_chg *pchg) 421static 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;