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

clk: imx5: retain early UART clocks during kernel init

Make sure to keep UART clocks enabled during kernel init if
earlyprintk or earlycon are active.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>

authored by

Lucas Stach and committed by
Shawn Guo
89981a6f 57d5a4c3

+16
+16
drivers/clk/imx/clk-imx51-imx53.c
··· 130 130 static struct clk *clk[IMX5_CLK_END]; 131 131 static struct clk_onecell_data clk_data; 132 132 133 + static struct clk ** const uart_clks[] __initconst = { 134 + &clk[IMX5_CLK_UART1_IPG_GATE], 135 + &clk[IMX5_CLK_UART1_PER_GATE], 136 + &clk[IMX5_CLK_UART2_IPG_GATE], 137 + &clk[IMX5_CLK_UART2_PER_GATE], 138 + &clk[IMX5_CLK_UART3_IPG_GATE], 139 + &clk[IMX5_CLK_UART3_PER_GATE], 140 + &clk[IMX5_CLK_UART4_IPG_GATE], 141 + &clk[IMX5_CLK_UART4_PER_GATE], 142 + &clk[IMX5_CLK_UART5_IPG_GATE], 143 + &clk[IMX5_CLK_UART5_PER_GATE], 144 + NULL 145 + }; 146 + 133 147 static void __init mx5_clocks_common_init(void __iomem *ccm_base) 134 148 { 135 149 clk[IMX5_CLK_DUMMY] = imx_clk_fixed("dummy", 0); ··· 324 310 clk_prepare_enable(clk[IMX5_CLK_TMAX1]); 325 311 clk_prepare_enable(clk[IMX5_CLK_TMAX2]); /* esdhc2, fec */ 326 312 clk_prepare_enable(clk[IMX5_CLK_TMAX3]); /* esdhc1, esdhc4 */ 313 + 314 + imx_register_uart_clocks(uart_clks); 327 315 } 328 316 329 317 static void __init mx50_clocks_init(struct device_node *np)