linux/drivers/clk
Phil Elwell 3542976d85 clk: bcm2835: Minimise clock jitter for PCM clock
Fractional clock dividers generate accurate average frequencies but
with jitter, particularly when the integer divisor is small.

Introduce a new metric of clock accuracy to penalise clocks with a good
average but worse jitter compared to clocks with an average which is no
better but with lower jitter. The metric is the ideal rate minus the
worse deviation from that ideal using the nearest integer divisors.

Use this metric for parent selection for clocks requiring low jitter
(currently just PCM).

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2017-06-02 15:42:21 -07:00
..
at91 clk: at91: fix clk-generated parenting 2017-06-01 00:47:50 -07:00
axis clk: axis: Use new macro CLK_OF_DECLARE_DRIVER 2016-08-12 18:00:37 -07:00
axs10x clk/axs10x: Clear init field in driver probe 2017-01-09 16:06:40 -08:00
bcm clk: bcm2835: Minimise clock jitter for PCM clock 2017-06-02 15:42:21 -07:00
berlin clk: berlin: Pass correct type to hw provider registration 2016-11-16 11:04:17 -08:00
h8300 clk: h8300: Migrate to clk_hw based registration APIs 2016-08-24 17:37:10 -07:00
hisilicon clk: hi3620: Fix a typo in one variable name 2017-04-19 11:29:49 -07:00
imx clk: imx7d: Fix the powerdown bit location of PLL DDR 2017-06-01 00:25:38 -07:00
ingenic clk: ingenic: Allow divider value to be divided 2016-05-12 14:48:25 -07:00
keystone clk: keystone: pll: Unmap region obtained by of_iomap 2016-12-08 16:34:15 -08:00
loongson1 CLK: Add Loongson1C clock support 2016-09-23 14:49:21 -07:00
mediatek clk: mediatek: add mt2701 ethernet reset 2017-04-21 19:20:33 -07:00
meson clk: meson-gxbb: Add const to some parent name arrays 2017-06-02 10:57:50 -07:00
microchip clk: microchip: Initialize SOSC clock rate for PIC32MZDA. 2016-08-24 16:05:24 -07:00
mmp clk:mmp:clk-of-mmp2: Free memory and Unmap region obtained by kzalloc and of_iomap 2016-12-08 16:29:39 -08:00
mvebu clk: mvebu: armada-38x: add support for 1866MHz variants 2017-06-01 00:25:21 -07:00
mxs
nxp clk: nxp: clk-lpc18xx-ccu: Unmap region obtained by of_iomap 2016-11-01 17:32:25 -07:00
pistachio
pxa ARM: SoC platform updates for v4.10 2016-12-15 15:39:02 -08:00
qcom Sort of on the quieter side this time, which is probably due more 2017-05-10 13:38:18 -07:00
renesas clk: renesas: r8a7794: Add new CPG/MSSR driver 2017-05-24 10:20:03 +02:00
rockchip General rockchip clock changes for 4.12. Contains some new clock-ids 2017-04-12 18:50:34 +02:00
samsung Merge branch 'next/late' with mainline 2017-03-02 17:52:44 +01:00
sirf clk: sirf: Remove CLK_IS_ROOT 2016-04-15 16:50:04 -07:00
socfpga
spear clk: spear: fix ADC clock definition on SPEAr600 2017-04-19 09:27:52 -07:00
st clk: st: clk-flexgen: Unmap region obtained by of_iomap 2016-12-08 16:35:22 -08:00
sunxi Allwinner clock changes for 4.10 2016-11-16 11:19:20 -08:00
sunxi-ng clk: sunxi-ng: sun5i: Fix ahb_bist_clk definition 2017-05-25 14:04:19 -07:00
tegra clk: tegra: Don't reset PLL-CX if it is already enabled 2017-04-04 16:06:05 +02:00
ti clk: ti: divider: try to fix ti_clk_register_divider 2017-04-28 11:07:09 -07:00
uniphier clk: uniphier: add eMMC clock for LD11 and LD20 SoCs 2017-02-03 11:55:21 -08:00
ux500 clk: ux500: Convert ABx500 clocks to use OF probing 2017-01-26 16:10:02 -08:00
versatile ARM/clk: move the ICST library to drivers/clk 2017-04-07 11:58:12 +02:00
x86 clk: x86: pmc-atom: Checking for IS_ERR() instead of NULL 2017-05-01 11:13:25 -07:00
zte clk: zte: Mark pll config tables as const 2017-04-12 18:51:34 +02:00
zynq
clk-asm9260.c clk: asm9260: Migrate to clk_hw based registration and OF APIs 2016-08-24 16:08:33 -07:00
clk-axi-clkgen.c clk: axi-clkgen: Migrate to clk_hw based OF and registration APIs 2016-08-24 16:10:31 -07:00
clk-axm5516.c clk: axm5516: Migrate to clk_hw based OF and registration APIs 2016-08-24 16:11:07 -07:00
clk-bulk.c clk: add clk_bulk_get accessories 2017-06-02 15:37:45 -07:00
clk-cdce706.c clk: cdce: Migrate to clk_hw based OF and registration APIs 2016-08-24 16:12:38 -07:00
clk-cdce925.c clk: cdce925: add support for CDCE913, CDCE937, and CDCE949 2017-01-09 16:38:30 -08:00
clk-clps711x.c clk: clps711x: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:19:26 -07:00
clk-composite.c Merge branch 'clk-hw-register' (early part) into clk-next 2016-04-21 14:47:18 -07:00
clk-conf.c clk: Fix __set_clk_rates error print-string 2017-06-01 02:13:44 -07:00
clk-cs2000-cp.c clk: cs2000: select 12.20 High Accuracy on LFRatioCfg 2017-04-19 10:18:55 -07:00
clk-devres.c clk: add managed version of clk_bulk_get 2017-06-02 15:37:49 -07:00
clk-divider.c clk: divider: Fix clk_divider_round_rate() to use clk_readl() 2016-08-12 17:33:09 -07:00
clk-efm32gg.c clk: efm32gg: Pass correct type to hw provider registration 2016-11-16 11:08:55 -08:00
clk-fixed-factor.c clk: fixed-factor: Remove export symbol on setup function 2016-08-15 15:08:03 -07:00
clk-fixed-rate.c clk: fixed-rate: Remove export symbol on setup function 2016-08-15 15:08:06 -07:00
clk-fractional-divider.c clk: fractional-divider: Add hw based registration APIs 2016-04-19 16:56:28 -07:00
clk-gate.c clk: gate: fix coding style 2016-11-09 12:05:50 -08:00
clk-gpio.c clk: gpio: Add hw based registration APIs 2016-04-19 16:56:28 -07:00
clk-hi655x.c clk: hi6220: Add the hi655x's pmic clock 2017-04-21 19:18:53 -07:00
clk-highbank.c clk: highbank: Migrate to clk_hw based registration and OF APIs 2016-06-30 12:25:28 -07:00
clk-max77686.c clk: max77686: fix number of clocks setup for clk_hw based registration 2016-10-17 15:31:59 -07:00
clk-mb86s7x.c clk: mb86s7x: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:23:01 -07:00
clk-moxart.c clk: moxart: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:23:20 -07:00
clk-multiplier.c clk: multiplier: Prevent the multiplier from under / over flowing 2016-06-20 13:00:00 -07:00
clk-mux.c clk: mux: Add hw based registration APIs 2016-04-19 16:55:01 -07:00
clk-nomadik.c clk: nomadik: Delete error messages for a failed memory allocation in two functions 2017-04-21 19:47:14 -07:00
clk-nspire.c clk: nspire: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:23:21 -07:00
clk-oxnas.c clk: oxnas: Add OX820 Gate clocks 2016-10-23 10:18:45 -07:00
clk-palmas.c clk: palmas: undo preparation of a clock source. 2017-06-02 10:51:34 -07:00
clk-pwm.c clk: pwm: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:23:27 -07:00
clk-qoriq.c clk: qoriq: Separate root input clock for core PLLs on ls1012a 2017-06-01 01:24:13 -07:00
clk-rk808.c clk: rk808: Pass the right pointer as the get_hw context 2016-09-09 11:07:07 -07:00
clk-s2mps11.c clk: s2mps11: Migrate to clk_hw based OF and registration APIs 2016-06-30 12:29:14 -07:00
clk-scpi.c clk: scpi: fix return type of __scpi_dvfs_round_rate 2017-06-01 02:13:11 -07:00
clk-si514.c clk: si514: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:29:59 -07:00
clk-si570.c clk: si570: Migrate to clk_hw based OF and registration APIs 2016-08-24 17:30:01 -07:00
clk-si5351.c clk: si5351: Delete an error message for a failed memory allocation in si5351_i2c_probe() 2017-04-21 19:44:54 -07:00
clk-si5351.h
clk-stm32f4.c clk: stm32f4: fix timeout management for pll and ready gate 2017-04-12 18:50:56 +02:00
clk-tango4.c clk: tango4: improve clkgen driver 2016-04-15 17:16:06 -07:00
clk-twl6040.c clk: twl6040: Migrate to clk_hw based registration APIs 2016-08-24 17:34:11 -07:00
clk-u300.c clk: u300: Migrate to clk_hw based registration APIs 2016-06-30 12:26:18 -07:00
clk-versaclock5.c clk: vc5: Add support for IDT VersaClock 5P49V5935 2017-04-19 09:08:59 -07:00
clk-vt8500.c clk: vt8500: Migrate to clk_hw based registration APIs 2016-08-24 17:35:48 -07:00
clk-wm831x.c clk: wm831x: fix usleep_range with bad range 2017-01-09 16:06:41 -08:00
clk-xgene.c clk: xgene: Don't call __pa on ioremaped address 2016-10-28 11:03:47 -07:00
clk.c clk: Improve a size determination in two functions 2017-04-21 19:47:02 -07:00
clk.h
clkdev.c ARM: 8631/1: clkdev: Detect errors in clk_hw_register_clkdev() for mass registration 2016-11-22 11:45:28 +00:00
Kconfig clk: hi6220: Add the hi655x's pmic clock 2017-04-21 19:18:53 -07:00
Makefile Merge branch 'clk-bulk-get' into clk-next 2017-06-02 15:39:32 -07:00