diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2013-07-18 01:35:40 -0400 |
---|---|---|
committer | Shawn Guo <shawn.guo@linaro.org> | 2013-08-22 11:20:39 -0400 |
commit | 6cd622357df82431358c38dfba4d70e5735e6b5e (patch) | |
tree | 8100def49d450c487ea70365a1a043e4cfee0731 /arch/arm/mach-imx | |
parent | 6526bb3cc537c1ec4d686ec182406ac01abbe0f6 (diff) |
ARM: imx6q: add the missing cko output selection
The clock output on imx6q CCM_CLKO1 pad is not always cko1 clock, and
there is a multiplexer to select between cko1 and cko2. Add this
missing selection as the clock cko.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Diffstat (limited to 'arch/arm/mach-imx')
-rw-r--r-- | arch/arm/mach-imx/clk-imx6q.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c index 924ed84cb3d4..ed19b332468b 100644 --- a/arch/arm/mach-imx/clk-imx6q.c +++ b/arch/arm/mach-imx/clk-imx6q.c | |||
@@ -216,6 +216,7 @@ static const char *cko2_sels[] = { | |||
216 | "ldb_di0", "ldb_di1", "esai", "eim_slow", | 216 | "ldb_di0", "ldb_di1", "esai", "eim_slow", |
217 | "uart_serial", "spdif", "asrc", "hsi_tx", | 217 | "uart_serial", "spdif", "asrc", "hsi_tx", |
218 | }; | 218 | }; |
219 | static const char *cko_sels[] = { "cko1", "cko2", }; | ||
219 | 220 | ||
220 | enum mx6q_clks { | 221 | enum mx6q_clks { |
221 | dummy, ckil, ckih, osc, pll2_pfd0_352m, pll2_pfd1_594m, pll2_pfd2_396m, | 222 | dummy, ckil, ckih, osc, pll2_pfd0_352m, pll2_pfd1_594m, pll2_pfd2_396m, |
@@ -250,7 +251,7 @@ enum mx6q_clks { | |||
250 | ssi2_ipg, ssi3_ipg, rom, usbphy1, usbphy2, ldb_di0_div_3_5, ldb_di1_div_3_5, | 251 | ssi2_ipg, ssi3_ipg, rom, usbphy1, usbphy2, ldb_di0_div_3_5, ldb_di1_div_3_5, |
251 | sata_ref, sata_ref_100m, pcie_ref, pcie_ref_125m, enet_ref, usbphy1_gate, | 252 | sata_ref, sata_ref_100m, pcie_ref, pcie_ref_125m, enet_ref, usbphy1_gate, |
252 | usbphy2_gate, pll4_post_div, pll5_post_div, pll5_video_div, eim_slow, | 253 | usbphy2_gate, pll4_post_div, pll5_post_div, pll5_video_div, eim_slow, |
253 | spdif, cko2_sel, cko2_podf, cko2, clk_max | 254 | spdif, cko2_sel, cko2_podf, cko2, cko, clk_max |
254 | }; | 255 | }; |
255 | 256 | ||
256 | static struct clk *clk[clk_max]; | 257 | static struct clk *clk[clk_max]; |
@@ -409,6 +410,7 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) | |||
409 | clk[vpu_axi_sel] = imx_clk_mux("vpu_axi_sel", base + 0x18, 14, 2, vpu_axi_sels, ARRAY_SIZE(vpu_axi_sels)); | 410 | clk[vpu_axi_sel] = imx_clk_mux("vpu_axi_sel", base + 0x18, 14, 2, vpu_axi_sels, ARRAY_SIZE(vpu_axi_sels)); |
410 | clk[cko1_sel] = imx_clk_mux("cko1_sel", base + 0x60, 0, 4, cko1_sels, ARRAY_SIZE(cko1_sels)); | 411 | clk[cko1_sel] = imx_clk_mux("cko1_sel", base + 0x60, 0, 4, cko1_sels, ARRAY_SIZE(cko1_sels)); |
411 | clk[cko2_sel] = imx_clk_mux("cko2_sel", base + 0x60, 16, 5, cko2_sels, ARRAY_SIZE(cko2_sels)); | 412 | clk[cko2_sel] = imx_clk_mux("cko2_sel", base + 0x60, 16, 5, cko2_sels, ARRAY_SIZE(cko2_sels)); |
413 | clk[cko] = imx_clk_mux("cko", base + 0x60, 8, 1, cko_sels, ARRAY_SIZE(cko_sels)); | ||
412 | 414 | ||
413 | /* name reg shift width busy: reg, shift parent_names num_parents */ | 415 | /* name reg shift width busy: reg, shift parent_names num_parents */ |
414 | clk[periph] = imx_clk_busy_mux("periph", base + 0x14, 25, 1, base + 0x48, 5, periph_sels, ARRAY_SIZE(periph_sels)); | 416 | clk[periph] = imx_clk_busy_mux("periph", base + 0x14, 25, 1, base + 0x48, 5, periph_sels, ARRAY_SIZE(periph_sels)); |