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

James Cameron
2013-12-06T11:05:58Z

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