diff options
-rw-r--r-- | drivers/clk/rockchip/clk-rk3368.c | 97 |
1 files changed, 60 insertions, 37 deletions
diff --git a/drivers/clk/rockchip/clk-rk3368.c b/drivers/clk/rockchip/clk-rk3368.c index 31facd8426f7..3cc03689fec6 100644 --- a/drivers/clk/rockchip/clk-rk3368.c +++ b/drivers/clk/rockchip/clk-rk3368.c | |||
@@ -243,6 +243,34 @@ static struct rockchip_cpuclk_rate_table rk3368_cpuclkl_rates[] __initdata = { | |||
243 | RK3368_CPUCLKL_RATE( 312000000, 1, 1, 1), | 243 | RK3368_CPUCLKL_RATE( 312000000, 1, 1, 1), |
244 | }; | 244 | }; |
245 | 245 | ||
246 | static struct rockchip_clk_branch rk3368_i2s_8ch_fracmux __initdata = | ||
247 | MUX(0, "i2s_8ch_pre", mux_i2s_8ch_pre_p, CLK_SET_RATE_PARENT, | ||
248 | RK3368_CLKSEL_CON(27), 8, 2, MFLAGS); | ||
249 | |||
250 | static struct rockchip_clk_branch rk3368_spdif_8ch_fracmux __initdata = | ||
251 | MUX(0, "spdif_8ch_pre", mux_spdif_8ch_p, CLK_SET_RATE_PARENT, | ||
252 | RK3368_CLKSEL_CON(31), 8, 2, MFLAGS); | ||
253 | |||
254 | static struct rockchip_clk_branch rk3368_i2s_2ch_fracmux __initdata = | ||
255 | MUX(0, "i2s_2ch_pre", mux_i2s_2ch_p, CLK_SET_RATE_PARENT, | ||
256 | RK3368_CLKSEL_CON(53), 8, 2, MFLAGS); | ||
257 | |||
258 | static struct rockchip_clk_branch rk3368_uart0_fracmux __initdata = | ||
259 | MUX(SCLK_UART0, "sclk_uart0", mux_uart0_p, CLK_SET_RATE_PARENT, | ||
260 | RK3368_CLKSEL_CON(33), 8, 2, MFLAGS); | ||
261 | |||
262 | static struct rockchip_clk_branch rk3368_uart1_fracmux __initdata = | ||
263 | MUX(SCLK_UART1, "sclk_uart1", mux_uart1_p, CLK_SET_RATE_PARENT, | ||
264 | RK3368_CLKSEL_CON(35), 8, 2, MFLAGS); | ||
265 | |||
266 | static struct rockchip_clk_branch rk3368_uart3_fracmux __initdata = | ||
267 | MUX(SCLK_UART3, "sclk_uart3", mux_uart3_p, CLK_SET_RATE_PARENT, | ||
268 | RK3368_CLKSEL_CON(39), 8, 2, MFLAGS); | ||
269 | |||
270 | static struct rockchip_clk_branch rk3368_uart4_fracmux __initdata = | ||
271 | MUX(SCLK_UART4, "sclk_uart4", mux_uart4_p, CLK_SET_RATE_PARENT, | ||
272 | RK3368_CLKSEL_CON(41), 8, 2, MFLAGS); | ||
273 | |||
246 | static struct rockchip_clk_branch rk3368_clk_branches[] __initdata = { | 274 | static struct rockchip_clk_branch rk3368_clk_branches[] __initdata = { |
247 | /* | 275 | /* |
248 | * Clock-Architecture Diagram 2 | 276 | * Clock-Architecture Diagram 2 |
@@ -339,11 +367,10 @@ static struct rockchip_clk_branch rk3368_clk_branches[] __initdata = { | |||
339 | COMPOSITE(0, "i2s_8ch_src", mux_pll_src_cpll_gpll_p, 0, | 367 | COMPOSITE(0, "i2s_8ch_src", mux_pll_src_cpll_gpll_p, 0, |
340 | RK3368_CLKSEL_CON(27), 12, 1, MFLAGS, 0, 7, DFLAGS, | 368 | RK3368_CLKSEL_CON(27), 12, 1, MFLAGS, 0, 7, DFLAGS, |
341 | RK3368_CLKGATE_CON(6), 1, GFLAGS), | 369 | RK3368_CLKGATE_CON(6), 1, GFLAGS), |
342 | COMPOSITE_FRAC(0, "i2s_8ch_frac", "i2s_8ch_src", CLK_SET_RATE_PARENT, | 370 | COMPOSITE_FRACMUX(0, "i2s_8ch_frac", "i2s_8ch_src", CLK_SET_RATE_PARENT, |
343 | RK3368_CLKSEL_CON(28), 0, | 371 | RK3368_CLKSEL_CON(28), 0, |
344 | RK3368_CLKGATE_CON(6), 2, GFLAGS), | 372 | RK3368_CLKGATE_CON(6), 2, GFLAGS, |
345 | MUX(0, "i2s_8ch_pre", mux_i2s_8ch_pre_p, CLK_SET_RATE_PARENT, | 373 | &rk3368_i2s_8ch_fracmux), |
346 | RK3368_CLKSEL_CON(27), 8, 2, MFLAGS), | ||
347 | COMPOSITE_NODIV(SCLK_I2S_8CH_OUT, "i2s_8ch_clkout", mux_i2s_8ch_clkout_p, 0, | 374 | COMPOSITE_NODIV(SCLK_I2S_8CH_OUT, "i2s_8ch_clkout", mux_i2s_8ch_clkout_p, 0, |
348 | RK3368_CLKSEL_CON(27), 15, 1, MFLAGS, | 375 | RK3368_CLKSEL_CON(27), 15, 1, MFLAGS, |
349 | RK3368_CLKGATE_CON(6), 0, GFLAGS), | 376 | RK3368_CLKGATE_CON(6), 0, GFLAGS), |
@@ -352,21 +379,21 @@ static struct rockchip_clk_branch rk3368_clk_branches[] __initdata = { | |||
352 | COMPOSITE(0, "spdif_8ch_src", mux_pll_src_cpll_gpll_p, 0, | 379 | COMPOSITE(0, "spdif_8ch_src", mux_pll_src_cpll_gpll_p, 0, |
353 | RK3368_CLKSEL_CON(31), 12, 1, MFLAGS, 0, 7, DFLAGS, | 380 | RK3368_CLKSEL_CON(31), 12, 1, MFLAGS, 0, 7, DFLAGS, |
354 | RK3368_CLKGATE_CON(6), 4, GFLAGS), | 381 | RK3368_CLKGATE_CON(6), 4, GFLAGS), |
355 | COMPOSITE_FRAC(0, "spdif_8ch_frac", "spdif_8ch_src", CLK_SET_RATE_PARENT, | 382 | COMPOSITE_FRACMUX(0, "spdif_8ch_frac", "spdif_8ch_src", CLK_SET_RATE_PARENT, |
356 | RK3368_CLKSEL_CON(32), 0, | 383 | RK3368_CLKSEL_CON(32), 0, |
357 | RK3368_CLKGATE_CON(6), 5, GFLAGS), | 384 | RK3368_CLKGATE_CON(6), 5, GFLAGS, |
358 | COMPOSITE_NODIV(SCLK_SPDIF_8CH, "sclk_spdif_8ch", mux_spdif_8ch_p, CLK_SET_RATE_PARENT, | 385 | &rk3368_spdif_8ch_fracmux), |
359 | RK3368_CLKSEL_CON(31), 8, 2, MFLAGS, | 386 | GATE(SCLK_SPDIF_8CH, "sclk_spdif_8ch", "spdif_8ch_pre", CLK_SET_RATE_PARENT, |
360 | RK3368_CLKGATE_CON(6), 6, GFLAGS), | 387 | RK3368_CLKGATE_CON(6), 6, GFLAGS), |
361 | COMPOSITE(0, "i2s_2ch_src", mux_pll_src_cpll_gpll_p, 0, | 388 | COMPOSITE(0, "i2s_2ch_src", mux_pll_src_cpll_gpll_p, 0, |
362 | RK3368_CLKSEL_CON(53), 12, 1, MFLAGS, 0, 7, DFLAGS, | 389 | RK3368_CLKSEL_CON(53), 12, 1, MFLAGS, 0, 7, DFLAGS, |
363 | RK3368_CLKGATE_CON(5), 13, GFLAGS), | 390 | RK3368_CLKGATE_CON(5), 13, GFLAGS), |
364 | COMPOSITE_FRAC(0, "i2s_2ch_frac", "i2s_2ch_src", CLK_SET_RATE_PARENT, | 391 | COMPOSITE_FRACMUX(0, "i2s_2ch_frac", "i2s_2ch_src", CLK_SET_RATE_PARENT, |
365 | RK3368_CLKSEL_CON(54), 0, | 392 | RK3368_CLKSEL_CON(54), 0, |
366 | RK3368_CLKGATE_CON(5), 14, GFLAGS), | 393 | RK3368_CLKGATE_CON(5), 14, GFLAGS, |
367 | COMPOSITE_NODIV(SCLK_I2S_2CH, "sclk_i2s_2ch", mux_i2s_2ch_p, CLK_SET_RATE_PARENT, | 394 | &rk3368_i2s_2ch_fracmux), |
368 | RK3368_CLKSEL_CON(53), 8, 2, MFLAGS, | 395 | GATE(SCLK_I2S_2CH, "sclk_i2s_2ch", "i2s_2ch_pre", CLK_SET_RATE_PARENT, |
369 | RK3368_CLKGATE_CON(5), 15, GFLAGS), | 396 | RK3368_CLKGATE_CON(5), 15, GFLAGS), |
370 | 397 | ||
371 | COMPOSITE(0, "sclk_tsp", mux_pll_src_cpll_gpll_npll_p, 0, | 398 | COMPOSITE(0, "sclk_tsp", mux_pll_src_cpll_gpll_npll_p, 0, |
372 | RK3368_CLKSEL_CON(46), 6, 2, MFLAGS, 0, 5, DFLAGS, | 399 | RK3368_CLKSEL_CON(46), 6, 2, MFLAGS, 0, 5, DFLAGS, |
@@ -562,38 +589,34 @@ static struct rockchip_clk_branch rk3368_clk_branches[] __initdata = { | |||
562 | COMPOSITE(0, "uart0_src", mux_pll_src_cpll_gpll_usb_usb_p, 0, | 589 | COMPOSITE(0, "uart0_src", mux_pll_src_cpll_gpll_usb_usb_p, 0, |
563 | RK3368_CLKSEL_CON(33), 12, 2, MFLAGS, 0, 7, DFLAGS, | 590 | RK3368_CLKSEL_CON(33), 12, 2, MFLAGS, 0, 7, DFLAGS, |
564 | RK3368_CLKGATE_CON(2), 0, GFLAGS), | 591 | RK3368_CLKGATE_CON(2), 0, GFLAGS), |
565 | COMPOSITE_FRAC(0, "uart0_frac", "uart0_src", CLK_SET_RATE_PARENT, | 592 | COMPOSITE_FRACMUX(0, "uart0_frac", "uart0_src", CLK_SET_RATE_PARENT, |
566 | RK3368_CLKSEL_CON(34), 0, | 593 | RK3368_CLKSEL_CON(34), 0, |
567 | RK3368_CLKGATE_CON(2), 1, GFLAGS), | 594 | RK3368_CLKGATE_CON(2), 1, GFLAGS, |
568 | MUX(SCLK_UART0, "sclk_uart0", mux_uart0_p, CLK_SET_RATE_PARENT, | 595 | &rk3368_uart0_fracmux), |
569 | RK3368_CLKSEL_CON(33), 8, 2, MFLAGS), | ||
570 | 596 | ||
571 | COMPOSITE_NOMUX(0, "uart1_src", "uart_src", 0, | 597 | COMPOSITE_NOMUX(0, "uart1_src", "uart_src", 0, |
572 | RK3368_CLKSEL_CON(35), 0, 7, DFLAGS, | 598 | RK3368_CLKSEL_CON(35), 0, 7, DFLAGS, |
573 | RK3368_CLKGATE_CON(2), 2, GFLAGS), | 599 | RK3368_CLKGATE_CON(2), 2, GFLAGS), |
574 | COMPOSITE_FRAC(0, "uart1_frac", "uart1_src", CLK_SET_RATE_PARENT, | 600 | COMPOSITE_FRACMUX(0, "uart1_frac", "uart1_src", CLK_SET_RATE_PARENT, |
575 | RK3368_CLKSEL_CON(36), 0, | 601 | RK3368_CLKSEL_CON(36), 0, |
576 | RK3368_CLKGATE_CON(2), 3, GFLAGS), | 602 | RK3368_CLKGATE_CON(2), 3, GFLAGS, |
577 | MUX(SCLK_UART1, "sclk_uart1", mux_uart1_p, CLK_SET_RATE_PARENT, | 603 | &rk3368_uart1_fracmux), |
578 | RK3368_CLKSEL_CON(35), 8, 2, MFLAGS), | ||
579 | 604 | ||
580 | COMPOSITE_NOMUX(0, "uart3_src", "uart_src", 0, | 605 | COMPOSITE_NOMUX(0, "uart3_src", "uart_src", 0, |
581 | RK3368_CLKSEL_CON(39), 0, 7, DFLAGS, | 606 | RK3368_CLKSEL_CON(39), 0, 7, DFLAGS, |
582 | RK3368_CLKGATE_CON(2), 6, GFLAGS), | 607 | RK3368_CLKGATE_CON(2), 6, GFLAGS), |
583 | COMPOSITE_FRAC(0, "uart3_frac", "uart3_src", CLK_SET_RATE_PARENT, | 608 | COMPOSITE_FRACMUX(0, "uart3_frac", "uart3_src", CLK_SET_RATE_PARENT, |
584 | RK3368_CLKSEL_CON(40), 0, | 609 | RK3368_CLKSEL_CON(40), 0, |
585 | RK3368_CLKGATE_CON(2), 7, GFLAGS), | 610 | RK3368_CLKGATE_CON(2), 7, GFLAGS, |
586 | MUX(SCLK_UART3, "sclk_uart3", mux_uart3_p, CLK_SET_RATE_PARENT, | 611 | &rk3368_uart3_fracmux), |
587 | RK3368_CLKSEL_CON(39), 8, 2, MFLAGS), | ||
588 | 612 | ||
589 | COMPOSITE_NOMUX(0, "uart4_src", "uart_src", 0, | 613 | COMPOSITE_NOMUX(0, "uart4_src", "uart_src", 0, |
590 | RK3368_CLKSEL_CON(41), 0, 7, DFLAGS, | 614 | RK3368_CLKSEL_CON(41), 0, 7, DFLAGS, |
591 | RK3368_CLKGATE_CON(2), 8, GFLAGS), | 615 | RK3368_CLKGATE_CON(2), 8, GFLAGS), |
592 | COMPOSITE_FRAC(0, "uart4_frac", "uart4_src", CLK_SET_RATE_PARENT, | 616 | COMPOSITE_FRACMUX(0, "uart4_frac", "uart4_src", CLK_SET_RATE_PARENT, |
593 | RK3368_CLKSEL_CON(42), 0, | 617 | RK3368_CLKSEL_CON(42), 0, |
594 | RK3368_CLKGATE_CON(2), 9, GFLAGS), | 618 | RK3368_CLKGATE_CON(2), 9, GFLAGS, |
595 | MUX(SCLK_UART4, "sclk_uart4", mux_uart4_p, CLK_SET_RATE_PARENT, | 619 | &rk3368_uart4_fracmux), |
596 | RK3368_CLKSEL_CON(41), 8, 2, MFLAGS), | ||
597 | 620 | ||
598 | COMPOSITE(0, "mac_pll_src", mux_pll_src_npll_cpll_gpll_p, 0, | 621 | COMPOSITE(0, "mac_pll_src", mux_pll_src_npll_cpll_gpll_p, 0, |
599 | RK3368_CLKSEL_CON(43), 6, 2, MFLAGS, 0, 5, DFLAGS, | 622 | RK3368_CLKSEL_CON(43), 6, 2, MFLAGS, 0, 5, DFLAGS, |