diff options
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/apbuart.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/serial/apbuart.c b/drivers/serial/apbuart.c index cc01c650a144..767ce9e396c5 100644 --- a/drivers/serial/apbuart.c +++ b/drivers/serial/apbuart.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/of.h> | 26 | #include <linux/of.h> |
27 | #include <linux/of_device.h> | 27 | #include <linux/of_device.h> |
28 | #include <linux/of_platform.h> | 28 | #include <linux/of_platform.h> |
29 | #include <linux/of_irq.h> | ||
29 | #include <linux/platform_device.h> | 30 | #include <linux/platform_device.h> |
30 | #include <linux/io.h> | 31 | #include <linux/io.h> |
31 | #include <linux/serial_core.h> | 32 | #include <linux/serial_core.h> |
@@ -573,13 +574,15 @@ static int __devinit apbuart_probe(struct platform_device *op, | |||
573 | printk(KERN_INFO "grlib-apbuart at 0x%llx, irq %d\n", | 574 | printk(KERN_INFO "grlib-apbuart at 0x%llx, irq %d\n", |
574 | (unsigned long long) port->mapbase, port->irq); | 575 | (unsigned long long) port->mapbase, port->irq); |
575 | return 0; | 576 | return 0; |
576 | |||
577 | } | 577 | } |
578 | 578 | ||
579 | static struct of_device_id __initdata apbuart_match[] = { | 579 | static struct of_device_id __initdata apbuart_match[] = { |
580 | { | 580 | { |
581 | .name = "GAISLER_APBUART", | 581 | .name = "GAISLER_APBUART", |
582 | }, | 582 | }, |
583 | { | ||
584 | .name = "01_00c", | ||
585 | }, | ||
583 | {}, | 586 | {}, |
584 | }; | 587 | }; |
585 | 588 | ||
@@ -620,9 +623,12 @@ static void grlib_apbuart_configure(void) | |||
620 | int *vendor = (int *) of_get_property(np, "vendor", NULL); | 623 | int *vendor = (int *) of_get_property(np, "vendor", NULL); |
621 | int *device = (int *) of_get_property(np, "device", NULL); | 624 | int *device = (int *) of_get_property(np, "device", NULL); |
622 | int *irqs = (int *) of_get_property(np, "interrupts", NULL); | 625 | int *irqs = (int *) of_get_property(np, "interrupts", NULL); |
626 | int *ampopts = (int *) of_get_property(np, "ampopts", NULL); | ||
623 | regs = (struct amba_prom_registers *) | 627 | regs = (struct amba_prom_registers *) |
624 | of_get_property(np, "reg", NULL); | 628 | of_get_property(np, "reg", NULL); |
625 | 629 | ||
630 | if (ampopts && (*ampopts == 0)) | ||
631 | continue; /* Ignore if used by another OS instance */ | ||
626 | if (vendor) | 632 | if (vendor) |
627 | v = *vendor; | 633 | v = *vendor; |
628 | if (device) | 634 | if (device) |