Subject: [PATCH] serial: rewrite pxa2xx-uart to use 8250_core

From: [email-masked] (James Cameron)
Date: Fri, 6 Dec 2013 22:05:43 +1100

On Fri, Dec 06, 2013 at 02:34:17PM +0400, Sergei Ianovich wrote:
> On Fri, 2013-12-06 at 20:53 +1100, James Cameron wrote:
> > I don't understand why /dev/ttyS2 (4,66) changed to /dev/ttyS0 (4,64)
> > after the patch was applied to olpc-kernel/arm-3.5 but, as you say it
> > doesn't change, perhaps there is something between 3.5 and now for me
> > to watch out for.  My problem.
> 
> The old pxa.c set device ids explicitly:
> -static int serial_pxa_probe_dt(struct platform_device *pdev,
> -                              struct uart_pxa_port *sport)
> -{
> -       struct device_node *np = pdev->dev.of_node;
> -       int ret;
> -
> -       if (!np)
> -               return 1;
> -
> -       ret = of_alias_get_id(np, "serial");
> -       if (ret < 0) {
> -               dev_err(&pdev->dev, "failed to get alias id, errno %d
> \n", ret);
> -               return ret;
> -       }
> -       sport->port.line = ret;
> -       return 0;
> -}
> 
> and
> 
> -       ret = serial_pxa_probe_dt(dev, sport);
> -       if (ret > 0)
> -               sport->port.line = dev->id;
> 
> 
> However, this is not possible with 8250_core. The latter assigns device
> ids strictly in the call order of serial8250_register_8250_port().
> 
> Hope it helps.

Yes, thanks, that explains it.

Your patch deprecates the use of property "linux,unit#" in the device
tree for serial ports, or the numbering according to the ordering of
the device tree.

(On OLPC XO-4, we set the numbering according to the ordering, we don't
use "linux,unit#".)

It is sad to see device tree sawdust.  ;-)

-- 
James Cameron
http://quozl.linux.org.au/