aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot
diff options
context:
space:
mode:
authorShawn Guo <shawn.guo@freescale.com>2014-05-27 22:31:38 -0400
committerShawn Guo <shawn.guo@freescale.com>2014-06-25 09:17:19 -0400
commit44e694116235a6f69d9e3391f2d6b561708d93c7 (patch)
tree3af02c3e770b544401613fc2f45e4cd9b78201f8 /arch/arm/boot
parentb738609adb2d36d52927c75846bc9a6a840d03d4 (diff)
ENGR00318063-2: ARM: imx6q: fix axi_sels mux setting
The current imx6q clock driver combines two mux clocks axi_alt_sel and axi_sel into one, while axi_alt_sel is a glitchy mux and axi_sel is a glitchless one. Fix it to match the clock tree in Reference Manual, and update busfreq driver regarding parent switching on that. Note, the parent checking before calling clk_set_parent() in busfreq driver isn't really necessary, because clk API will make the check and do nothing if the new parent is the same one as the old. One thing clk API clients need to take care is that clk_set_parent() can be called on glitchy axi_alt_sel only when axi_sel selects the other path, i.e. periph. Otherwise, a glitch could be generated on axi_alt_sel and get propagated into the divider axi_podf. In that case, axi_podf gets locked up and axi clock has no output. Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Diffstat (limited to 'arch/arm/boot')
-rw-r--r--arch/arm/boot/dts/imx6dl.dtsi4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/boot/dts/imx6dl.dtsi b/arch/arm/boot/dts/imx6dl.dtsi
index e2bedf6d8917..511a1544a60d 100644
--- a/arch/arm/boot/dts/imx6dl.dtsi
+++ b/arch/arm/boot/dts/imx6dl.dtsi
@@ -56,9 +56,9 @@
56 busfreq { /* BUSFREQ */ 56 busfreq { /* BUSFREQ */
57 compatible = "fsl,imx6_busfreq"; 57 compatible = "fsl,imx6_busfreq";
58 clocks = <&clks 171>, <&clks 6>, <&clks 11>, <&clks 104>, <&clks 172>, <&clks 58>, 58 clocks = <&clks 171>, <&clks 6>, <&clks 11>, <&clks 104>, <&clks 172>, <&clks 58>,
59 <&clks 18>, <&clks 60>, <&clks 20>, <&clks 3>, <&clks 22> , <&clks 8>; 59 <&clks 18>, <&clks 60>, <&clks 20>, <&clks 3>, <&clks 230>, <&clks 22> , <&clks 8>;
60 clock-names = "pll2_bus", "pll2_pfd2_396m", "pll2_198m", "arm", "pll3_usb_otg", "periph", 60 clock-names = "pll2_bus", "pll2_pfd2_396m", "pll2_198m", "arm", "pll3_usb_otg", "periph",
61 "periph_pre", "periph_clk2", "periph_clk2_sel", "osc", "axi_sel", "pll3_pfd1_540m"; 61 "periph_pre", "periph_clk2", "periph_clk2_sel", "osc", "axi_alt_sel", "axi_sel", "pll3_pfd1_540m";
62 interrupts = <0 107 0x04>, <0 112 0x4>; 62 interrupts = <0 107 0x04>, <0 112 0x4>;
63 interrupt-names = "irq_busfreq_0", "irq_busfreq_1"; 63 interrupt-names = "irq_busfreq_0", "irq_busfreq_1";
64 fsl,max_ddr_freq = <400000000>; 64 fsl,max_ddr_freq = <400000000>;