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/gpio-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/gpio-charger.c')
-rw-r--r-- | drivers/power/gpio-charger.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/power/gpio-charger.c b/drivers/power/gpio-charger.c index b7424c8501f1..47a9e2bd94d9 100644 --- a/drivers/power/gpio-charger.c +++ b/drivers/power/gpio-charger.c | |||
@@ -127,6 +127,7 @@ struct gpio_charger_platform_data *gpio_charger_parse_dt(struct device *dev) | |||
127 | static int gpio_charger_probe(struct platform_device *pdev) | 127 | static int gpio_charger_probe(struct platform_device *pdev) |
128 | { | 128 | { |
129 | const struct gpio_charger_platform_data *pdata = pdev->dev.platform_data; | 129 | const struct gpio_charger_platform_data *pdata = pdev->dev.platform_data; |
130 | struct power_supply_config psy_cfg = {}; | ||
130 | struct gpio_charger *gpio_charger; | 131 | struct gpio_charger *gpio_charger; |
131 | struct power_supply *charger; | 132 | struct power_supply *charger; |
132 | int ret; | 133 | int ret; |
@@ -161,9 +162,10 @@ static int gpio_charger_probe(struct platform_device *pdev) | |||
161 | charger->properties = gpio_charger_properties; | 162 | charger->properties = gpio_charger_properties; |
162 | charger->num_properties = ARRAY_SIZE(gpio_charger_properties); | 163 | charger->num_properties = ARRAY_SIZE(gpio_charger_properties); |
163 | charger->get_property = gpio_charger_get_property; | 164 | charger->get_property = gpio_charger_get_property; |
164 | charger->supplied_to = pdata->supplied_to; | 165 | |
165 | charger->num_supplicants = pdata->num_supplicants; | 166 | psy_cfg.supplied_to = pdata->supplied_to; |
166 | charger->of_node = pdev->dev.of_node; | 167 | psy_cfg.num_supplicants = pdata->num_supplicants; |
168 | psy_cfg.of_node = pdev->dev.of_node; | ||
167 | 169 | ||
168 | ret = gpio_request(pdata->gpio, dev_name(&pdev->dev)); | 170 | ret = gpio_request(pdata->gpio, dev_name(&pdev->dev)); |
169 | if (ret) { | 171 | if (ret) { |
@@ -178,7 +180,7 @@ static int gpio_charger_probe(struct platform_device *pdev) | |||
178 | 180 | ||
179 | gpio_charger->pdata = pdata; | 181 | gpio_charger->pdata = pdata; |
180 | 182 | ||
181 | ret = power_supply_register(&pdev->dev, charger); | 183 | ret = power_supply_register(&pdev->dev, charger, &psy_cfg); |
182 | if (ret < 0) { | 184 | if (ret < 0) { |
183 | dev_err(&pdev->dev, "Failed to register power supply: %d\n", | 185 | dev_err(&pdev->dev, "Failed to register power supply: %d\n", |
184 | ret); | 186 | ret); |