linux-sg2042/drivers/clk/sunxi-ng
Chen-Yu Tsai a17b9e4c9c clk: sunxi-ng: sun6i-a31: Force AHB1 clock to use PLL6 as parent
On the A31, the DMA engine only works if AHB1 is clocked from PLL6.
In addition, the hstimer is clocked from AHB1, and if AHB1 is clocked
from the CPU clock, and cpufreq is working, we get an unstable timer.

Force the AHB1 clock to use PLL6 as its parent. Previously this was done
in the device tree with the assigned-clocks and assigned-clocks-parent
bindings. However with this new monolithic driver, the system critical
clocks aren't exported through the device tree. The alternative is to
force this setting in the driver before the clocks are registered.

This is also done in newer versions of mainline U-boot. But people still
using an older version, or even the vendor version, can still hit this
issue. Hence the need to do it in the kernel as well.

Reported-by: Hans de Goede <hdegoede@redhat.com>
Reported-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Fixes: c6e6c96d8f ("clk: sunxi-ng: Add A31/A31s clocks")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
2016-10-19 11:56:31 +02:00
..
Kconfig clk: sunxi-ng: Add hardware dependency 2016-09-10 11:41:21 +02:00
Makefile clk: sunxi-ng: Add A23 CCU 2016-09-10 11:41:20 +02:00
ccu-sun6i-a31.c clk: sunxi-ng: sun6i-a31: Force AHB1 clock to use PLL6 as parent 2016-10-19 11:56:31 +02:00
ccu-sun6i-a31.h clk: sunxi-ng: Add A31/A31s clocks 2016-08-25 22:31:43 +02:00
ccu-sun8i-a23-a33.h clk: sunxi-ng: Add A33 CCU support 2016-09-10 11:41:19 +02:00
ccu-sun8i-a23.c clk: sunxi-ng: Fix reset offset for the A23 and A33 2016-09-20 17:04:31 -07:00
ccu-sun8i-a33.c clk: sunxi-ng: Fix reset offset for the A23 and A33 2016-09-20 17:04:31 -07:00
ccu-sun8i-h3.c Allwinner Clock changes for 4.9 2016-09-14 11:10:15 -07:00
ccu-sun8i-h3.h clk: sunxi-ng: Add H3 clocks 2016-07-08 18:05:12 -07:00
ccu_common.c clk: sunxi-ng: Fix inverted test condition in ccu_helper_wait_for_lock 2016-08-08 19:27:33 +02:00
ccu_common.h
ccu_div.c clk: sunxi-ng: Add divider 2016-07-08 18:04:48 -07:00
ccu_div.h clk: sunxi-ng: div: Allow to set a maximum 2016-09-10 11:41:18 +02:00
ccu_frac.c clk: sunxi-ng: Add fractional lib 2016-07-08 18:04:35 -07:00
ccu_frac.h clk: sunxi-ng: Add fractional lib 2016-07-08 18:04:35 -07:00
ccu_gate.c clk: sunxi-ng: Add gate clock support 2016-07-08 18:04:38 -07:00
ccu_gate.h clk: sunxi-ng: Add gate clock support 2016-07-08 18:04:38 -07:00
ccu_mp.c clk: sunxi-ng: div: Allow to set a maximum 2016-09-10 11:41:18 +02:00
ccu_mp.h clk: sunxi-ng: mux: Rename mux macro to be consistent 2016-08-25 22:25:53 +02:00
ccu_mult.c clk: sunxi-ng: Add N-class clocks support 2016-09-10 11:41:19 +02:00
ccu_mult.h clk: sunxi-ng: Add N-class clocks support 2016-09-10 11:41:19 +02:00
ccu_mux.c clk: sunxi-ng: mux: Add clk notifier functions 2016-08-25 22:30:36 +02:00
ccu_mux.h clk: sunxi-ng: mux: Add mux table macro 2016-09-10 11:41:18 +02:00
ccu_nk.c clk: sunxi-ng: nk: Make ccu_nk_find_best static 2016-08-08 19:27:33 +02:00
ccu_nk.h clk: sunxi-ng: Add N-K-factor clock support 2016-07-08 18:04:56 -07:00
ccu_nkm.c clk: sunxi-ng: div: Allow to set a maximum 2016-09-10 11:41:18 +02:00
ccu_nkm.h clk: sunxi-ng: mux: Rename mux macro to be consistent 2016-08-25 22:25:53 +02:00
ccu_nkmp.c clk: sunxi-ng: div: Allow to set a maximum 2016-09-10 11:41:18 +02:00
ccu_nkmp.h clk: sunxi-ng: Add N-K-M-P factor clock 2016-07-08 18:05:06 -07:00
ccu_nm.c clk: sunxi-ng: div: Allow to set a maximum 2016-09-10 11:41:18 +02:00
ccu_nm.h clk: sunxi-ng: Add N-M-factor clock support 2016-07-08 18:05:00 -07:00
ccu_phase.c clk: sunxi-ng: Add phase clock support 2016-07-08 18:04:45 -07:00
ccu_phase.h clk: sunxi-ng: Add phase clock support 2016-07-08 18:04:45 -07:00
ccu_reset.c
ccu_reset.h