summaryrefslogtreecommitdiffstats
path: root/drivers/clk/clk-fractional-divider.c
diff options
context:
space:
mode:
authorA.s. Dong <aisheng.dong@nxp.com>2018-11-14 13:01:35 +0000
committerStephen Boyd <sboyd@kernel.org>2018-12-03 11:31:23 -0800
commit404680794224334bcbea498d571c645e1838c879 (patch)
tree8f1960e23c97553a0d10eab2c71f533859113704 /drivers/clk/clk-fractional-divider.c
parent651022382c7f8da46cb4872a545ee1da6d097d2a (diff)
downloadlinux-stable-404680794224334bcbea498d571c645e1838c879.tar.gz
linux-stable-404680794224334bcbea498d571c645e1838c879.tar.bz2
linux-stable-404680794224334bcbea498d571c645e1838c879.zip
clk: imx: add gatable clock divider support
For dividers with zero indicating clock is disabled, instead of giving a warning each time like "clkx: Zero divisor and CLK_DIVIDER_ALLOW_ZERO not set" in exist code, we'd like to introduce enable/disable function for it. e.g. 000b - Clock disabled 001b - Divide by 1 010b - Divide by 2 ... Set rate when the clk is disabled will cache the rate request and only when the clk is enabled will the driver actually program the hardware to have the requested divider value. Similarly, when the clk is disabled we'll write a 0 there, but when the clk is enabled we'll restore whatever rate (divider) was chosen last. It does mean that recalc rate will be sort of odd, because when the clk is off it will return 0, and when the clk is on it will return the right rate. So to make things work, we'll need to return the cached rate in recalc rate when the clk is off and read the hardware when the clk is on. NOTE for the default off divider, the recalc rate will still return 0 as there's still no proper preset rate. Enable such divider will give user a reminder error message. Cc: Stephen Boyd <sboyd@codeaurora.org> Cc: Michael Turquette <mturquette@baylibre.com> Cc: Shawn Guo <shawnguo@kernel.org> Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> [sboyd@kernel.org: Include clk.h for sparse warnings] Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'drivers/clk/clk-fractional-divider.c')
0 files changed, 0 insertions, 0 deletions