microblaze: Fix the heartbeat gpio to be more robust
The device tree handling for the gpio in the heart beat was not handling the system when there was no gpio and it wasn't working with a newer version of the gpio core which does not have the is-bidir property. Signed-off-by: John Linn <john.linn@xilinx.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
parent
95dfbbe470
commit
6d858535be
@ -45,6 +45,7 @@ void heartbeat(void)
|
||||
void setup_heartbeat(void)
|
||||
{
|
||||
struct device_node *gpio = NULL;
|
||||
int *prop;
|
||||
int j;
|
||||
char *gpio_list[] = {
|
||||
"xlnx,xps-gpio-1.00.a",
|
||||
@ -58,10 +59,14 @@ void setup_heartbeat(void)
|
||||
break;
|
||||
}
|
||||
|
||||
base_addr = *(int *) of_get_property(gpio, "reg", NULL);
|
||||
base_addr = (unsigned long) ioremap(base_addr, PAGE_SIZE);
|
||||
printk(KERN_NOTICE "Heartbeat GPIO at 0x%x\n", base_addr);
|
||||
if (gpio) {
|
||||
base_addr = *(int *) of_get_property(gpio, "reg", NULL);
|
||||
base_addr = (unsigned long) ioremap(base_addr, PAGE_SIZE);
|
||||
printk(KERN_NOTICE "Heartbeat GPIO at 0x%x\n", base_addr);
|
||||
|
||||
if (*(int *) of_get_property(gpio, "xlnx,is-bidir", NULL))
|
||||
out_be32(base_addr + 4, 0); /* GPIO is configured as output */
|
||||
/* GPIO is configured as output */
|
||||
prop = (int *) of_get_property(gpio, "xlnx,is-bidir", NULL);
|
||||
if (prop)
|
||||
out_be32(base_addr + 4, 0);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user