Re: [PATCH v2 5/5] power: supply: core: rename power_supply_get_by_phandle to power_supply_get_by_reference

From: Hans de Goede
Date: Sun Jun 08 2025 - 16:26:07 EST


Hi,


On 30-Apr-25 12:54 AM, Sebastian Reichel wrote:
> (devm_)power_supply_get_by_phandle now internally uses fwnode and are no
> longer DT specific. Thus drop the ifdef check for CONFIG_OF and rename
> to (devm_)power_supply_get_by_reference to avoid the DT terminology.
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>

Thanks, patch looks good to me:

Reviewed-by: Hans de Goede <hansg@xxxxxxxxxx>

Regards,

Hans


> ---
> drivers/phy/allwinner/phy-sun4i-usb.c | 2 +-
> drivers/power/supply/bq2415x_charger.c | 2 +-
> drivers/power/supply/power_supply_core.c | 22 ++++++++++------------
> include/linux/power_supply.h | 15 +++------------
> 4 files changed, 15 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c
> index 29b8fd4b935113f3e4790ee7f78141226048492d..8873aed3a52aa3f26564b6b2e576110c4069d28c 100644
> --- a/drivers/phy/allwinner/phy-sun4i-usb.c
> +++ b/drivers/phy/allwinner/phy-sun4i-usb.c
> @@ -754,7 +754,7 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
> }
>
> if (of_property_present(np, "usb0_vbus_power-supply")) {
> - data->vbus_power_supply = devm_power_supply_get_by_phandle(dev,
> + data->vbus_power_supply = devm_power_supply_get_by_reference(dev,
> "usb0_vbus_power-supply");
> if (IS_ERR(data->vbus_power_supply)) {
> dev_err(dev, "Couldn't get the VBUS power supply\n");
> diff --git a/drivers/power/supply/bq2415x_charger.c b/drivers/power/supply/bq2415x_charger.c
> index 1ecbca510bba99ee7abcda33a719035adfceeb5f..917c26ee56bc9f9da2f95f75a7d7f1afb0cea8d8 100644
> --- a/drivers/power/supply/bq2415x_charger.c
> +++ b/drivers/power/supply/bq2415x_charger.c
> @@ -1674,7 +1674,7 @@ static int bq2415x_probe(struct i2c_client *client)
> /* Query for initial reported_mode and set it */
> if (bq->nb.notifier_call) {
> if (np) {
> - notify_psy = power_supply_get_by_phandle(of_fwnode_handle(np),
> + notify_psy = power_supply_get_by_reference(of_fwnode_handle(np),
> "ti,usb-charger-detection");
> if (IS_ERR(notify_psy))
> notify_psy = NULL;
> diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c
> index 1d53ceaa8fd161e7e72b90befabb9380393c99f2..37b9fa48faab27754d14d8379ed40d9bdda098ef 100644
> --- a/drivers/power/supply/power_supply_core.c
> +++ b/drivers/power/supply/power_supply_core.c
> @@ -496,14 +496,13 @@ void power_supply_put(struct power_supply *psy)
> }
> EXPORT_SYMBOL_GPL(power_supply_put);
>
> -#ifdef CONFIG_OF
> static int power_supply_match_device_fwnode(struct device *dev, const void *data)
> {
> return dev->parent && dev_fwnode(dev->parent) == data;
> }
>
> /**
> - * power_supply_get_by_phandle() - Search for a power supply and returns its ref
> + * power_supply_get_by_reference() - Search for a power supply and returns its ref
> * @fwnode: Pointer to fwnode holding phandle property
> * @property: Name of property holding a power supply name
> *
> @@ -514,8 +513,8 @@ static int power_supply_match_device_fwnode(struct device *dev, const void *data
> * Return: On success returns a reference to a power supply with
> * matching name equals to value under @property, NULL or ERR_PTR otherwise.
> */
> -struct power_supply *power_supply_get_by_phandle(struct fwnode_handle *fwnode,
> - const char *property)
> +struct power_supply *power_supply_get_by_reference(struct fwnode_handle *fwnode,
> + const char *property)
> {
> struct fwnode_handle *power_supply_fwnode;
> struct power_supply *psy = NULL;
> @@ -537,7 +536,7 @@ struct power_supply *power_supply_get_by_phandle(struct fwnode_handle *fwnode,
>
> return psy;
> }
> -EXPORT_SYMBOL_GPL(power_supply_get_by_phandle);
> +EXPORT_SYMBOL_GPL(power_supply_get_by_reference);
>
> static void devm_power_supply_put(struct device *dev, void *res)
> {
> @@ -547,16 +546,16 @@ static void devm_power_supply_put(struct device *dev, void *res)
> }
>
> /**
> - * devm_power_supply_get_by_phandle() - Resource managed version of
> - * power_supply_get_by_phandle()
> + * devm_power_supply_get_by_reference() - Resource managed version of
> + * power_supply_get_by_reference()
> * @dev: Pointer to device holding phandle property
> * @property: Name of property holding a power supply phandle
> *
> * Return: On success returns a reference to a power supply with
> * matching name equals to value under @property, NULL or ERR_PTR otherwise.
> */
> -struct power_supply *devm_power_supply_get_by_phandle(struct device *dev,
> - const char *property)
> +struct power_supply *devm_power_supply_get_by_reference(struct device *dev,
> + const char *property)
> {
> struct power_supply **ptr, *psy;
>
> @@ -567,7 +566,7 @@ struct power_supply *devm_power_supply_get_by_phandle(struct device *dev,
> if (!ptr)
> return ERR_PTR(-ENOMEM);
>
> - psy = power_supply_get_by_phandle(dev_fwnode(dev), property);
> + psy = power_supply_get_by_reference(dev_fwnode(dev), property);
> if (IS_ERR_OR_NULL(psy)) {
> devres_free(ptr);
> } else {
> @@ -576,8 +575,7 @@ struct power_supply *devm_power_supply_get_by_phandle(struct device *dev,
> }
> return psy;
> }
> -EXPORT_SYMBOL_GPL(devm_power_supply_get_by_phandle);
> -#endif /* CONFIG_OF */
> +EXPORT_SYMBOL_GPL(devm_power_supply_get_by_reference);
>
> int power_supply_get_battery_info(struct power_supply *psy,
> struct power_supply_battery_info **info_out)
> diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h
> index c95f098374cbdeafe8cddb52da3903f4f0e0f0fc..158227e86cfcb91b0fae7b1f9c944c5c395969ca 100644
> --- a/include/linux/power_supply.h
> +++ b/include/linux/power_supply.h
> @@ -804,19 +804,10 @@ static inline void power_supply_put(struct power_supply *psy) {}
> static inline struct power_supply *power_supply_get_by_name(const char *name)
> { return NULL; }
> #endif
> -#ifdef CONFIG_OF
> -extern struct power_supply *power_supply_get_by_phandle(struct fwnode_handle *fwnode,
> - const char *property);
> -extern struct power_supply *devm_power_supply_get_by_phandle(
> +extern struct power_supply *power_supply_get_by_reference(struct fwnode_handle *fwnode,
> + const char *property);
> +extern struct power_supply *devm_power_supply_get_by_reference(
> struct device *dev, const char *property);
> -#else /* !CONFIG_OF */
> -static inline struct power_supply *
> -power_supply_get_by_phandle(struct device_node *np, const char *property)
> -{ return NULL; }
> -static inline struct power_supply *
> -devm_power_supply_get_by_phandle(struct device *dev, const char *property)
> -{ return NULL; }
> -#endif /* CONFIG_OF */
>
> extern const enum power_supply_property power_supply_battery_info_properties[];
> extern const size_t power_supply_battery_info_properties_size;
>