[PATCH v3] arm: dts: rockchip: rk3399: usb: ehci: Fix EHCI probe in rk3399 to access peripherals by USB 2.
Marek Vasut
marex at denx.de
Thu Dec 8 23:50:38 CET 2022
On 12/8/22 22:00, Xavier Drudis Ferran wrote:
> El Thu, Dec 08, 2022 at 09:12:08PM +0100, Marek Vasut deia:
>> On 12/8/22 17:53, Xavier Drudis Ferran wrote:
>>
>> [...]
>>
>>> +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
>>> @@ -7,7 +7,7 @@
>>> */
>>> #include <common.h>
>>> -#include <clk.h>
>>> +#include <clk-uclass.h>
>>> #include <dm.h>
>>> #include <asm/global_data.h>
>>> #include <dm/device_compat.h>
>>> @@ -168,6 +168,9 @@ static struct phy_ops rockchip_usb2phy_ops = {
>>> .of_xlate = rockchip_usb2phy_of_xlate,
>>> };
>>> +static struct clk_ops rockchip_usb2phy_clk_ops = {
>>> +};
>>
>> Is this empty structure needed ? Why ?
>>
>> Either it shouldn't be here, or it should implement some callbacks, like
>> clock enable/disable ?
>>
>
> I tried without it but it gave me a runtime error. I think I have the
> log somewhere if you want to see it. It looked like a null pointer
> dereference at first sight. I just added it and it got fixed. I
> didn't research what the failing functions were trying to do.
>
> Or is this a common case and there's some null_clk_ops() function or
> macro magic or something somewhere ?
It seems Linux kernel drivers/phy/rockchip/phy-rockchip-inno-usb2.c does
implement clock operations for this 480 MHz clock .
> The thing is nobody is using this clk in u-boot. It's just its phandle
> in a clock phandle list that ehci-generic.c happens to use in bulk. So
> the default implementation seems to be enough to allocate, enable and
> release it in bulk with its clk set. Or at least to call the functions
> without error.
>
> As I have left it, it might not work if ever someone wants to use it.
> But should I try to implement it so that it is usable ? How should I
> test it ? Shouldn't we wait until someone has some real use for it ?
> Linux spent sometime without it in the phandle list until William wu
> discovered it was needed for suspend/resume, so u-boot may never need
> it.
>
> Or should I add a comment in the code ?
I would say, model the clock tree the same way Linux does model it.
I know little about this hardware though.
More information about the U-Boot
mailing list