netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Grant Likely <grant.likely@secretlab.ca>
To: Shawn Guo <shawn.guo@freescale.com>
Cc: patches@linaro.org, netdev@vger.kernel.org,
	devicetree-discuss@lists.ozlabs.org,
	Jason Liu <jason.hui@linaro.org>,
	linux-kernel@vger.kernel.org,
	Jeremy Kerr <jeremy.kerr@canonical.com>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [PATCH 1/3] serial/imx: add device tree support
Date: Wed, 22 Jun 2011 09:52:11 -0600	[thread overview]
Message-ID: <BANLkTimsk2eWKPi2hnHbaAn-vSMKmdYsGQ@mail.gmail.com> (raw)
In-Reply-To: <20110622153353.GA25799@S2100-06.ap.freescale.net>

On Wed, Jun 22, 2011 at 9:33 AM, Shawn Guo <shawn.guo@freescale.com> wrote:
> On Tue, Jun 21, 2011 at 01:13:50PM -0600, Grant Likely wrote:
>> On Tue, Jun 21, 2011 at 7:55 AM, Shawn Guo <shawn.guo@freescale.com> wrote:
>> > Hi Grant,
>> >
>> > I just gave a try to use aliases node for identify the device index.
>> > Please take a look and let me know if it's what you expect.
>>
>> Thanks Shawn.  This is definitely on track.  Comments below...
>>
>> >
>> > On Sun, Jun 19, 2011 at 03:30:02PM +0800, Shawn Guo wrote:
>> > [...]
>> >> > >
>> >> > > +#ifdef CONFIG_OF
>> >> > > +static int serial_imx_probe_dt(struct imx_port *sport,
>> >> > > +         struct platform_device *pdev)
>> >> > > +{
>> >> > > + struct device_node *node = pdev->dev.of_node;
>> >> > > + const __be32 *line;
>> >> > > +
>> >> > > + if (!node)
>> >> > > +         return -ENODEV;
>> >> > > +
>> >> > > + line = of_get_property(node, "id", NULL);
>> >> > > + if (!line)
>> >> > > +         return -ENODEV;
>> >> > > +
>> >> > > + sport->port.line = be32_to_cpup(line) - 1;
>> >> >
>> >> > Hmmm, I really would like to be rid of this.  Instead, if uarts must
>> >> > be enumerated, the driver should look for a /aliases/uart* property
>> >> > that matches the of_node.  Doing it that way is already established in
>> >> > the OpenFirmware documentation, and it ensures there are no overlaps
>> >> > in the global namespace.
>> >> >
>> >>
>> >> I just gave one more try to avoid using 'aliases', and you gave a
>> >> 'no' again.  Now, I know how hard you are on this.  Okay, I start
>> >> thinking about your suggestion seriously :)
>> >>
>> >> > We do need some infrastructure to make that easier though.  Would you
>> >> > have time to help put that together?
>> >> >
>> >> Ok, I will give it a try.
>> >>
>> >
>> > diff --git a/arch/arm/boot/dts/imx51-babbage.dts b/arch/arm/boot/dts/imx51-babbage.dts
>> > index da0381a..f4a5c3c 100644
>> > --- a/arch/arm/boot/dts/imx51-babbage.dts
>> > +++ b/arch/arm/boot/dts/imx51-babbage.dts
>> > @@ -18,6 +18,12 @@
>> >        compatible = "fsl,imx51-babbage", "fsl,imx51";
>> >        interrupt-parent = <&tzic>;
>> >
>> > +       aliases {
>> > +               serial0 = &uart0;
>> > +               serial1 = &uart1;
>> > +               serial2 = &uart2;
>> > +       };
>> > +
>>
>> Hmmm.  David Gibson had tossed out an idea of automatically generating
>> aliases from labels.  It may be time to revisit that idea.
>>
>> David, perhaps using this format for a label should turn it into an
>> alias (prefix label with an asterisk):
>>
>>         *thealias: i2c@12340000 { /*...*/ };
>>
>> .... although that approach gets *really* hairy when considering that
>> different boards will want different enumeration.  How would one
>> override an automatic alias defined by an included .dts file?
>>
> Another dependency the patch has to wait for?  Or we can go ahead and
> utilize the facility later when it gets ready?

No, this isn't something you need to wait for.  Just musing on future
enhancements.

>> Also, when obtaining an enumeration for a device, you'll need to be
>> careful about what number gets returned.  If the node doesn't match a
>> given alias, but aliases do exist for other devices of like type, then
>> you need to be careful not to assign a number already assigned to
>> another device via an alias (this of course assumes the driver
>> supports dynamics enumeration, which many drivers will).  It would be
>>
> Some words not finished?

heh, that happens sometimes.  I tend to be a bit scattered when
replying to email.  Just ignore the last sentence fragment.

>> > -       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.

g.

  reply	other threads:[~2011-06-22 15:52 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-18 15:19 [PATCH 0/3] Add basic device support for imx51 babbage Shawn Guo
     [not found] ` <1308410354-21387-1-git-send-email-shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-06-18 15:19   ` [PATCH 1/3] serial/imx: add device tree support Shawn Guo
     [not found]     ` <1308410354-21387-2-git-send-email-shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-06-18 16:19       ` Grant Likely
2011-06-19  7:02         ` Wolfram Sang
2011-06-19  7:30         ` Shawn Guo
2011-06-19 15:05           ` Grant Likely
2011-06-19 15:15             ` Rob Herring
2011-06-19 18:44               ` Grant Likely
2011-06-21 13:55           ` Shawn Guo
2011-06-21 18:32             ` Mitch Bradley
2011-06-21 18:42               ` Grant Likely
2011-06-21 18:53                 ` Russell King - ARM Linux
2011-06-21 19:02                   ` Grant Likely
     [not found]                 ` <BANLkTiny9xDwiUww9Ys+jQZ0SHdQATABUA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-21 19:04                   ` Mitch Bradley
2011-06-21 19:13             ` Grant Likely
     [not found]               ` <BANLkTim4vunTm1176MRw3pqRZnunu4=9jg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-21 19:35                 ` Mitch Bradley
2011-06-21 19:38                   ` Grant Likely
2011-06-21 22:08                     ` Mitch Bradley
2011-06-21 22:33                       ` Grant Likely
     [not found]                         ` <BANLkTikBUo3jO=R0amkdxU1V3QMJoOUkEw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-21 22:52                           ` Segher Boessenkool
     [not found]                             ` <ba379b3b42f1659f4f6649c78b8bb1b2-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2011-06-21 22:58                               ` Grant Likely
2011-06-22 15:33                 ` Shawn Guo
2011-06-22 15:52                   ` Grant Likely [this message]
     [not found]                     ` <BANLkTimsk2eWKPi2hnHbaAn-vSMKmdYsGQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-23  0:12                       ` Shawn Guo
     [not found]                         ` <20110623001234.GB25799-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-06-23  3:35                           ` Grant Likely
2011-06-23 18:38               ` Shawn Guo
2011-06-23 23:11                 ` Grant Likely
     [not found]                   ` <BANLkTi=8Mks6T85WnEyihmB21U1j7reHrQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-06-24  3:49                     ` Shawn Guo
     [not found]                       ` <20110624034859.GB19188-+NayF8gZjK2ctlrPMvKcciBecyulp+rMXqFh9Ls21Oc@public.gmane.org>
2011-06-24  4:05                         ` Grant Likely
2011-06-18 16:21     ` Arnd Bergmann
     [not found]       ` <201106181821.46574.arnd-r2nGTMty4D4@public.gmane.org>
2011-06-18 16:26         ` Grant Likely
     [not found]           ` <20110618162655.GK8195-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-06-18 18:11             ` Arnd Bergmann
2011-06-19  7:41           ` Shawn Guo
2011-06-19  7:40         ` Shawn Guo
2011-06-18 15:19   ` [PATCH 2/3] net/fec: " Shawn Guo
2011-06-18 16:22     ` Grant Likely
     [not found]       ` <20110618162220.GI8195-e0URQFbLeQY2iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2011-06-19  7:46         ` Shawn Guo
     [not found]     ` <1308410354-21387-3-git-send-email-shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-06-18 18:27       ` Arnd Bergmann
     [not found]         ` <201106182027.22974.arnd-r2nGTMty4D4@public.gmane.org>
2011-06-19  0:24           ` Grant Likely
2011-06-19  7:55         ` Shawn Guo
2011-06-19 11:39     ` Greg Ungerer
2011-06-19 12:11       ` Arnd Bergmann
2011-06-19 15:09         ` Rob Herring
2011-06-19 18:43           ` Grant Likely
2011-06-20  0:05         ` Greg Ungerer
2011-06-18 15:19   ` [PATCH 3/3] ARM: mx5: add basic device tree support for imx51 babbage Shawn Guo
     [not found]     ` <1308410354-21387-4-git-send-email-shawn.guo-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2011-06-18 16:24       ` Grant Likely
2011-06-18 16:29   ` [PATCH 0/3] Add basic device " Grant Likely

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BANLkTimsk2eWKPi2hnHbaAn-vSMKmdYsGQ@mail.gmail.com \
    --to=grant.likely@secretlab.ca \
    --cc=david@gibson.dropbear.id.au \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=jason.hui@linaro.org \
    --cc=jeremy.kerr@canonical.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=patches@linaro.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawn.guo@freescale.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).