[PATCH 1/3] phy: stm32-usbphyc: add counter of PLL consumer
Sean Anderson
seanga2 at gmail.com
Sat Jun 11 17:43:47 CEST 2022
On 5/17/22 3:42 AM, Patrick DELAUNAY wrote:
> Hi Sean,
>
> On 5/11/22 18:48, Sean Anderson wrote:
>> On 5/10/22 5:51 AM, Amelie Delaunay wrote:
>>> Hi Patrick,
>>> Hi Sean,
>>>
>>> On 5/9/22 16:37, Patrick DELAUNAY wrote:
>>>> Hi Sean,
>>>>
>>>> On 5/8/22 20:21, Sean Anderson wrote:
>>>>> On 4/26/22 8:37 AM, Patrick Delaunay wrote:
>>>>>> Add the counter of the PLL user n_pll_cons managed by the 2 functions
>>>>>> stm32_usbphyc_pll_enable / stm32_usbphyc_pll_disable.
>>>>>>
>>>>>> This counter allow to remove the function stm32_usbphyc_is_init
>>>>>> and it is a preliminary step for ck_usbo_48m introduction.
>>>>>
>>>>> Is it necessary to disable this clock before booting to Linux? If it isn't,
>>>>> then perhaps it is simpler to just not disable the clock.
>>>>>
>>>>> --Sean
>>>>
>>>>
>>>> No, it is not necessary, we only need to enable the clock for the first user.
>>>>
>>>> I copy the clock behavior from kernel,
>>>>
>>>> but I agree that can be simpler.
>>>>
>>>>
>>>> Amelie any notice about this point ?
>>>>
>>>> Do you prefer that I kept the behavior - same as kernel driver - or I simplify the U-Boot driver ?
>>>
>>> In case the PLL has not been disabled before Kernel boot, usbphyc Kernel driver will wait for the PLL pwerdown.
>>> USB could also not being used in Kernel, so PLL would remain enabled, and would waste power.
>>> I am rather in favor of disabling the PLL.
>>
>> It should be disabled if clk_ignore_unused is not in the kernel parameters,
>> as long as Linux is also aware of the clock.
>>
>> Generally, I would like to avoid refcounting if possible. Many U-Boot
>> drivers do not disable their clocks (because they don't do any cleanup),
>> so you can end up with the clock staying on anyway.
>>
>> --Sean
>>
>>> Regards,
>>> Amelie
>>>
>>>>
>>>>
>>>> Patrick
>>>>
>>>>
>>>>>
>
> In general, I'm also in favor of not disabling the clock in U-Boot.
>
> But this PLL with vdda1v1 and vdda1v8 dependency is requested for
>
> - USBPHYC himself or
>
> - source clock of RCC,
>
>
> And we have have see many issue for this PLL initialization sequence / dependencies.
>
>
> So for clock support, I only reused the existing/working function called by the PHY ops init & exit =
>
> stm32_usbphyc_phy_init & stm32_usbphyc_phy_exit
>
> => the PLL and the associated VDD are already deactivated on USBPHYC exit.
>
>
> And to be coherent I for the same for the clock to avoid conflict between these 2 users
>
> (USBPHYC or RCC) as it is done also in Linux kernel.
>
>
> Avoid to deactivate PLL on clock disable is a major objection or just a advice?
Just advice. If all of the clock's users call disable, then it is fine.
--Sean
More information about the U-Boot
mailing list