[v5] clk: add si5351 i2c common clock driver

Guenter Roeck linux at roeck-us.net
Mon Apr 8 08:50:46 EST 2013


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 ?

Thanks,
Guenter


More information about the devicetree-discuss mailing list