ARM i.MX: remove now unnecessary argument from mxc_timer_init
As the timer code now does a clk_get to get its clock we don't need the struct clk argument anymore. This also changes the alternative EPIT timer to do a clk_get. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
1f152b48ea
commit
2cfb45188a
|
@ -108,8 +108,7 @@ int __init mx1_clocks_init(unsigned long fref)
|
||||||
clk_register_clkdev(clk[clk32], NULL, "mxc_rtc.0");
|
clk_register_clkdev(clk[clk32], NULL, "mxc_rtc.0");
|
||||||
clk_register_clkdev(clk[clko], "clko", NULL);
|
clk_register_clkdev(clk[clko], "clko", NULL);
|
||||||
|
|
||||||
mxc_timer_init(NULL, MX1_IO_ADDRESS(MX1_TIM1_BASE_ADDR),
|
mxc_timer_init(MX1_IO_ADDRESS(MX1_TIM1_BASE_ADDR), MX1_TIM1_INT);
|
||||||
MX1_TIM1_INT);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,7 +180,7 @@ int __init mx21_clocks_init(unsigned long lref, unsigned long href)
|
||||||
clk_register_clkdev(clk[sdhc1_ipg_gate], "sdhc1", NULL);
|
clk_register_clkdev(clk[sdhc1_ipg_gate], "sdhc1", NULL);
|
||||||
clk_register_clkdev(clk[sdhc2_ipg_gate], "sdhc2", NULL);
|
clk_register_clkdev(clk[sdhc2_ipg_gate], "sdhc2", NULL);
|
||||||
|
|
||||||
mxc_timer_init(NULL, MX21_IO_ADDRESS(MX21_GPT1_BASE_ADDR),
|
mxc_timer_init(MX21_IO_ADDRESS(MX21_GPT1_BASE_ADDR), MX21_INT_GPT1);
|
||||||
MX21_INT_GPT1);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -243,6 +243,6 @@ int __init mx25_clocks_init(void)
|
||||||
clk_register_clkdev(clk[sdma_ahb], "ahb", "imx35-sdma");
|
clk_register_clkdev(clk[sdma_ahb], "ahb", "imx35-sdma");
|
||||||
clk_register_clkdev(clk[iim_ipg], "iim", NULL);
|
clk_register_clkdev(clk[iim_ipg], "iim", NULL);
|
||||||
|
|
||||||
mxc_timer_init(NULL, MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54);
|
mxc_timer_init(MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -263,8 +263,7 @@ int __init mx27_clocks_init(unsigned long fref)
|
||||||
clk_register_clkdev(clk[ssi1_baud_gate], "bitrate" , "imx-ssi.0");
|
clk_register_clkdev(clk[ssi1_baud_gate], "bitrate" , "imx-ssi.0");
|
||||||
clk_register_clkdev(clk[ssi2_baud_gate], "bitrate" , "imx-ssi.1");
|
clk_register_clkdev(clk[ssi2_baud_gate], "bitrate" , "imx-ssi.1");
|
||||||
|
|
||||||
mxc_timer_init(NULL, MX27_IO_ADDRESS(MX27_GPT1_BASE_ADDR),
|
mxc_timer_init(MX27_IO_ADDRESS(MX27_GPT1_BASE_ADDR), MX27_INT_GPT1);
|
||||||
MX27_INT_GPT1);
|
|
||||||
|
|
||||||
clk_prepare_enable(clk[emi_ahb_gate]);
|
clk_prepare_enable(clk[emi_ahb_gate]);
|
||||||
|
|
||||||
|
|
|
@ -175,8 +175,7 @@ int __init mx31_clocks_init(unsigned long fref)
|
||||||
mx31_revision();
|
mx31_revision();
|
||||||
clk_disable_unprepare(clk[iim_gate]);
|
clk_disable_unprepare(clk[iim_gate]);
|
||||||
|
|
||||||
mxc_timer_init(NULL, MX31_IO_ADDRESS(MX31_GPT1_BASE_ADDR),
|
mxc_timer_init(MX31_IO_ADDRESS(MX31_GPT1_BASE_ADDR), MX31_INT_GPT);
|
||||||
MX31_INT_GPT);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -267,11 +267,9 @@ int __init mx35_clocks_init()
|
||||||
imx_print_silicon_rev("i.MX35", mx35_revision());
|
imx_print_silicon_rev("i.MX35", mx35_revision());
|
||||||
|
|
||||||
#ifdef CONFIG_MXC_USE_EPIT
|
#ifdef CONFIG_MXC_USE_EPIT
|
||||||
epit_timer_init(&epit1_clk,
|
epit_timer_init(MX35_IO_ADDRESS(MX35_EPIT1_BASE_ADDR), MX35_INT_EPIT1);
|
||||||
MX35_IO_ADDRESS(MX35_EPIT1_BASE_ADDR), MX35_INT_EPIT1);
|
|
||||||
#else
|
#else
|
||||||
mxc_timer_init(NULL, MX35_IO_ADDRESS(MX35_GPT1_BASE_ADDR),
|
mxc_timer_init(MX35_IO_ADDRESS(MX35_GPT1_BASE_ADDR), MX35_INT_GPT);
|
||||||
MX35_INT_GPT);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -329,8 +329,7 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc,
|
||||||
clk_set_rate(clk[esdhc_b_podf], 166250000);
|
clk_set_rate(clk[esdhc_b_podf], 166250000);
|
||||||
|
|
||||||
/* System timer */
|
/* System timer */
|
||||||
mxc_timer_init(NULL, MX51_IO_ADDRESS(MX51_GPT1_BASE_ADDR),
|
mxc_timer_init(MX51_IO_ADDRESS(MX51_GPT1_BASE_ADDR), MX51_INT_GPT);
|
||||||
MX51_INT_GPT);
|
|
||||||
|
|
||||||
clk_prepare_enable(clk[iim_gate]);
|
clk_prepare_enable(clk[iim_gate]);
|
||||||
imx_print_silicon_rev("i.MX51", mx51_revision());
|
imx_print_silicon_rev("i.MX51", mx51_revision());
|
||||||
|
@ -412,8 +411,7 @@ int __init mx53_clocks_init(unsigned long rate_ckil, unsigned long rate_osc,
|
||||||
clk_set_rate(clk[esdhc_b_podf], 200000000);
|
clk_set_rate(clk[esdhc_b_podf], 200000000);
|
||||||
|
|
||||||
/* System timer */
|
/* System timer */
|
||||||
mxc_timer_init(NULL, MX53_IO_ADDRESS(MX53_GPT1_BASE_ADDR),
|
mxc_timer_init(MX53_IO_ADDRESS(MX53_GPT1_BASE_ADDR), MX53_INT_GPT);
|
||||||
MX53_INT_GPT);
|
|
||||||
|
|
||||||
clk_prepare_enable(clk[iim_gate]);
|
clk_prepare_enable(clk[iim_gate]);
|
||||||
imx_print_silicon_rev("i.MX53", mx53_revision());
|
imx_print_silicon_rev("i.MX53", mx53_revision());
|
||||||
|
|
|
@ -433,7 +433,7 @@ int __init mx6q_clocks_init(void)
|
||||||
base = of_iomap(np, 0);
|
base = of_iomap(np, 0);
|
||||||
WARN_ON(!base);
|
WARN_ON(!base);
|
||||||
irq = irq_of_parse_and_map(np, 0);
|
irq = irq_of_parse_and_map(np, 0);
|
||||||
mxc_timer_init(NULL, base, irq);
|
mxc_timer_init(base, irq);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
#include <linux/clockchips.h>
|
#include <linux/clockchips.h>
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
|
#include <linux/err.h>
|
||||||
|
|
||||||
#include <mach/hardware.h>
|
#include <mach/hardware.h>
|
||||||
#include <asm/mach/time.h>
|
#include <asm/mach/time.h>
|
||||||
|
@ -201,8 +202,16 @@ static int __init epit_clockevent_init(struct clk *timer_clk)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init epit_timer_init(struct clk *timer_clk, void __iomem *base, int irq)
|
void __init epit_timer_init(void __iomem *base, int irq)
|
||||||
{
|
{
|
||||||
|
struct clk *timer_clk;
|
||||||
|
|
||||||
|
timer_clk = clk_get_sys("imx-epit.0", NULL);
|
||||||
|
if (IS_ERR(timer_clk)) {
|
||||||
|
pr_err("i.MX epit: unable to get clk\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
clk_prepare_enable(timer_clk);
|
clk_prepare_enable(timer_clk);
|
||||||
|
|
||||||
timer_base = base;
|
timer_base = base;
|
||||||
|
|
|
@ -53,8 +53,8 @@ extern void imx35_soc_init(void);
|
||||||
extern void imx50_soc_init(void);
|
extern void imx50_soc_init(void);
|
||||||
extern void imx51_soc_init(void);
|
extern void imx51_soc_init(void);
|
||||||
extern void imx53_soc_init(void);
|
extern void imx53_soc_init(void);
|
||||||
extern void epit_timer_init(struct clk *timer_clk, void __iomem *base, int irq);
|
extern void epit_timer_init(void __iomem *base, int irq);
|
||||||
extern void mxc_timer_init(struct clk *timer_clk, void __iomem *, int);
|
extern void mxc_timer_init(void __iomem *, int);
|
||||||
extern int mx1_clocks_init(unsigned long fref);
|
extern int mx1_clocks_init(unsigned long fref);
|
||||||
extern int mx21_clocks_init(unsigned long lref, unsigned long fref);
|
extern int mx21_clocks_init(unsigned long lref, unsigned long fref);
|
||||||
extern int mx25_clocks_init(void);
|
extern int mx25_clocks_init(void);
|
||||||
|
|
|
@ -281,23 +281,22 @@ static int __init mxc_clockevent_init(struct clk *timer_clk)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init mxc_timer_init(struct clk *timer_clk, void __iomem *base, int irq)
|
void __init mxc_timer_init(void __iomem *base, int irq)
|
||||||
{
|
{
|
||||||
uint32_t tctl_val;
|
uint32_t tctl_val;
|
||||||
|
struct clk *timer_clk;
|
||||||
struct clk *timer_ipg_clk;
|
struct clk *timer_ipg_clk;
|
||||||
|
|
||||||
if (!timer_clk) {
|
timer_clk = clk_get_sys("imx-gpt.0", "per");
|
||||||
timer_clk = clk_get_sys("imx-gpt.0", "per");
|
if (IS_ERR(timer_clk)) {
|
||||||
if (IS_ERR(timer_clk)) {
|
pr_err("i.MX timer: unable to get clk\n");
|
||||||
pr_err("i.MX timer: unable to get clk\n");
|
return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
timer_ipg_clk = clk_get_sys("imx-gpt.0", "ipg");
|
|
||||||
if (!IS_ERR(timer_ipg_clk))
|
|
||||||
clk_prepare_enable(timer_ipg_clk);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
timer_ipg_clk = clk_get_sys("imx-gpt.0", "ipg");
|
||||||
|
if (!IS_ERR(timer_ipg_clk))
|
||||||
|
clk_prepare_enable(timer_ipg_clk);
|
||||||
|
|
||||||
clk_prepare_enable(timer_clk);
|
clk_prepare_enable(timer_clk);
|
||||||
|
|
||||||
timer_base = base;
|
timer_base = base;
|
||||||
|
|
Loading…
Reference in New Issue