clk: rockchip: Force rk3368 PWM clock (and its parents) on
authorCaesar Wang <wxt@rock-chips.com>
Tue, 1 Dec 2015 09:13:24 +0000 (17:13 +0800)
committerHeiko Stuebner <heiko@sntech.de>
Tue, 1 Dec 2015 23:40:17 +0000 (00:40 +0100)
commita7ce40508803d7ac1e642a93e80709ee2514c1c2
treedb9b2f93aa5ef5a5a4fb44fed67dbeca1243e7da
parent1d33929e2a2b69ae6d40e09ccfc8c7d705a543ba
clk: rockchip: Force rk3368 PWM clock (and its parents) on

Most rk3368 boards (especially those with Pmic that followed the lead
from rk3368-evb-act8846) have a PWM regulator on them for vdd_logic.
This is the main voltage for all kinds of misc stuff including the
memory controller.

On these boards it is critically important to make sure that the PWM
never ever glitches and never loses its clock. Any glitch could
crash the system.

Right now there are no users of the PWM regulator and also Linux
thinks that the PWM regulator is disabled.  Things happen to work
because firmware configured the PWM and Linux doesn't touch it.
..and the PWM's clock is marked as "ignore unused".

...but things _stop_ working if we turn off serial console.  Why?
Because:
    1. Serial console shares a parent clock with the PWM (pclk_cpu)
    2. If we have no serial console then nobody is holding pclk_cpu on
       at reboot time.  It gets disabled.

We need to fix a lot of the above problems, but until we get
everything right the cleanest "hack" seems like it is to just keep
the "rk_pwm" clock on always.

Signed-off-by: Caesar Wang <wxt@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
drivers/clk/rockchip/clk-rk3368.c