[PATCH 1/3] serial/imx: add device tree support
Shawn Guo
shawn.guo at freescale.com
Wed Jun 22 20:12:35 EDT 2011
On Wed, Jun 22, 2011 at 09:52:11AM -0600, Grant Likely wrote:
[...]
>
> >> > - line = of_get_property(node, "id", NULL);
> >> > - if (!line)
> >> > + line = of_get_device_index(node, "serial");
> >> > + if (IS_ERR_VALUE(line))
> >> > return -ENODEV;
> >>
> >> Personally, it an alias isn't present, then I'd dynamically assign a port id.
> >>
> > We probably can not. The driver works with being told the correct
> > port id which is defined by soc. Instead of dynamically assigning
> > a port id, we have to tell the driver the exact hardware port id of
> > the device that is being probed.
>
> Are you sure? It doesn't look like the driver behaviour uses id for
> anything other than an index into the statically allocated serial port
> instance table. I don't see any change of behaviour based on the port
> number anywhere.
>
Sorry, I did not make this clear. In serial_imx_probe(), the port
gets created and then saved as below.
imx_ports[sport->port.line] = sport;
While in imx_console_setup(), it addresses the port as following.
sport = imx_ports[co->index];
When users specify their console as ttymxc0, they mean they are
using the first i.mx uart hardware port, in turn ttymxc1 for the
second port ...
That said, imx_port[0] has to be the first hardware port, imx_port[1]
has to be the second one ... That's why port id sport->port.line
can not be dynamically assigned, otherwise console may not work.
--
Regards,
Shawn
More information about the linux-arm-kernel
mailing list