[PATCH] clk: imx: increase AXI clock rate to 264MHz for i.MX6UL
Shawn Guo
shawnguo at kernel.org
Sat Sep 5 21:28:27 PDT 2015
On Thu, Aug 06, 2015 at 10:13:56PM +0800, Anson Huang wrote:
> On i.MX6UL, AXI clock rate's design target is 264MHz, but by default
> it is only set to 198MHz which is NOT good enough for performance,
> this patch increases AXI clock rate from 198MHz to 264MHz to meet
> the design target, this is done by switching its parent clock
> "periph" from 396MHz PFD to 528MHz PLL.
>
> Signed-off-by: Anson Huang <b20788 at freescale.com>
Applied, thanks.
But please remember to copy not only linux-clk list but also clk maintainers Michael
and Stephen for future i.MX clock patches.
Shawn
> ---
> drivers/clk/imx/clk-imx6ul.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/drivers/clk/imx/clk-imx6ul.c b/drivers/clk/imx/clk-imx6ul.c
> index aaa3665..01718d0 100644
> --- a/drivers/clk/imx/clk-imx6ul.c
> +++ b/drivers/clk/imx/clk-imx6ul.c
> @@ -407,6 +407,24 @@ static void __init imx6ul_clocks_init(struct device_node *ccm_node)
> clk_data.clk_num = ARRAY_SIZE(clks);
> of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
>
> + /*
> + * Lower the AHB clock rate before changing the parent clock source,
> + * as AHB clock rate can NOT be higher than 133MHz, but its parent
> + * will be switched from 396MHz PFD to 528MHz PLL in order to increase
> + * AXI clock rate, so we need to lower AHB rate first to make sure at
> + * any time, AHB rate is <= 133MHz.
> + */
> + clk_set_rate(clks[IMX6UL_CLK_AHB], 99000000);
> +
> + /* Change periph_pre clock to pll2_bus to adjust AXI rate to 264MHz */
> + clk_set_parent(clks[IMX6UL_CLK_PERIPH_CLK2_SEL], clks[IMX6UL_CLK_PLL3_USB_OTG]);
> + clk_set_parent(clks[IMX6UL_CLK_PERIPH], clks[IMX6UL_CLK_PERIPH_CLK2]);
> + clk_set_parent(clks[IMX6UL_CLK_PERIPH_PRE], clks[IMX6UL_CLK_PLL2_BUS]);
> + clk_set_parent(clks[IMX6UL_CLK_PERIPH], clks[IMX6UL_CLK_PERIPH_PRE]);
> +
> + /* Make sure AHB rate is 132MHz */
> + clk_set_rate(clks[IMX6UL_CLK_AHB], 132000000);
> +
> /* set perclk to from OSC */
> clk_set_parent(clks[IMX6UL_CLK_PERCLK_SEL], clks[IMX6UL_CLK_OSC]);
>
> --
> 1.9.1
>
More information about the linux-arm-kernel
mailing list