clk/zynq/clkc: Add 'fclk-enable' feature
authorSoren Brinkmann <soren.brinkmann@xilinx.com>
Wed, 27 Nov 2013 20:16:23 +0000 (12:16 -0800)
committerMichal Simek <michal.simek@xilinx.com>
Fri, 20 Dec 2013 12:23:55 +0000 (13:23 +0100)
commitba52f8a986089e263ea28e231b6a405769ae1235
treeb2f86681050be4395efc4d5edb51c386d21196cb
parent24c039f6acacd63e739b39a030197d5a2945e0d2
clk/zynq/clkc: Add 'fclk-enable' feature

In some use cases Zynq's FPGA clocks are used as static clock
generators for IP in the FPGA part of the SOC for which no Linux driver
exists and would control those clocks. To avoid automatic
gating of these clocks in such cases a new property - fclk-enable - is
added to the clock controller's DT description to accomodate such use
cases. It's value is a bitmask, where a set bit results in enabling
the corresponding FCLK through the clkc.

FPGA clocks are handled following the rules below:

If an FCLK is not enabled by bootloaders, that FCLK will be disabled in
Linux. Drivers can enable and control it through the CCF as usual.

If an FCLK is enabled by bootloaders AND the corresponding bit in the
'fclk-enable' DT property is set, that FCLK will be enabled by the clkc,
resulting in an off by one reference count for that clock. Ensuring it
will always be running.

Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Documentation/devicetree/bindings/clock/zynq-7000.txt
drivers/clk/zynq/clkc.c