Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: imx53: Add clocks configuration

Add clocks configuration for CSI, FIRI and IEEE1588.

Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk>
Acked-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>

authored by

Kalle Kankare and committed by
Stephen Boyd
377d6479 7f4d3b52

+34 -1
+20
drivers/clk/imx/clk-imx51-imx53.c
··· 126 126 static const char *mx51_spdif1_com_sel[] = { "spdif1_podf", "ssi2_root_gate", }; 127 127 static const char *step_sels[] = { "lp_apm", }; 128 128 static const char *cpu_podf_sels[] = { "pll1_sw", "step_sel" }; 129 + static const char *ieee1588_sels[] = { "pll3_sw", "pll4_sw", "dummy" /* usbphy2_clk */, "dummy" /* fec_phy_clk */ }; 129 130 130 131 static struct clk *clk[IMX5_CLK_END]; 131 132 static struct clk_onecell_data clk_data; ··· 543 542 clk[IMX5_CLK_CAN2_IPG_GATE] = imx_clk_gate2("can2_ipg_gate", "ipg", MXC_CCM_CCGR4, 6); 544 543 clk[IMX5_CLK_I2C3_GATE] = imx_clk_gate2("i2c3_gate", "per_root", MXC_CCM_CCGR1, 22); 545 544 clk[IMX5_CLK_SATA_GATE] = imx_clk_gate2("sata_gate", "ipg", MXC_CCM_CCGR4, 2); 545 + 546 + clk[IMX5_CLK_FIRI_SEL] = imx_clk_mux("firi_sel", MXC_CCM_CSCMR2, 12, 2, 547 + standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 548 + clk[IMX5_CLK_FIRI_PRED] = imx_clk_divider("firi_pred", "firi_sel", MXC_CCM_CSCDR3, 6, 3); 549 + clk[IMX5_CLK_FIRI_PODF] = imx_clk_divider("firi_podf", "firi_pred", MXC_CCM_CSCDR3, 0, 6); 550 + clk[IMX5_CLK_FIRI_SERIAL_GATE] = imx_clk_gate2("firi_serial_gate", "firi_podf", MXC_CCM_CCGR1, 28); 551 + clk[IMX5_CLK_FIRI_IPG_GATE] = imx_clk_gate2("firi_ipg_gate", "ipg", MXC_CCM_CCGR1, 26); 552 + 553 + clk[IMX5_CLK_CSI0_MCLK1_SEL] = imx_clk_mux("csi0_mclk1_sel", MXC_CCM_CSCMR2, 22, 2, 554 + standard_pll_sel, ARRAY_SIZE(standard_pll_sel)); 555 + clk[IMX5_CLK_CSI0_MCLK1_PRED] = imx_clk_divider("csi0_mclk1_pred", "csi0_mclk1_sel", MXC_CCM_CSCDR4, 6, 3); 556 + clk[IMX5_CLK_CSI0_MCLK1_PODF] = imx_clk_divider("csi0_mclk1_podf", "csi0_mclk1_pred", MXC_CCM_CSCDR4, 0, 6); 557 + clk[IMX5_CLK_CSI0_MCLK1_GATE] = imx_clk_gate2("csi0_mclk1_serial_gate", "csi0_mclk1_podf", MXC_CCM_CCGR6, 4); 558 + 559 + clk[IMX5_CLK_IEEE1588_SEL] = imx_clk_mux("ieee1588_sel", MXC_CCM_CSCMR2, 14, 2, 560 + ieee1588_sels, ARRAY_SIZE(ieee1588_sels)); 561 + clk[IMX5_CLK_IEEE1588_PRED] = imx_clk_divider("ieee1588_pred", "ieee1588_sel", MXC_CCM_CSCDR2, 6, 3); 562 + clk[IMX5_CLK_IEEE1588_PODF] = imx_clk_divider("ieee1588_podf", "ieee1588_pred", MXC_CCM_CSCDR2, 0, 6); 563 + clk[IMX5_CLK_IEEE1588_GATE] = imx_clk_gate2("ieee1588_serial_gate", "ieee1588_podf", MXC_CCM_CCGR7, 6); 546 564 547 565 clk[IMX5_CLK_CKO1_SEL] = imx_clk_mux("cko1_sel", MXC_CCM_CCOSR, 0, 4, 548 566 mx53_cko1_sel, ARRAY_SIZE(mx53_cko1_sel));
+14 -1
include/dt-bindings/clock/imx5-clock.h
··· 201 201 #define IMX5_CLK_STEP_SEL 189 202 202 #define IMX5_CLK_CPU_PODF_SEL 190 203 203 #define IMX5_CLK_ARM 191 204 - #define IMX5_CLK_END 192 204 + #define IMX5_CLK_FIRI_PRED 192 205 + #define IMX5_CLK_FIRI_SEL 193 206 + #define IMX5_CLK_FIRI_PODF 194 207 + #define IMX5_CLK_FIRI_SERIAL_GATE 195 208 + #define IMX5_CLK_FIRI_IPG_GATE 196 209 + #define IMX5_CLK_CSI0_MCLK1_PRED 197 210 + #define IMX5_CLK_CSI0_MCLK1_SEL 198 211 + #define IMX5_CLK_CSI0_MCLK1_PODF 199 212 + #define IMX5_CLK_CSI0_MCLK1_GATE 200 213 + #define IMX5_CLK_IEEE1588_PRED 201 214 + #define IMX5_CLK_IEEE1588_SEL 202 215 + #define IMX5_CLK_IEEE1588_PODF 203 216 + #define IMX5_CLK_IEEE1588_GATE 204 217 + #define IMX5_CLK_END 205 205 218 206 219 #endif /* __DT_BINDINGS_CLOCK_IMX5_H */