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/pm2301_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/pm2301_charger.c')
-rw-r--r-- | drivers/power/pm2301_charger.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/power/pm2301_charger.c b/drivers/power/pm2301_charger.c index 777324992c59..d2e88e473238 100644 --- a/drivers/power/pm2301_charger.c +++ b/drivers/power/pm2301_charger.c | |||
@@ -989,6 +989,7 @@ static int pm2xxx_wall_charger_probe(struct i2c_client *i2c_client, | |||
989 | const struct i2c_device_id *id) | 989 | const struct i2c_device_id *id) |
990 | { | 990 | { |
991 | struct pm2xxx_platform_data *pl_data = i2c_client->dev.platform_data; | 991 | struct pm2xxx_platform_data *pl_data = i2c_client->dev.platform_data; |
992 | struct power_supply_config psy_cfg = {}; | ||
992 | struct pm2xxx_charger *pm2; | 993 | struct pm2xxx_charger *pm2; |
993 | int ret = 0; | 994 | int ret = 0; |
994 | u8 val; | 995 | u8 val; |
@@ -1047,8 +1048,9 @@ static int pm2xxx_wall_charger_probe(struct i2c_client *i2c_client, | |||
1047 | pm2->ac_chg.psy.properties = pm2xxx_charger_ac_props; | 1048 | pm2->ac_chg.psy.properties = pm2xxx_charger_ac_props; |
1048 | pm2->ac_chg.psy.num_properties = ARRAY_SIZE(pm2xxx_charger_ac_props); | 1049 | pm2->ac_chg.psy.num_properties = ARRAY_SIZE(pm2xxx_charger_ac_props); |
1049 | pm2->ac_chg.psy.get_property = pm2xxx_charger_ac_get_property; | 1050 | pm2->ac_chg.psy.get_property = pm2xxx_charger_ac_get_property; |
1050 | pm2->ac_chg.psy.supplied_to = pm2->pdata->supplied_to; | 1051 | |
1051 | pm2->ac_chg.psy.num_supplicants = pm2->pdata->num_supplicants; | 1052 | psy_cfg.supplied_to = pm2->pdata->supplied_to; |
1053 | psy_cfg.num_supplicants = pm2->pdata->num_supplicants; | ||
1052 | /* pm2xxx_charger sub-class */ | 1054 | /* pm2xxx_charger sub-class */ |
1053 | pm2->ac_chg.ops.enable = &pm2xxx_charger_ac_en; | 1055 | pm2->ac_chg.ops.enable = &pm2xxx_charger_ac_en; |
1054 | pm2->ac_chg.ops.kick_wd = &pm2xxx_charger_watchdog_kick; | 1056 | pm2->ac_chg.ops.kick_wd = &pm2xxx_charger_watchdog_kick; |
@@ -1093,7 +1095,7 @@ static int pm2xxx_wall_charger_probe(struct i2c_client *i2c_client, | |||
1093 | } | 1095 | } |
1094 | 1096 | ||
1095 | /* Register AC charger class */ | 1097 | /* Register AC charger class */ |
1096 | ret = power_supply_register(pm2->dev, &pm2->ac_chg.psy); | 1098 | ret = power_supply_register(pm2->dev, &pm2->ac_chg.psy, &psy_cfg); |
1097 | if (ret) { | 1099 | if (ret) { |
1098 | dev_err(pm2->dev, "failed to register AC charger\n"); | 1100 | dev_err(pm2->dev, "failed to register AC charger\n"); |
1099 | goto free_regulator; | 1101 | goto free_regulator; |