linux/drivers/clk/imx
Anson Huang a048fe996b clk: imx: pllv4: add fractional-N pll support
The pllv4 supports fractional-N function, the formula is:

PLL output freq = input * (mult + num/denom),

This patch adds fractional-N function support, including
clock round rate, calculate rate and set rate, with this
patch, the clock rate of APLL in clock tree is more accurate
than before:

Without fraction:
apll_pre_sel                      1        1        1    24000000          0     0  50000
   apll_pre_div                   1        1        2    24000000          0     0  50000
      apll                        1        1        2   528000000          0     0  50000
         apll_pfd3                0        0        0   792000000          0     0  50000
         apll_pfd2                0        0        0   339428571          0     0  50000
         apll_pfd1                0        0        0   352000000          0     0  50000
            usdhc0                0        0        0   352000000          0     0  50000
         apll_pfd0                1        1        1   352000000          0     0  50000

With fraction:
apll_pre_sel                      1        1        1    24000000          0     0  50000
   apll_pre_div                   1        1        2    24000000          0     0  50000
      apll                        1        1        2   529200000          0     0  50000
         apll_pfd3                0        0        0   793800000          0     0  50000
         apll_pfd2                0        0        0   340200000          0     0  50000
         apll_pfd1                0        0        0   352800000          0     0  50000
            usdhc0                0        0        0   352800000          0     0  50000
         apll_pfd0                1        1        1   352800000          0     0  50000

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
2019-05-01 14:01:45 -07:00
..
clk-busy.c clk: imx: make mux parent strings const 2018-12-03 11:31:36 -08:00
clk-composite-7ulp.c clk: imx: add imx7ulp composite clk support 2018-12-03 11:31:36 -08:00
clk-composite-8m.c clk: imx: Make parent_names const pointer in composite-8m 2019-02-21 12:41:16 -08:00
clk-cpu.c clk: imx: cpu clock should be always critical 2018-10-17 08:26:03 -07:00
clk-divider-gate.c clk: imx: add gatable clock divider support 2018-12-03 11:31:23 -08:00
clk-fixup-div.c clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08:00
clk-fixup-mux.c clk: imx: make mux parent strings const 2018-12-03 11:31:36 -08:00
clk-frac-pll.c clk: imx: Fix fractional clock set rate computation 2019-01-24 11:17:28 -08:00
clk-gate-exclusive.c clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08:00
clk-gate2.c clk: imx: make clk_ops const 2017-11-01 23:25:49 -07:00
clk-imx1.c ARM: i.MX: Remove i.MX1 non-DT support 2016-08-09 22:47:26 +08:00
clk-imx5.c clk: imx: rename clk-imx51-imx53.c to clk-imx5.c 2019-04-15 17:09:23 +08:00
clk-imx6q.c Merge branches 'clk-of-refcount', 'clk-mmio-fixed-clock', 'clk-remove-clps', 'clk-socfpga-parent' and 'clk-struct-size' into clk-next 2019-03-08 10:26:59 -08:00
clk-imx6sl.c clk: imx6sl: ensure MMDC CH0 handshake is bypassed 2018-12-10 11:34:21 -08:00
clk-imx6sll.c clk: imx: keep uart clock on during system boot 2019-04-29 16:02:01 -07:00
clk-imx6sx.c clk: imx6sx: fix refcount leak in imx6sx_clocks_init() 2018-12-28 11:40:25 -08:00
clk-imx6ul.c clk: imx6ul: add mmdc1 ipg clock 2018-10-17 11:15:20 -07:00
clk-imx7d.c clk: imx: correct i.MX7D AV PLL num/denom offset 2019-04-29 16:01:50 -07:00
clk-imx7ulp.c clk: imx7ulp: remove snvs clock 2019-03-20 15:59:52 +08:00
clk-imx8mm.c clk: imx: imx8mm: Mark init function __init 2019-02-21 15:29:10 -08:00
clk-imx8mq.c clk: imx8mq: add GPIO clocks to clock tree 2019-02-28 10:28:28 -08:00
clk-imx8qxp-lpcg.c clk: imx: fix potential NULL dereference in imx8qxp_lpcg_clk_probe() 2019-01-09 10:34:54 -08:00
clk-imx8qxp-lpcg.h clk: imx: add imx8qxp lpcg driver 2018-12-14 13:01:14 -08:00
clk-imx8qxp.c clk: imx: scu: add fallback compatible string support 2019-02-21 12:41:16 -08:00
clk-imx21.c clk: i.MX: Remove clk.h include 2015-07-20 10:52:49 -07:00
clk-imx25.c clk: imx25: Remove osc clock from driver 2015-11-25 11:49:42 +08:00
clk-imx27.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clk-imx31.c ARM: clk: imx31: properly init clocks for machines with DT 2016-11-01 16:44:46 +08:00
clk-imx35.c ARM: clk-imx35: annotate clk enum with number values 2016-09-14 11:28:04 -07:00
clk-lpcg-scu.c clk: imx: add lpcg clock support 2018-12-14 13:00:51 -08:00
clk-pfd.c clk: i.MX: Remove clk.h include 2015-07-20 10:52:49 -07:00
clk-pfdv2.c clk: imx: add pfdv2 support 2018-12-03 11:31:32 -08:00
clk-pll14xx.c clk: imx: pll14xx: drop unused variable 2019-04-25 14:42:02 -07:00
clk-pllv1.c We have two changes to the core framework this time around. The first being a 2017-11-17 20:04:24 -08:00
clk-pllv2.c clk: imx: pllv2: avoid using uninitialized values 2018-03-16 15:40:41 -07:00
clk-pllv3.c clk: imx: correct i.MX7D AV PLL num/denom offset 2019-04-29 16:01:50 -07:00
clk-pllv4.c clk: imx: pllv4: add fractional-N pll support 2019-05-01 14:01:45 -07:00
clk-sccg-pll.c clk: imx: Refactor entire sccg pll clk 2019-02-26 10:09:31 -08:00
clk-scu.c clk: imx: scu: add cpu frequency scaling support 2019-02-26 10:03:38 -08:00
clk-scu.h clk: imx: scu: add set parent support 2019-02-21 12:41:16 -08:00
clk-vf610.c clk: vf610: fix refcount leak in vf610_clocks_init() 2018-12-28 11:40:59 -08:00
clk.c clk: imx: implement new clk_hw based APIs 2018-12-03 11:31:36 -08:00
clk.h clk: imx: correct i.MX7D AV PLL num/denom offset 2019-04-29 16:01:50 -07:00
Kconfig clk: imx: Add clock driver support for imx8mm 2019-02-21 12:41:16 -08:00
Makefile clk: imx: rename clk-imx51-imx53.c to clk-imx5.c 2019-04-15 17:09:23 +08:00