linux/drivers/clk
Stefan Wahren 039e597075 clk: mxs: Fix invalid 32-bit access to frac registers
According to i.MX23 and i.MX28 reference manual [1],[2] the fractional
clock control register is 32-bit wide, but is separated in 4 parts.
So write instructions must not apply to more than 1 part at once.

The clk init for the i.MX28 violates this restriction and all the other
accesses on that register suggest that there isn't such a restriction.

This patch restricts the access to this register to byte instructions and
extends the comment in the init functions.

Btw the imx23 init now uses a R-M-W sequence just like imx28 init
to avoid any clock glitches.

The changes has been tested with a i.MX23 and a i.MX28 board.

[1] - http://cache.freescale.com/files/dsp/doc/ref_manual/IMX23RM.pdf
[2] - http://cache.freescale.com/files/dsp/doc/ref_manual/MCIMX28RM.pdf

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Michael Turquette <mturquette@linaro.org>
2015-02-03 13:08:05 -08:00
..
at91 clk: Add rate constraints to clocks 2015-02-02 14:23:42 -08:00
bcm clk: Add rate constraints to clocks 2015-02-02 14:23:42 -08:00
berlin clk: berlin: bg2q: remove non-exist "smemc" gate clock 2015-01-13 10:58:43 -08:00
hisilicon clk: Add rate constraints to clocks 2015-02-02 14:23:42 -08:00
keystone clk: keystone: gate: fix clk_init_data initialization 2014-02-10 15:17:43 -05:00
mmp clk: Add rate constraints to clocks 2015-02-02 14:23:42 -08:00
mvebu clk: mvebu: add suspend/resume for gatable clocks 2014-11-30 16:40:12 +00:00
mxs clk: mxs: Fix invalid 32-bit access to frac registers 2015-02-03 13:08:05 -08:00
pxa clk: pxa: add pxa3xx clock driver 2015-01-27 17:03:52 -08:00
qcom clk: Add rate constraints to clocks 2015-02-02 14:23:42 -08:00
rockchip The two big changes are the additional of the watchdog clock, which 2015-01-27 16:26:12 -08:00
samsung Exynos 3250, 4415 drivers cleanup by using common code 2015-02-02 14:51:16 -08:00
shmobile clk: shmobile: Add R-Car Gen2 ADSP clock support 2015-01-08 16:14:31 +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: STiH410: Fix pdiv and fdiv divisor when setting rate 2015-01-20 10:09:13 -08:00
sunxi clk: Add rate constraints to clocks 2015-02-02 14:23:42 -08:00
tegra clk: tegra: Define PLLD_DSI and remove dsia(b)_mux 2015-02-02 16:22:34 +02:00
ti clk: omap: compile legacy omap3 clocks conditionally 2015-02-03 11:06:11 -08:00
ux500 clk: ux500: Drop use of clk-private.h 2015-01-27 11:56:33 -08: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: Force CPU_2X clock to be ungated 2015-01-27 17:00:24 -08:00
clk-asm9260.c ARM: clk: add clk-asm9260 driver 2015-01-20 10:10:51 -08: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: Add rate constraints to clocks 2015-02-02 14:23:42 -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: divider: Make generic for usage elsewhere 2015-01-27 11:48:52 -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-qoriq.c clk: qoriq: Use pr_fmt() 2015-01-28 10:11:40 -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: vt8500: Staticize vtwm_pll_ops 2013-12-19 17:47:32 -08:00
clk-wm831x.c clk: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-xgene.c
clk.c clk: Add rate constraints to clocks 2015-02-02 14:23:42 -08:00
clk.h clk: Make clk API return per-user struct clk instances 2015-02-02 14:22:19 -08:00
clkdev.c clkdev: Export clk_register_clkdev 2015-02-02 14:23:43 -08:00
Kconfig clk: ppc-corenet: rename driver to clk-qoriq 2015-01-20 10:09:12 -08:00
Makefile ARM: clk: add clk-asm9260 driver 2015-01-20 10:10:51 -08:00