linux/drivers/clk
Tony Lindgren 163152cbbe clk: ti: Add support for FAPLL on dm816x
On dm816x the clocks are sourced from a FAPLL (Flying Adder PLL)
that does not seem to be used on the other omap variants.

There are four instances of the FAPLL on dm816x that each have three
to seven child synthesizers.

I've set up the FAPLL as a single fapll.c driver. Later on we could
potentially have the PLL code generic. To do that, we would have to
consider the following:

1. Setting the PLL to bypass mode also sets the child synthesizers
   into bypass mode. As the bypass rate can also be generated by
   the PLL in regular mode, there's no way for the child synthesizers
   to detect the bypass mode based on the parent clock rate.

2. The PLL registers control the power for each of the child
   syntheriser.

Note that the clocks are currently still missing the set_rate
implementation so things are still running based on the bootloader
values. That's OK for now as most of the outputs have dividers and
those can be set using the existing TI component clock code.

I have verified that the extclk rates are correct for a few clocks,
so adding the set_rate support should be fairly trivial later on.

This code is partially based on the TI81XX-LINUX-PSP-04.04.00.02
patches published at:

http://downloads.ti.com/dsps/dsps_public_sw/psp/LinuxPSP/TI81XX_04_04/04_04_00_02/index_FDS.html

Cc: Brian Hutchinson <b.hutchman@gmail.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Michael Turquette <mturquette@linaro.org>
2015-01-20 10:09:07 -08:00
..
at91 clk: at91: keep slow clk enabled to prevent system hang 2015-01-13 10:54:01 -08:00
bcm clk: Change clk_ops->determine_rate to return a clk_hw as the best parent 2014-12-03 16:21:37 -08:00
berlin clk: berlin: bg2q: remove non-exist "smemc" gate clock 2015-01-13 10:58:43 -08:00
hisilicon clk: Change clk_ops->determine_rate to return a clk_hw as the best parent 2014-12-03 16:21:37 -08:00
keystone clk: keystone: gate: fix clk_init_data initialization 2014-02-10 15:17:43 -05:00
mmp clk: mmp: fix sparse non static symbol warning 2014-12-11 12:14:09 -08:00
mvebu clk: mvebu: add suspend/resume for gatable clocks 2014-11-30 16:40:12 +00:00
mxs
pxa Merge branch 'clk-fixes' into clk-next 2014-11-24 17:45:33 -08:00
qcom Please consider pulling the clk framework changes toward 3.19. It is 2014-12-20 16:42:36 -08:00
rockchip clk: rockchip: fix deadlock possibility in cpuclk 2015-01-17 11:22:39 -08:00
samsung clk: exynos-audss: Fix memory leak on driver unbind or probe failure 2015-01-17 13:52:41 -08:00
shmobile clk: shmobile: div6: support selectable-input clocks 2014-11-12 14:24:08 +01:00
sirf clk: sirf: update copyright years to 2014 2014-03-26 21:47:35 -07:00
socfpga Adds support getting the divider registers for the MAIN PLL that was once 2014-05-12 19:11:13 -07:00
spear Merge branch 'clk-fixes' into clk-next 2014-07-13 07:56:45 -07:00
st clk: st: Use round to closest divider flag 2014-07-28 22:37:16 -07:00
sunxi clk: Change clk_ops->determine_rate to return a clk_hw as the best parent 2014-12-03 16:21:37 -08:00
tegra clk: tegra: Implement memory-controller clock 2014-11-26 09:43:23 +01:00
ti clk: ti: Add support for FAPLL on dm816x 2015-01-20 10:09:07 -08:00
ux500 clk: ux500: drop owner assignment from platform_drivers 2014-10-20 16:20:23 +02:00
versatile ARM: vexpress: Remove non-DT code 2014-11-28 16:08:16 +01:00
x86 clk: x86: drop owner assignment from platform_drivers 2014-10-20 16:20:23 +02:00
zynq clk: zynq: Move const initdata into correct code section 2014-09-09 12:18:20 -07:00
clk-axi-clkgen.c clk: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-axm5516.c clk: drop owner assignment from platform_drivers 2014-10-20 16:20:22 +02:00
clk-bcm2835.c
clk-cdce706.c clk: TI CDCE706 clock synthesizer driver 2015-01-17 13:52:40 -08:00
clk-clps711x.c clk: Add CLPS711X clk driver 2014-07-28 23:30:46 -07:00
clk-composite.c clk: Change clk_ops->determine_rate to return a clk_hw as the best parent 2014-12-03 16:21:37 -08:00
clk-conf.c clk: Add missing of_clk_set_defaults export 2014-08-04 09:48:39 -07:00
clk-devres.c
clk-divider.c clk: Add clk_unregister_{divider, gate, mux} to close memory leak 2015-01-17 13:52:41 -08:00
clk-efm32gg.c clk/efm32gg: fix dt init prototype 2014-09-09 13:52:18 -07:00
clk-fixed-factor.c
clk-fixed-rate.c clk: add accuracy support for fixed clock 2013-12-22 23:14:28 -08:00
clk-fractional-divider.c clk: fractional-divider: cast parent_rate to u64 before multiplying 2014-09-10 09:42:37 -07:00
clk-gate.c clk-gate: fix bit # check in clk_register_gate() 2015-01-20 10:09:05 -08:00
clk-gpio-gate.c clk: gpio-gate: Ensure gpiod_ APIs are prototyped 2014-09-30 11:57:54 -07:00
clk-highbank.c
clk-ls1x.c clk: ls1x: Update relationship among all clocks 2014-11-24 07:45:09 +01:00
clk-max77686.c clk: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-max77802.c clk: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-max-gen.c clk: Add generic driver for Maxim PMIC clocks 2014-09-09 13:55:44 -07:00
clk-max-gen.h clk: Add generic driver for Maxim PMIC clocks 2014-09-09 13:55:44 -07:00
clk-moxart.c clk: add MOXA ART SoCs clock driver 2014-03-18 17:13:14 -07:00
clk-mux.c clk: Add clk_unregister_{divider, gate, mux} to close memory leak 2015-01-17 13:52:41 -08:00
clk-nomadik.c clk: nomadik: fix multiplatform problem 2014-02-26 11:14:44 -08:00
clk-nspire.c
clk-palmas.c clk: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-ppc-corenet.c clk: ppc-corenet: fix section mismatch warning 2015-01-20 10:09:03 -08:00
clk-rk808.c clk: RK808: add clkout driver for RK808 2014-10-14 02:18:18 +02:00
clk-s2mps11.c Please consider pulling the clk framework changes toward 3.19. It is 2014-12-20 16:42:36 -08:00
clk-si570.c clk: si570: Fix email address specifiction 2014-05-20 16:18:18 +02:00
clk-si5351.c The second half of the clock framework pull requeust for 3.14 is 2014-01-28 18:44:53 -08:00
clk-si5351.h clk: si5351: remove variant from platform_data 2014-01-27 11:20:22 -08:00
clk-twl6040.c clk: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-u300.c clk: u300: Terminate of match table 2014-05-27 18:29:04 -07:00
clk-vt8500.c
clk-wm831x.c clk: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-xgene.c
clk.c clk: Skip fetching index for single parent clocks 2015-01-20 10:09:06 -08:00
clk.h clk: Add of_clk_get_by_clkspec() helper 2014-05-22 15:54:59 -07:00
clkdev.c clkdev: Don't print errors on probe defer 2014-06-26 12:55:03 -07:00
Kconfig clk: TI CDCE706 clock synthesizer driver 2015-01-17 13:52:40 -08:00
Makefile clk: TI CDCE706 clock synthesizer driver 2015-01-17 13:52:40 -08:00