Re: [PATCH net-next v1 2/2] net: dsa: realtek: rtl83xx: add support for enabling supplies

Ahmad Fatoum <[email protected]>
Newsgroups gmane.linux.drivers.devicetree,gmane.linux.kernel,gmane.linux.network
Message-ID <[email protected]>
Hello Andrew,

[Cc += regulator maintainers]

On 8/6/26 17:35, Andrew Lunn wrote:
> On Thu, Aug 06, 2026 at 05:10:23PM +0200, Oleksij Rempel wrote:
>> On Thu, Aug 06, 2026 at 04:12:44PM +0200, Andrew Lunn wrote:
>>>> +static const char *const rtl8365mb_supplies[] = {
>>>> +	"avddh", "avddl", "dvddio", "dvddio1", "dvddl", "pllvddl", NULL,
>>>> +};
>>>> +
>>>
>>>> +static int rtl83xx_enable_supplies(struct device *dev,
>>>> +				   const char *const *supplies)
>>>> +{
>>>> +	int i, ret, count = 0;
>>>> +
>>>> +	for (i = 0; supplies && supplies[i]; i++) {
>>>> +		ret = devm_regulator_get_enable_optional(dev, supplies[i]);
>>>> +		if (ret == -ENODEV)
>>>> +			continue;
>>>> +		if (ret)
>>>> +			return dev_err_probe(dev, ret, "failed to enable %s supply\n",
>>>> +					     supplies[i]);
>>>> +		count++;
>>>> +	}
>>>> +
>>>
>>> I've never used it, i've no idea if it is applicable, but there does
>>> appear to be _bulk_ calls in the regulator API, maybe which is similar
>>> to the clk _bulk_ API?
>>
>> Ack, in the first iteration of this patch we was using
>> devm_regulator_bulk_get_enable(). But it would print warnings on
>> existing boards without regulators in devicetree. Currently there are no
>> bulk helpers with _optional regulators, so I reworked it to hand made
>> optional bulk support.
> 
> static inline int __must_check clk_bulk_get_optional(struct device *dev,
> static inline int __must_check devm_clk_bulk_get_optional(struct device *dev,
> static inline int __must_check devm_clk_bulk_get_optional_enable(struct device *dev,
> 
> If clk has them, maybe regulators should as well?

clk and regulator have different interpretations of _optional
when encountering a non-existent resource:

clk_get                 return error
clk_get_optional        return NULL
regulator_get           return handle dummy regulator
regulator_get_optional  return error code

So devm_regulator_bulk_get() is already the "optional" variant, but it causes
all existing users to get dummy supply warnings.

I don't know if there's a strong case for a devm_regulator_bulk_get_nowarn(),
maybe Mark or Liam have an opinion on that.

Cheers,
Ahmad

> 
>    Andrew
> 


-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.