clk: imx: keep uart clock on during system boot
authorJacky Bai <ping.bai@nxp.com>
Thu, 25 Apr 2019 08:10:08 +0000 (08:10 +0000)
committerStephen Boyd <sboyd@kernel.org>
Mon, 29 Apr 2019 23:02:01 +0000 (16:02 -0700)
Keep uart clocks enabled when earlyprintk or
earlycon is active.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/imx/clk-imx6sll.c

index 9def76d..7eea448 100644 (file)
@@ -76,6 +76,20 @@ static u32 share_count_ssi1;
 static u32 share_count_ssi2;
 static u32 share_count_ssi3;
 
+static struct clk ** const uart_clks[] __initconst = {
+       &clks[IMX6SLL_CLK_UART1_IPG],
+       &clks[IMX6SLL_CLK_UART1_SERIAL],
+       &clks[IMX6SLL_CLK_UART2_IPG],
+       &clks[IMX6SLL_CLK_UART2_SERIAL],
+       &clks[IMX6SLL_CLK_UART3_IPG],
+       &clks[IMX6SLL_CLK_UART3_SERIAL],
+       &clks[IMX6SLL_CLK_UART4_IPG],
+       &clks[IMX6SLL_CLK_UART4_SERIAL],
+       &clks[IMX6SLL_CLK_UART5_IPG],
+       &clks[IMX6SLL_CLK_UART5_SERIAL],
+       NULL
+};
+
 static void __init imx6sll_clocks_init(struct device_node *ccm_node)
 {
        struct device_node *np;
@@ -334,6 +348,8 @@ static void __init imx6sll_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);
 
+       imx_register_uart_clocks(uart_clks);
+
        /* Lower the AHB clock rate before changing the clock source. */
        clk_set_rate(clks[IMX6SLL_CLK_AHB], 99000000);