Re: [PATCH net-next v1 2/2] net: dsa: realtek: rtl83xx: add support for enabling supplies
From: Ahmad Fatoum
Date: Thu Aug 06 2026 - 12:07:34 EST
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 |