|
|
|
@ -208,8 +208,8 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) |
|
|
|
|
* the "output_enable" bit as a gate, even though it's really just |
|
|
|
|
* enabling clock output. |
|
|
|
|
*/ |
|
|
|
|
clk[lvds1_gate] = imx_clk_gate("lvds1_gate", "dummy", base + 0x160, 10); |
|
|
|
|
clk[lvds2_gate] = imx_clk_gate("lvds2_gate", "dummy", base + 0x160, 11); |
|
|
|
|
clk[lvds1_gate] = imx_clk_gate("lvds1_gate", "lvds1_sel", base + 0x160, 10); |
|
|
|
|
clk[lvds2_gate] = imx_clk_gate("lvds2_gate", "lvds2_sel", base + 0x160, 11); |
|
|
|
|
|
|
|
|
|
/* name parent_name reg idx */ |
|
|
|
|
clk[pll2_pfd0_352m] = imx_clk_pfd("pll2_pfd0_352m", "pll2_bus", base + 0x100, 0); |
|
|
|
@ -258,14 +258,14 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) |
|
|
|
|
clk[ipu2_sel] = imx_clk_mux("ipu2_sel", base + 0x3c, 14, 2, ipu_sels, ARRAY_SIZE(ipu_sels)); |
|
|
|
|
clk[ldb_di0_sel] = imx_clk_mux_flags("ldb_di0_sel", base + 0x2c, 9, 3, ldb_di_sels, ARRAY_SIZE(ldb_di_sels), CLK_SET_RATE_PARENT); |
|
|
|
|
clk[ldb_di1_sel] = imx_clk_mux_flags("ldb_di1_sel", base + 0x2c, 12, 3, ldb_di_sels, ARRAY_SIZE(ldb_di_sels), CLK_SET_RATE_PARENT); |
|
|
|
|
clk[ipu1_di0_pre_sel] = imx_clk_mux("ipu1_di0_pre_sel", base + 0x34, 6, 3, ipu_di_pre_sels, ARRAY_SIZE(ipu_di_pre_sels)); |
|
|
|
|
clk[ipu1_di1_pre_sel] = imx_clk_mux("ipu1_di1_pre_sel", base + 0x34, 15, 3, ipu_di_pre_sels, ARRAY_SIZE(ipu_di_pre_sels)); |
|
|
|
|
clk[ipu2_di0_pre_sel] = imx_clk_mux("ipu2_di0_pre_sel", base + 0x38, 6, 3, ipu_di_pre_sels, ARRAY_SIZE(ipu_di_pre_sels)); |
|
|
|
|
clk[ipu2_di1_pre_sel] = imx_clk_mux("ipu2_di1_pre_sel", base + 0x38, 15, 3, ipu_di_pre_sels, ARRAY_SIZE(ipu_di_pre_sels)); |
|
|
|
|
clk[ipu1_di0_sel] = imx_clk_mux("ipu1_di0_sel", base + 0x34, 0, 3, ipu1_di0_sels, ARRAY_SIZE(ipu1_di0_sels)); |
|
|
|
|
clk[ipu1_di1_sel] = imx_clk_mux("ipu1_di1_sel", base + 0x34, 9, 3, ipu1_di1_sels, ARRAY_SIZE(ipu1_di1_sels)); |
|
|
|
|
clk[ipu2_di0_sel] = imx_clk_mux("ipu2_di0_sel", base + 0x38, 0, 3, ipu2_di0_sels, ARRAY_SIZE(ipu2_di0_sels)); |
|
|
|
|
clk[ipu2_di1_sel] = imx_clk_mux("ipu2_di1_sel", base + 0x38, 9, 3, ipu2_di1_sels, ARRAY_SIZE(ipu2_di1_sels)); |
|
|
|
|
clk[ipu1_di0_pre_sel] = imx_clk_mux_flags("ipu1_di0_pre_sel", base + 0x34, 6, 3, ipu_di_pre_sels, ARRAY_SIZE(ipu_di_pre_sels), CLK_SET_RATE_PARENT); |
|
|
|
|
clk[ipu1_di1_pre_sel] = imx_clk_mux_flags("ipu1_di1_pre_sel", base + 0x34, 15, 3, ipu_di_pre_sels, ARRAY_SIZE(ipu_di_pre_sels), CLK_SET_RATE_PARENT); |
|
|
|
|
clk[ipu2_di0_pre_sel] = imx_clk_mux_flags("ipu2_di0_pre_sel", base + 0x38, 6, 3, ipu_di_pre_sels, ARRAY_SIZE(ipu_di_pre_sels), CLK_SET_RATE_PARENT); |
|
|
|
|
clk[ipu2_di1_pre_sel] = imx_clk_mux_flags("ipu2_di1_pre_sel", base + 0x38, 15, 3, ipu_di_pre_sels, ARRAY_SIZE(ipu_di_pre_sels), CLK_SET_RATE_PARENT); |
|
|
|
|
clk[ipu1_di0_sel] = imx_clk_mux_flags("ipu1_di0_sel", base + 0x34, 0, 3, ipu1_di0_sels, ARRAY_SIZE(ipu1_di0_sels), CLK_SET_RATE_PARENT); |
|
|
|
|
clk[ipu1_di1_sel] = imx_clk_mux_flags("ipu1_di1_sel", base + 0x34, 9, 3, ipu1_di1_sels, ARRAY_SIZE(ipu1_di1_sels), CLK_SET_RATE_PARENT); |
|
|
|
|
clk[ipu2_di0_sel] = imx_clk_mux_flags("ipu2_di0_sel", base + 0x38, 0, 3, ipu2_di0_sels, ARRAY_SIZE(ipu2_di0_sels), CLK_SET_RATE_PARENT); |
|
|
|
|
clk[ipu2_di1_sel] = imx_clk_mux_flags("ipu2_di1_sel", base + 0x38, 9, 3, ipu2_di1_sels, ARRAY_SIZE(ipu2_di1_sels), CLK_SET_RATE_PARENT); |
|
|
|
|
clk[hsi_tx_sel] = imx_clk_mux("hsi_tx_sel", base + 0x30, 28, 1, hsi_tx_sels, ARRAY_SIZE(hsi_tx_sels)); |
|
|
|
|
clk[pcie_axi_sel] = imx_clk_mux("pcie_axi_sel", base + 0x18, 10, 1, pcie_axi_sels, ARRAY_SIZE(pcie_axi_sels)); |
|
|
|
|
clk[ssi1_sel] = imx_clk_fixup_mux("ssi1_sel", base + 0x1c, 10, 2, ssi_sels, ARRAY_SIZE(ssi_sels), imx_cscmr1_fixup); |
|
|
|
@ -445,6 +445,15 @@ static void __init imx6q_clocks_init(struct device_node *ccm_node) |
|
|
|
|
clk_set_parent(clk[ldb_di1_sel], clk[pll5_video_div]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
clk_set_parent(clk[ipu1_di0_pre_sel], clk[pll5_video_div]); |
|
|
|
|
clk_set_parent(clk[ipu1_di1_pre_sel], clk[pll5_video_div]); |
|
|
|
|
clk_set_parent(clk[ipu2_di0_pre_sel], clk[pll5_video_div]); |
|
|
|
|
clk_set_parent(clk[ipu2_di1_pre_sel], clk[pll5_video_div]); |
|
|
|
|
clk_set_parent(clk[ipu1_di0_sel], clk[ipu1_di0_pre]); |
|
|
|
|
clk_set_parent(clk[ipu1_di1_sel], clk[ipu1_di1_pre]); |
|
|
|
|
clk_set_parent(clk[ipu2_di0_sel], clk[ipu2_di0_pre]); |
|
|
|
|
clk_set_parent(clk[ipu2_di1_sel], clk[ipu2_di1_pre]); |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* The gpmi needs 100MHz frequency in the EDO/Sync mode, |
|
|
|
|
* We can not get the 100MHz from the pll2_pfd0_352m. |
|
|
|
|