[U-Boot] [PATCH v4 04/11] clk: add clk_count()

Patrice CHOTARD patrice.chotard at st.com
Thu Jun 1 07:56:54 UTC 2017


Hi Simon

On 06/01/2017 05:10 AM, Simon Glass wrote:
> Hi Patrice,
> 
> On 24 May 2017 at 07:01,  <patrice.chotard at st.com> wrote:
>> From: Patrice Chotard <patrice.chotard at st.com>
>>
>> Add clk_count() method to be able to get the number
>> of clocks contained into a clock property. This will allow
>> to allocate the right amount of memory in order to keep clock
>> reference. These clock reference can be used later on error path
>> or in .remove callback to release these clocks.
>>
>> Signed-off-by: Patrice Chotard <patrice.chotard at st.com>
>> ---
>>
>> v4:     _ add clk_count() method
>>
>>   drivers/clk/clk-uclass.c | 12 ++++++++++++
>>   include/clk.h            | 12 ++++++++++++
>>   2 files changed, 24 insertions(+)
>>
>> diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
>> index 6fcfd69..5c4dd19 100644
>> --- a/drivers/clk/clk-uclass.c
>> +++ b/drivers/clk/clk-uclass.c
>> @@ -96,8 +96,20 @@ int clk_get_by_index(struct udevice *dev, int index, struct clk *clk)
>>
>>          return clk_request(dev_clk, clk);
>>   }
>> +
>>   # endif /* OF_PLATDATA */
>>
>> +int clk_count(struct udevice *dev)
>> +{
>> +       int count;
>> +       struct clk clk;
>> +
>> +       for (count = 0; ; count++) {
>> +               if (clk_get_by_index(dev, count, &clk))
>> +                       return count;
>> +       }
>> +}
>> +
>>   int clk_get_by_name(struct udevice *dev, const char *name, struct clk *clk)
>>   {
>>          int index;
>> diff --git a/include/clk.h b/include/clk.h
>> index 5a5c2ff..801920c 100644
>> --- a/include/clk.h
>> +++ b/include/clk.h
>> @@ -98,6 +98,18 @@ int clk_get_by_index(struct udevice *dev, int index, struct clk *clk);
>>    * @return 0 if OK, or a negative error code.
>>    */
>>   int clk_get_by_name(struct udevice *dev, const char *name, struct clk *clk);
>> +
>> +/**
>> + * clk_count - Get clock count contained in the "clocks" property.
>> + *
>> + * This returns the count of clock found into the "clocks" property. This
>> + * allows to allocate the right amount of memory to keep clock reference.
> 
> Can you document here that it 'gets' each clock and the clocks should
> be freed? Or do you prefer to free the clocks within the function.

It don't 'gets' each clock, it just returns the number of "clocks" 
declared into the clocks property

Patrice

> 
>> + *
>> + * @dev:       The client device.
>> + * @return number of clocks found.
>> + */
>> +int clk_count(struct udevice *dev);
>> +
>>   #else
>>   static inline int clk_get_by_index(struct udevice *dev, int index,
>>                                     struct clk *clk)
>> --
>> 1.9.1
>>
> 
> Regards,
> Simon
> 


More information about the U-Boot mailing list