ARM: mx31: Replace clk_register_clkdev with clock DT lookup
Similarly as it was done for mx6q, use a DT lookup in order to make maintainance task for the clock devices easier. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:

committed by
Sascha Hauer

parent
8a1a954038
commit
ef0e4a606f
@@ -46,11 +46,13 @@ enum mx31_clks {
|
||||
};
|
||||
|
||||
static struct clk *clk[clk_max];
|
||||
static struct clk_onecell_data clk_data;
|
||||
|
||||
int __init mx31_clocks_init(unsigned long fref)
|
||||
{
|
||||
void __iomem *base = MX31_IO_ADDRESS(MX31_CCM_BASE_ADDR);
|
||||
int i;
|
||||
struct device_node *np;
|
||||
|
||||
clk[dummy] = imx_clk_fixed("dummy", 0);
|
||||
clk[ckih] = imx_clk_fixed("ckih", fref);
|
||||
@@ -117,6 +119,14 @@ int __init mx31_clocks_init(unsigned long fref)
|
||||
pr_err("imx31 clk %d: register failed with %ld\n",
|
||||
i, PTR_ERR(clk[i]));
|
||||
|
||||
np = of_find_compatible_node(NULL, NULL, "fsl,imx31-ccm");
|
||||
|
||||
if (np) {
|
||||
clk_data.clks = clk;
|
||||
clk_data.clk_num = ARRAY_SIZE(clk);
|
||||
of_clk_add_provider(np, of_clk_src_onecell_get, &clk_data);
|
||||
}
|
||||
|
||||
clk_register_clkdev(clk[gpt_gate], "per", "imx-gpt.0");
|
||||
clk_register_clkdev(clk[ipg], "ipg", "imx-gpt.0");
|
||||
clk_register_clkdev(clk[cspi1_gate], NULL, "imx31-cspi.0");
|
||||
|
@@ -18,24 +18,9 @@
|
||||
#include "common.h"
|
||||
#include "mx31.h"
|
||||
|
||||
static const struct of_dev_auxdata imx31_auxdata_lookup[] __initconst = {
|
||||
OF_DEV_AUXDATA("fsl,imx31-uart", MX31_UART1_BASE_ADDR,
|
||||
"imx21-uart.0", NULL),
|
||||
OF_DEV_AUXDATA("fsl,imx31-uart", MX31_UART2_BASE_ADDR,
|
||||
"imx21-uart.1", NULL),
|
||||
OF_DEV_AUXDATA("fsl,imx31-uart", MX31_UART3_BASE_ADDR,
|
||||
"imx21-uart.2", NULL),
|
||||
OF_DEV_AUXDATA("fsl,imx31-uart", MX31_UART4_BASE_ADDR,
|
||||
"imx21-uart.3", NULL),
|
||||
OF_DEV_AUXDATA("fsl,imx31-uart", MX31_UART5_BASE_ADDR,
|
||||
"imx21-uart.4", NULL),
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
|
||||
static void __init imx31_dt_init(void)
|
||||
{
|
||||
of_platform_populate(NULL, of_default_bus_match_table,
|
||||
imx31_auxdata_lookup, NULL);
|
||||
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
|
||||
}
|
||||
|
||||
static void __init imx31_timer_init(void)
|
||||
|
Reference in New Issue
Block a user