clk: Add driver for MAX9485
authorDaniel Mack <daniel@zonque.org>
Fri, 6 Jul 2018 18:53:03 +0000 (20:53 +0200)
committerStephen Boyd <sboyd@kernel.org>
Fri, 6 Jul 2018 20:44:06 +0000 (13:44 -0700)
commit33f5104624b96c6514621e63909b5703276b4dac
treeab0630c77ff9d5c7575fd5a949ac2cae1cd2e2e5
parent18df02fb79cb20ba4de1e02e1df41ba83f8b9bec
clk: Add driver for MAX9485

This patch adds a driver for MAX9485, a programmable audio clock generator.

The device requires a 27.000 MHz clock input. It can provide a gated
buffered output of its input clock and two gated outputs of a PLL that can
generate one out of 16 discrete frequencies. There is only one PLL however,
so the two gated outputs will always have the same frequency but they can
be switched individually.

The driver for this device exposes 4 clocks in total:

- MAX9485_MCLKOUT:      A gated, buffered output of the input clock
- MAX9485_CLKOUT:       A PLL that can be configured to 16 different
discrete frequencies
- MAX9485_CLKOUT[1,2]:  Two gated outputs for MAX9485_CLKOUT

Some PLL output frequencies can be achieved with different register
settings. The driver will select the one with lowest jitter in such cases.

Signed-off-by: Daniel Mack <daniel@zonque.org>
[sboyd@kernel.org: Use local variable for val in max9485_clkout_recalc_rate()
and shorten line of max9485_of_clk_get()]
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/Kconfig
drivers/clk/Makefile
drivers/clk/clk-max9485.c [new file with mode: 0644]