summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@freescale.com>2014-06-05 16:54:31 +0800
committerNitin Garg <nitin.garg@freescale.com>2015-04-14 14:00:03 -0500
commit0d1bcc830349124368b283e52caed73c60964885 (patch)
tree9cf4516808aec4c5c66471000b99e7c2f7c1bc5c /include/linux
parentbcfc4a7a9456cede91c8e6b69016768e13117744 (diff)
ENGR00318063-9: clk: do not allow parent switching with another mux being child
When switching parent clock with another basic mux clock being its child, a glitch might be generated and propagated to downstream clocks through this child mux. The patch adds a flag CLK_IS_BASIC_MUX to identify the basic mux clocks, and prohibit the parent switching when the clock itself is the parent of any basic mux clock. With this check, the parent switching of a clock has to happen before the child mux switches to this clock path. shawn.guo: cherry-pick commit 8df4202f6a46 from imx_3.10.y Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/clk-provider.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index 939533da93a7..ae95cc590a89 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -30,6 +30,12 @@
#define CLK_GET_RATE_NOCACHE BIT(6) /* do not use the cached clk rate */
#define CLK_SET_RATE_NO_REPARENT BIT(7) /* don't re-parent on rate change */
#define CLK_GET_ACCURACY_NOCACHE BIT(8) /* do not use the cached clk accuracy */
+/*
+ * Basic mux clk, can't switch parent while there is another basic mux clk
+ * being its child. Otherwise, a glitch might be propagated to downstream
+ * clocks through this child mux.
+ */
+#define CLK_IS_BASIC_MUX BIT(9)
struct clk_hw;