[U-Boot] [RESEND PATCH 3/5] clk: add function to get peripheral ID
Masahiro Yamada
yamada.masahiro at socionext.com
Mon Dec 28 18:05:09 CET 2015
Hi Simon,
2015-12-28 23:20 GMT+09:00 Simon Glass <sjg at chromium.org>:
>> index 371784a..1efbaf2 100644
>> --- a/include/clk.h
>> +++ b/include/clk.h
>> @@ -49,6 +49,16 @@ struct clk_ops {
>> * @return new clock rate in Hz, or -ve error code
>> */
>> ulong (*set_periph_rate)(struct udevice *dev, int periph, ulong rate);
>> +
>> + /**
>> + * get_id() - Get peripheral ID
>> + *
>> + * @dev: clock provider
>> + * @args_count: number of arguments
>> + * @args: arguments. The meaning is driver specific.
>> + * @return peripheral ID, or -ve error code
>> + */
>> + int (*get_id)(struct udevice *dev, int args_count, uint32_t *args);
>
> What are the arguments for? Who will use them? I wonder if the simple
> case you have is the only useful case for now?
>
> I think it would be better for the device tree parsing to happen
> within the uclass rather than requiring the caller to understand how
> it works. Here, we must obtain the arguments after the phandle and
> pass them to this function.
My intention was to make the interface as generic as possible.
It is true that most of drivers have '#clock-cells = <1>',
but I found some have '#clock-cells = <2>'.
Under linux/Documentation:
devicetree/bindings/clock/qoriq-clock.txt:When the clockgen node is a
clock provider, #clock-cells = <2>.
devicetree/bindings/clock/qoriq-clock.txt: #clock-cells = <2>;
devicetree/bindings/clock/renesas,cpg-mssr.txt: #clock-cells = <2>;
devicetree/bindings/clock/st,stm32-rcc.txt: #clock-cells = <2>
devicetree/bindings/clock/ux500.txt: #clock-cells = <2>;
devicetree/bindings/clock/ux500.txt: #clock-cells = <2>;
So, my idea was to cover the simple case with clk_get_id_simple(),
but still allow such rare-case drivers to have their own .get_id() callback.
However, U-Boot might never be hit by such a case, and your simple one
meets our demand well enough.
--
Best Regards
Masahiro Yamada
More information about the U-Boot
mailing list