On Fri, 23 Jun 2017 11:00:55 +0200 Quentin Schulz <quentin.schulz@xxxxxxxxxxxxxxxxxx> wrote: > From: Nicolas Ferre <nicolas.ferre@xxxxxxxxx> > > This new clock driver set allows to have a fractional divided clock that > would generate a precise clock particularly suitable for audio > applications. > > The main audio pll clock has two children clocks: one that is connected > to the PMC, the other that can directly drive a pad. As these two routes > have different enable bits and different dividers and divider formula, > they are handled by two different drivers. Each of them could modify the > rate of the main audio pll parent. > The main audio pll clock can output 620MHz to 700MHz. > > Signed-off-by: Nicolas Ferre <nicolas.ferre@xxxxxxxxx> > Signed-off-by: Quentin Schulz <quentin.schulz@xxxxxxxxxxxxxxxxxx> > --- > .../devicetree/bindings/clock/at91-clock.txt | 10 + As already mentioned by Alex, DT bindings should go in a separate patch > arch/arm/mach-at91/Kconfig | 4 + > drivers/clk/at91/Makefile | 2 + > drivers/clk/at91/clk-audio-pll-pad.c | 204 ++++++++++++++++++ > drivers/clk/at91/clk-audio-pll-pmc.c | 175 +++++++++++++++ > drivers/clk/at91/clk-audio-pll.c | 237 +++++++++++++++++++++ > include/linux/clk/at91_pmc.h | 25 +++ > sound/soc/atmel/atmel-classd.c | 20 +- Same goes for the atmel-classd changes. > 8 files changed, 658 insertions(+), 19 deletions(-) > create mode 100644 drivers/clk/at91/clk-audio-pll-pad.c > create mode 100644 drivers/clk/at91/clk-audio-pll-pmc.c > create mode 100644 drivers/clk/at91/clk-audio-pll.c > [...] > diff --git a/drivers/clk/at91/clk-audio-pll-pmc.c b/drivers/clk/at91/clk-audio-pll-pmc.c > new file mode 100644 > index 000000000000..208d0b59eb4e > --- /dev/null > +++ b/drivers/clk/at91/clk-audio-pll-pmc.c > @@ -0,0 +1,175 @@ > +/* > + * Copyright (C) 2016 Atmel Corporation, > + * Nicolas Ferre <nicolas.ferre@xxxxxxxxx> > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + * > + */ > +#include <linux/clk.h> > +#include <linux/clk-provider.h> > +#include <linux/clkdev.h> > +#include <linux/clk/at91_pmc.h> > +#include <linux/of.h> > +#include <linux/mfd/syscon.h> > +#include <linux/regmap.h> > + > +#include "pmc.h" > + > +/* > + * DOC: PMC output for fractional PLL clock for audio > + * > + * Traits of this clock: > + * enable - clk_enable writes qdpmc, and enables PMC output > + * rate - rate is adjustable. > + * clk->rate = parent->rate / (qdpmc + 1) > + * parent - fixed parent. No clk_set_parent support > + */ > + > +#define AUDIO_PLL_FOUT_MIN 620000000 > +#define AUDIO_PLL_FOUT_MAX 700000000 > +#define AUDIO_PLL_REFERENCE_FOUT 660000000 These 3 macros are not unused, you can drop them. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html