microblaze: Use of_find_compatible_node for timer and intc
Calling of_find_compatible_node instead of calling private code which does the same. Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
@@ -99,7 +99,7 @@ unsigned int get_irq(struct pt_regs *regs)
|
|||||||
|
|
||||||
void __init init_IRQ(void)
|
void __init init_IRQ(void)
|
||||||
{
|
{
|
||||||
u32 i, j, intr_type;
|
u32 i, intr_type;
|
||||||
struct device_node *intc = NULL;
|
struct device_node *intc = NULL;
|
||||||
#ifdef CONFIG_SELFMOD_INTC
|
#ifdef CONFIG_SELFMOD_INTC
|
||||||
unsigned int intc_baseaddr = 0;
|
unsigned int intc_baseaddr = 0;
|
||||||
@@ -113,16 +113,7 @@ void __init init_IRQ(void)
|
|||||||
0
|
0
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
const char * const intc_list[] = {
|
intc = of_find_compatible_node(NULL, NULL, "xlnx,xps-intc-1.00.a");
|
||||||
"xlnx,xps-intc-1.00.a",
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
for (j = 0; intc_list[j] != NULL; j++) {
|
|
||||||
intc = of_find_compatible_node(NULL, NULL, intc_list[j]);
|
|
||||||
if (intc)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
BUG_ON(!intc);
|
BUG_ON(!intc);
|
||||||
|
|
||||||
intc_baseaddr = be32_to_cpup(of_get_property(intc,
|
intc_baseaddr = be32_to_cpup(of_get_property(intc,
|
||||||
@@ -140,8 +131,8 @@ void __init init_IRQ(void)
|
|||||||
#ifdef CONFIG_SELFMOD_INTC
|
#ifdef CONFIG_SELFMOD_INTC
|
||||||
selfmod_function((int *) arr_func, intc_baseaddr);
|
selfmod_function((int *) arr_func, intc_baseaddr);
|
||||||
#endif
|
#endif
|
||||||
printk(KERN_INFO "%s #0 at 0x%08x, num_irq=%d, edge=0x%x\n",
|
printk(KERN_INFO "XPS intc #0 at 0x%08x, num_irq=%d, edge=0x%x\n",
|
||||||
intc_list[j], intc_baseaddr, nr_irq, intr_type);
|
intc_baseaddr, nr_irq, intr_mask);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Disable all external interrupts until they are
|
* Disable all external interrupts until they are
|
||||||
|
@@ -243,7 +243,7 @@ static int timer_initialized;
|
|||||||
|
|
||||||
void __init time_init(void)
|
void __init time_init(void)
|
||||||
{
|
{
|
||||||
u32 irq, i = 0;
|
u32 irq;
|
||||||
u32 timer_num = 1;
|
u32 timer_num = 1;
|
||||||
struct device_node *timer = NULL;
|
struct device_node *timer = NULL;
|
||||||
const void *prop;
|
const void *prop;
|
||||||
@@ -258,16 +258,7 @@ void __init time_init(void)
|
|||||||
0
|
0
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
const char * const timer_list[] = {
|
timer = of_find_compatible_node(NULL, NULL, "xlnx,xps-timer-1.00.a");
|
||||||
"xlnx,xps-timer-1.00.a",
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
for (i = 0; timer_list[i] != NULL; i++) {
|
|
||||||
timer = of_find_compatible_node(NULL, NULL, timer_list[i]);
|
|
||||||
if (timer)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
BUG_ON(!timer);
|
BUG_ON(!timer);
|
||||||
|
|
||||||
timer_baseaddr = be32_to_cpup(of_get_property(timer, "reg", NULL));
|
timer_baseaddr = be32_to_cpup(of_get_property(timer, "reg", NULL));
|
||||||
@@ -283,8 +274,8 @@ void __init time_init(void)
|
|||||||
#ifdef CONFIG_SELFMOD_TIMER
|
#ifdef CONFIG_SELFMOD_TIMER
|
||||||
selfmod_function((int *) arr_func, timer_baseaddr);
|
selfmod_function((int *) arr_func, timer_baseaddr);
|
||||||
#endif
|
#endif
|
||||||
printk(KERN_INFO "%s #0 at 0x%08x, irq=%d\n",
|
printk(KERN_INFO "XPS timer #0 at 0x%08x, irq=%d\n",
|
||||||
timer_list[i], timer_baseaddr, irq);
|
timer_baseaddr, irq);
|
||||||
|
|
||||||
/* If there is clock-frequency property than use it */
|
/* If there is clock-frequency property than use it */
|
||||||
prop = of_get_property(timer, "clock-frequency", NULL);
|
prop = of_get_property(timer, "clock-frequency", NULL);
|
||||||
|
Reference in New Issue
Block a user