diff options
author | Lucas Stach <l.stach@pengutronix.de> | 2015-09-21 12:53:58 -0400 |
---|---|---|
committer | Shawn Guo <shawnguo@kernel.org> | 2015-09-26 00:58:47 -0400 |
commit | 517c7f9302efdde86fe8ebca80bc9ef826fa62e5 (patch) | |
tree | 519fda3c798ce8fb39f3760fdae535a3e7c69f3b | |
parent | 55adc61c568af99419be1dc0412f8eae019c71f2 (diff) |
clk: imx25: 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>
-rw-r--r-- | drivers/clk/imx/clk-imx25.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/clk/imx/clk-imx25.c b/drivers/clk/imx/clk-imx25.c index ec1a4c1dacf1..c4c141cab444 100644 --- a/drivers/clk/imx/clk-imx25.c +++ b/drivers/clk/imx/clk-imx25.c | |||
@@ -86,6 +86,16 @@ enum mx25_clks { | |||
86 | 86 | ||
87 | static struct clk *clk[clk_max]; | 87 | static struct clk *clk[clk_max]; |
88 | 88 | ||
89 | static struct clk ** const uart_clks[] __initconst = { | ||
90 | &clk[uart_ipg_per], | ||
91 | &clk[uart1_ipg], | ||
92 | &clk[uart2_ipg], | ||
93 | &clk[uart3_ipg], | ||
94 | &clk[uart4_ipg], | ||
95 | &clk[uart5_ipg], | ||
96 | NULL | ||
97 | }; | ||
98 | |||
89 | static int __init __mx25_clocks_init(unsigned long osc_rate, | 99 | static int __init __mx25_clocks_init(unsigned long osc_rate, |
90 | void __iomem *ccm_base) | 100 | void __iomem *ccm_base) |
91 | { | 101 | { |
@@ -233,6 +243,8 @@ static int __init __mx25_clocks_init(unsigned long osc_rate, | |||
233 | */ | 243 | */ |
234 | clk_set_parent(clk[cko_sel], clk[ipg]); | 244 | clk_set_parent(clk[cko_sel], clk[ipg]); |
235 | 245 | ||
246 | imx_register_uart_clocks(uart_clks); | ||
247 | |||
236 | return 0; | 248 | return 0; |
237 | } | 249 | } |
238 | 250 | ||