[v5] clk: add si5351 i2c common clock driver
Sebastian Hesselbarth
sebastian.hesselbarth at gmail.com
Sun Apr 7 19:49:24 EDT 2013
On 04/08/2013 12:50 AM, Guenter Roeck wrote:
> On Fri, Apr 05, 2013 at 05:23:35AM -0000, Sebastian Hesselbarth wrote:
>> This patch adds a common clock driver for Silicon Labs Si5351a/b/c
>> i2c programmable clock generators. Currently, the driver supports
>> DT kernels only and VXCO feature of si5351b is not implemented. DT
>> bindings selectively allow to overwrite stored Si5351 configuration
>> which is very helpful for clock generators with empty eeprom
>> configuration. Corresponding device tree binding documentation is
>> also added.
>>
>> Signed-off-by: Sebastian Hesselbarth<sebastian.hesselbarth at gmail.com>
>> Tested-by: Daniel Mack<zonque at gmail.com>
>>
> [ ... ]
>
>> +static inline void _si5351_msynth_set_pll_master(
>> + struct si5351_driver_data *drvdata, unsigned char num, int is_master)
>> +{
>> + unsigned long flags;
>> +
>> + if (num> 8 ||
>> + (drvdata->variant == SI5351_VARIANT_A3&& num> 3))
>> + return;
>> +
>> + flags = __clk_get_flags(drvdata->msynth[num].hw.clk);
>> + if (is_master)
>> + flags |= CLK_SET_RATE_PARENT;
>> + else
>> + flags&= ~CLK_SET_RATE_PARENT;
>> + __clk_set_flags(drvdata->msynth[num].hw.clk, flags);
>> +}
>> +
> Unless I am missing something, neither __clk_get_flags() nor the new
> __clk_set_flags is exported.
>
> Did you try to build and load the driver as module ?
Well, good catch. I didn't try to build v5 as a module, but I guess it
will fail. But I consider this as something that has to be addressed in
clk framework itself, not in this patch. There will be other
clk-providers built as module in the future for sure.
Sebastian
More information about the linux-arm-kernel
mailing list