[GIT PULL] STM32 DT fixes for v5.10 #1
Alexandre Torgue
alexandre.torgue at st.com
Mon Nov 2 08:02:53 EST 2020
Hi guys
On 11/2/20 1:52 PM, Ahmad Fatoum wrote:
> Hello Marek,
>
> On 10/30/20 10:04 AM, Marek Vasut wrote:
>> On 10/28/20 6:38 PM, Ahmad Fatoum wrote:
>>> Hello Alex,
>>
>> Hi,
>>
>>> On 10/28/20 4:28 PM, Alexandre Torgue wrote:
>>>> Hi Arnd, Olof and Kevin,
>>>>
>>>> On v5.10-rc1 STM32 boards cannot boot. It is linked to a change in regulator framework which highlights that our supplies are not well described. This PR fixes it for STM32 boards that I have on my desk: ED1 and DKx.
>>>
>>> Which change triggered the regression?
>>
>> I think it might be:
>> aea6cb99703e ("regulator: resolve supply after creating regulator")
>> which landed in 5.4.73 as
>> 0120ec32a777 ("regulator: resolve supply after creating regulator")
>
> Thanks. I just replied (with a CC to the ML here) to another thread
> reporting issues to the author's patch.
Thanks Ahmad
>
>>
>>>> I assume that same patch has to be done for other STM32 boards, but as I don't have schematics I can't provide it. So a round2 has to be done for:
>>>> - stinger96
>>>> - MC-1
>>>> - Odyssey SOM
>>>> - DHCOR /DHCOM
>>>>
>>>> Mani, Marek, Ahmad, Marcin can you please have a look on it and provide patches (then I'll provide round2). Thanks in advance.
>>>
>>> Your change doesn't look right. If I set vref_ddr-supply to a fixed regulator,
>>> the MC-1 now boots again as well, but that seems to just mask the real issue:
>>>
>>> - vref_ddr is an _output_ of the PMIC, why should one have to specify a supply for it?
>>>
>>> - This is actually incompatible with the binding. vref_ddr-supply isn't specified
>>> as an allowed property (not to mention a required one)
>>>
>>> - Isn't the kernel supposed to stay compatible to old device trees?
>>>
>>> I think the stpmic driver is at fault here and that the regulator framework change just
>>> made that apparent.
>>
>> I agree updating the DT is not the right approach.
>>
>
I agree with you. Regulator framework change should not impose a change
in DT (except if it explicitly mentioned in binding documentation). As I
explained to Marek this morning, I had this patch in my backlog, and it
allows to boot STM32 DK/EV boards for rc cycle.
Now, let's have on "regulator: resolve supply after creating regulator".
-----
ret = set_machine_constraints(rdev, constraints);
if (ret == -EPROBE_DEFER) {
/* Regulator might be in bypass mode and so needs its supply
* to set the constraints */
/* FIXME: this currently triggers a chicken-and-egg problem
* when creating -SUPPLY symlink in sysfs to a regulator
* that is just being created */
ret = regulator_resolve_supply(rdev);
if (!ret)
ret = set_machine_constraints(rdev, constraints);
else
rdev_dbg(rdev, "unable to resolve supply early: %pe\n",
ERR_PTR(ret));
}
if (ret < 0)
goto wash;
-----
--> regulator_resolve_supply(rdev); is no longer called which seems to
be the starting point of our issue.
Note that the "FIXME" comment could a clue.
cheers
alex
More information about the linux-arm-kernel
mailing list