On 12/09/2017 04:23 PM, Eugeniy Paltsev wrote:
> On Wed, 2017-11-15 at 10:24 +0100, Marek Vasut wrote:
>> On 11/14/2017 04:33 PM, Eugeniy Paltsev wrote:
>>> Add option to set spi controller clock frequency via device tree
>>> using standard clock bindings.
>>>
>>> Define dw_spi_get_clk function as 'weak' as some targets
>>> (like SOCFPGA_GEN5 and SOCFPGA_ARRIA10) don't use standard clock API
>>> and implement dw_spi_get_clk their own way in their clock manager.
>>>
>>> Get rid of clock_manager.h include as we don't use
>>> cm_get_spi_controller_clk_hz function anymore. (we use redefined
>>> dw_spi_get_clk in SOCFPGA clock managers instead)
>>>
>>> Signed-off-by: Eugeniy Paltsev <eugeniy.palt...@synopsys.com>
>>> ---
>>>  drivers/spi/designware_spi.c | 42 
>>> ++++++++++++++++++++++++++++++++++++++++--
>>>  1 file changed, 40 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/spi/designware_spi.c b/drivers/spi/designware_spi.c
>>> index 6cc4f51..470a3a7 100644
>>> --- a/drivers/spi/designware_spi.c
>>> +++ b/drivers/spi/designware_spi.c
>>> @@ -12,6 +12,7 @@
>>>  
>>> +/*
>>> + * We define dw_spi_get_clk function as 'weak' as some targets
>>> + * (like SOCFPGA_GEN5 and SOCFPGA_ARRIA10) fon't use standard clock API
>>> + * and implement dw_spi_get_clk their own way in their clock manager.
>>> + */
>>> +__weak int dw_spi_get_clk(struct udevice *bus, ulong *rate)
>>> +{
>>> +   struct clk clk;
>>> +   int ret;
>>> +
>>> +   ret = clk_get_by_index(bus, 0, &clk);
>>> +   if (ret)
>>> +           return -EINVAL;
>>> +
>>> +   ret = clk_enable(&clk);
>>> +   if (ret && ret != -ENOSYS)
>>> +           return ret;
>>> +
>>> +   *rate = clk_get_rate(&clk);
>>> +   if (!*rate) {
>>> +           clk_disable(&clk);
>>> +           return -EINVAL;
>>> +   }
>>> +
>>> +   debug("%s: get spi controller clk via device tree: %lu Hz\n",
>>> +         __func__, *rate);
>>> +
>>> +   clk_free(&clk);
>>
>> You probably want to retain the handle to these clock in the private
>> data, since otherwise you won't be able to turn the clock off in
>> .remove() callback of the driver (if/once it's implemented)
> 
> No, .remove() callback isn't implemented in this driver, so it isn't 
> necessary.

Either implement it, or if you're lazy, put the clock handle into the
private data, since that's a good practice.

>> Otherwise the patch look good, thanks !
>>
>>


-- 
Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to