Commit ece711b5 authored by Adam Thomson's avatar Adam Thomson Committed by Greg Kroah-Hartman

power: supply: Add fwnode pointer to power_supply_config struct

To allow users of the power supply framework to be hw description
agnostic, this commit adds the ability to pass a fwnode pointer,
via the power_supply_config structure, to the initialisation code
of the core, instead of explicitly specifying of_ndoe. If that
fwnode pointer is provided then it will automatically resolve down
to of_node on platforms which support it, otherwise it will be NULL.

In the future, when ACPI support is added, this can be modified to
accommodate ACPI without the need to change calling code which
already provides the fwnode handle in this manner.
Signed-off-by: default avatarAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
Suggested-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 681e9485
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/err.h> #include <linux/err.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/power_supply.h> #include <linux/power_supply.h>
#include <linux/property.h>
#include <linux/thermal.h> #include <linux/thermal.h>
#include "power_supply.h" #include "power_supply.h"
...@@ -874,7 +875,8 @@ __power_supply_register(struct device *parent, ...@@ -874,7 +875,8 @@ __power_supply_register(struct device *parent,
psy->desc = desc; psy->desc = desc;
if (cfg) { if (cfg) {
psy->drv_data = cfg->drv_data; psy->drv_data = cfg->drv_data;
psy->of_node = cfg->of_node; psy->of_node =
cfg->fwnode ? to_of_node(cfg->fwnode) : cfg->of_node;
psy->supplied_to = cfg->supplied_to; psy->supplied_to = cfg->supplied_to;
psy->num_supplicants = cfg->num_supplicants; psy->num_supplicants = cfg->num_supplicants;
} }
......
...@@ -199,6 +199,8 @@ struct power_supply; ...@@ -199,6 +199,8 @@ struct power_supply;
/* Run-time specific power supply configuration */ /* Run-time specific power supply configuration */
struct power_supply_config { struct power_supply_config {
struct device_node *of_node; struct device_node *of_node;
struct fwnode_handle *fwnode;
/* Driver private data */ /* Driver private data */
void *drv_data; void *drv_data;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment