aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/power/gpio-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/gpio-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/gpio-charger.c')
-rw-r--r--drivers/power/gpio-charger.c10
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)
127static int gpio_charger_probe(struct platform_device *pdev) 127static 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);