summaryrefslogtreecommitdiffstats
path: root/drivers/power/smb347-charger.c
diff options
context:
space:
mode:
authorKrzysztof Kozlowski2015-03-12 08:44:02 +0100
committerSebastian Reichel2015-03-13 23:15:12 +0100
commit2dc9215d7c94f7f9f34ccf8b1710ad73d82f6216 (patch)
treeb8bae66b916e1f64dd725a68bca2182ee315bf66 /drivers/power/smb347-charger.c
parentpower_supply: Add driver private data (diff)
downloadkernel-qcow2-linux-2dc9215d7c94f7f9f34ccf8b1710ad73d82f6216.tar.gz
kernel-qcow2-linux-2dc9215d7c94f7f9f34ccf8b1710ad73d82f6216.tar.xz
kernel-qcow2-linux-2dc9215d7c94f7f9f34ccf8b1710ad73d82f6216.zip
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/smb347-charger.c')
-rw-r--r--drivers/power/smb347-charger.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/power/smb347-charger.c b/drivers/power/smb347-charger.c
index e9702de262e5..4396a1ffeb1a 100644
--- a/drivers/power/smb347-charger.c
+++ b/drivers/power/smb347-charger.c
@@ -1194,6 +1194,7 @@ static int smb347_probe(struct i2c_client *client,
{
static char *battery[] = { "smb347-battery" };
const struct smb347_charger_platform_data *pdata;
+ struct power_supply_config psy_cfg = {}; /* Only for mains and usb */
struct device *dev = &client->dev;
struct smb347_charger *smb;
int ret;
@@ -1223,15 +1224,15 @@ static int smb347_probe(struct i2c_client *client,
if (ret < 0)
return ret;
+ psy_cfg.supplied_to = battery;
+ psy_cfg.num_supplicants = ARRAY_SIZE(battery);
if (smb->pdata->use_mains) {
smb->mains.name = "smb347-mains";
smb->mains.type = POWER_SUPPLY_TYPE_MAINS;
smb->mains.get_property = smb347_mains_get_property;
smb->mains.properties = smb347_mains_properties;
smb->mains.num_properties = ARRAY_SIZE(smb347_mains_properties);
- smb->mains.supplied_to = battery;
- smb->mains.num_supplicants = ARRAY_SIZE(battery);
- ret = power_supply_register(dev, &smb->mains);
+ ret = power_supply_register(dev, &smb->mains, &psy_cfg);
if (ret < 0)
return ret;
}
@@ -1242,9 +1243,7 @@ static int smb347_probe(struct i2c_client *client,
smb->usb.get_property = smb347_usb_get_property;
smb->usb.properties = smb347_usb_properties;
smb->usb.num_properties = ARRAY_SIZE(smb347_usb_properties);
- smb->usb.supplied_to = battery;
- smb->usb.num_supplicants = ARRAY_SIZE(battery);
- ret = power_supply_register(dev, &smb->usb);
+ ret = power_supply_register(dev, &smb->usb, &psy_cfg);
if (ret < 0) {
if (smb->pdata->use_mains)
power_supply_unregister(&smb->mains);
@@ -1259,7 +1258,7 @@ static int smb347_probe(struct i2c_client *client,
smb->battery.num_properties = ARRAY_SIZE(smb347_battery_properties);
- ret = power_supply_register(dev, &smb->battery);
+ ret = power_supply_register(dev, &smb->battery, NULL);
if (ret < 0) {
if (smb->pdata->use_usb)
power_supply_unregister(&smb->usb);