[U-Boot] [PATCH] rockchip: clk: rk3288: add clk_enable function and support USB HOST0/HSIC
Wadim Egorov
w.egorov at phytec.de
Wed Mar 21 09:23:51 UTC 2018
Kever,
Am 20.03.2018 um 15:46 schrieb Kever Yang:
> Hi Wadim,
>
>
> On 03/19/2018 11:39 PM, Wadim Egorov wrote:
>> The generic ehci-driver (ehci-generic.c) will try to enable the clocks
>> listed in the DTSI. If this fails (e.g. due to clk_enable not being
>> implemented in a driver and -ENOSYS being returned by the clk-uclass),
>> the driver will bail our and print an error message.
> Does ehci driver update this feature recently? I think the driver works
> for me before without clk_enable().
are you sure it worked for you on a rk3288 and not rk3399?
There is a similar patch for 3399,
commit 2f01a2b2149c rockchip: clk: rk3399: add clk_enable function and
support USB HOST0/1
Regards,
Wadim
>
> BTW, I don't think we add this kind of no use call back in clock driver
> is an good idea.
>
> Thanks,
> - Kever
>> This implements a minimal clk_enable for the RK3288 and supports the
>> clocks mandatory for the EHCI controllers; as these are enabled by
>> default we simply return success.
>>
>> Signed-off-by: Wadim Egorov <w.egorov at phytec.de>
>> ---
>> drivers/clk/rockchip/clk_rk3288.c | 13 +++++++++++++
>> 1 file changed, 13 insertions(+)
>>
>> diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c
>> index 552a71a..a028b8b 100644
>> --- a/drivers/clk/rockchip/clk_rk3288.c
>> +++ b/drivers/clk/rockchip/clk_rk3288.c
>> @@ -893,12 +893,25 @@ static int __maybe_unused rk3288_clk_set_parent(struct clk *clk, struct clk *par
>> return -ENOENT;
>> }
>>
>> +static int rk3288_clk_enable(struct clk *clk)
>> +{
>> + switch (clk->id) {
>> + case HCLK_USBHOST0:
>> + case HCLK_HSIC:
>> + return 0;
>> + }
>> +
>> + debug("%s: unsupported clk %ld\n", __func__, clk->id);
>> + return -ENOENT;
>> +}
>> +
>> static struct clk_ops rk3288_clk_ops = {
>> .get_rate = rk3288_clk_get_rate,
>> .set_rate = rk3288_clk_set_rate,
>> #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
>> .set_parent = rk3288_clk_set_parent,
>> #endif
>> + .enable = rk3288_clk_enable,
>> };
>>
>> static int rk3288_clk_ofdata_to_platdata(struct udevice *dev)
>
More information about the U-Boot
mailing list