Hi Walter A small comment on the patch is below, though I have not run it yet (need some more time to get everything started with devicetree here).
On Thu, 13 Jan 2011 02:18:55 +0100 Walter Goossens <[email protected]> wrote: > This patch adds devicetree support to the altera_jtaguart driver. > Tested on hardware on the nios2 architecture. > > diff --git a/drivers/serial/altera_jtaguart.c > b/drivers/serial/altera_jtaguart.c > index f9b49b5..238348e 100644 > --- a/drivers/serial/altera_jtaguart.c > +++ b/drivers/serial/altera_jtaguart.c > @@ -433,15 +433,33 @@ static int __devinit altera_jtaguart_probe(struct > platform_device *pdev) > struct uart_port *port; > int i; > > - for (i = 0; i < ALTERA_JTAGUART_MAXPORTS && platp[i].mapbase; i++) { > + for (i = 0; i < ALTERA_JTAGUART_MAXPORTS; i++) { > port = &altera_jtaguart_ports[i].port; > > + if(platp) > + { > + if(!platp[i].mapbase) > + break; > + > + port->mapbase = platp[i].mapbase; > + port->irq = platp[i].irq; > + } else { > +#ifdef CONFIG_OF > + struct resource *res_irq = platform_get_resource(pdev, > IORESOURCE_IRQ, 0); > + struct resource *res_mem = platform_get_resource(pdev, > IORESOURCE_MEM, 0); > + if((!res_mem) || (!res_irq)) > + break; We should return -ENODEV here if we fail to get the resources. If we break here, we would return 0, which means the probe function was successful, but this isn't the case. > + > + port->mapbase = res_mem->start; > + port->irq = res_irq->start; > +#else > + break; > +#endif > + } > port->line = i; > port->type = PORT_ALTERA_JTAGUART; > - port->mapbase = platp[i].mapbase; > port->membase = ioremap(port->mapbase, ALTERA_JTAGUART_SIZE); > port->iotype = SERIAL_IO_MEM; > - port->irq = platp[i].irq; > port->ops = &altera_jtaguart_ops; > port->flags = ASYNC_BOOT_AUTOCONF; > > @@ -464,6 +482,15 @@ static int __devexit altera_jtaguart_remove(struct > platform_device *pdev) > > return 0; > } > +#ifdef CONFIG_OF > +static struct of_device_id altera_jtaguart_match[] = { > + { > + .compatible = "altera,altera_juart", > + }, > + {}, > +} > +MODULE_DEVICE_TABLE(of, altera_jtaguart_match); > +#endif /* CONFIG_OF */ > > static struct platform_driver altera_jtaguart_platform_driver = { > .probe = altera_jtaguart_probe, > @@ -471,6 +498,9 @@ static struct platform_driver > altera_jtaguart_platform_driver = { > .driver = { > .name = DRV_NAME, > .owner = THIS_MODULE, > +#ifdef CONFIG_OF > + .of_match_table = altera_jtaguart_match, > +#endif > }, > }; _______________________________________________ devicetree-discuss mailing list [email protected] https://lists.ozlabs.org/listinfo/devicetree-discuss
