From: robherring2@gmail.com (Rob Herring)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/3] ARM: pxa: Add DT support to pxa2xx-uart
Date: Wed, 02 Nov 2011 08:52:37 -0500 [thread overview]
Message-ID: <4EB14B25.5050606@gmail.com> (raw)
In-Reply-To: <201111012115.35417.marek.vasut@gmail.com>
On 11/01/2011 03:15 PM, Marek Vasut wrote:
>> On 11/01/2011 01:32 PM, Marek Vasut wrote:
>>> Add device tree binding for PXA2xx UARTs. Tested on Vpac270 board.
>>>
>>> Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
>>> Cc: Arnd Bergmann <arnd@arndb.de>
>>> Cc: Grant Likely <grant.likely@secretlab.ca>
>>> ---
>>>
>>> drivers/tty/serial/pxa.c | 50
>>> +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 47
>>> insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/tty/serial/pxa.c b/drivers/tty/serial/pxa.c
>>> index 531931c..836cbb4 100644
>>> --- a/drivers/tty/serial/pxa.c
>>> +++ b/drivers/tty/serial/pxa.c
>>> @@ -43,6 +43,8 @@
>>>
>>> #include <linux/clk.h>
>>> #include <linux/io.h>
>>> #include <linux/slab.h>
>>>
>>> +#include <linux/of.h>
>>> +#include <linux/of_device.h>
>>>
>>> struct uart_pxa_port {
>>>
>>> struct uart_port port;
>>>
>>> @@ -761,11 +763,50 @@ static const struct dev_pm_ops serial_pxa_pm_ops =
>>> {
>>>
>>> };
>>> #endif
>>>
>>> +#ifdef CONFIG_OF
>>> +static struct of_device_id serial_pxa_dt_ids[] = {
>>> + { .compatible = "marvell,pxa2xx-uart" },
>>> + { /* sentinel */ }
>>> +};
>>> +MODULE_DEVICE_TABLE(of, serial_pxa_dt_ids);
>>> +
>>> +static int serial_pxa_probe_dt(struct platform_device *pdev, int
>>> *portid) +{
>>> + struct device_node *np = pdev->dev.of_node;
>>> + static int portnum;
>>> +
>>> + if (!np)
>>> + return -ENODEV;
>>> +
>>> + /* PXA has up to four UART ports */
>>> + *portid = portnum++;
>>
>> You have no guarantee of the probe ordering yet are dependent on the
>> number later on to set the name.
>
> The probe order should be the one according to the order of ports in DT, right ?
Maybe so, but there is no guarantee of that. If you can avoid it that
would be best, but I think most serial drivers end up with some sort of
index. Look at the recent DT support for i.MX uart and the alias support.
>>
>>> + if (*portid >= 4)
>>> + return -ENODEV;
>>> +
>>> + /* Check if we're probing compatible ports only! */
>>> + if (of_get_property(np, "marvell,pxa250", NULL))
>>> + if (!cpu_is_pxa25x())
>>> + return -EINVAL;
>>
>> if dev->of_node is set, then you already know you matched against
>> marvell,pxa2xx-uart,
>
> Yes, I'm checking if the port has an additional parameter "marvell,pxa250" set,
> which means it should check if the CPU is pxa250.
If you have differences between pxa250 uart and other pxa2xx uart
versions, then the compatible string should reflect this (i.e.
marvell,pxa250-uart). Generally, you want to be specific with compatible
strings. To do it generically, use the oldest chip name and newer chips
can be compatible. For example, a pxa250 uart can use
marvell,pxa250-uart and every other chip can use marvell,pxa210-uart.
>
>>
>>> +
>>> + return 0;
>>> +}
>>> +#else
>>> +static inline int serial_pxa_probe_dt(struct platform_device *pdev, int
>>> *portid) +{
>>> + return 0;
>>> +}
>>> +#endif
>>> +
>>>
>>> static int serial_pxa_probe(struct platform_device *dev)
>>> {
>>>
>>> struct uart_pxa_port *sport;
>>> struct resource *mmres, *irqres;
>>> int ret;
>>>
>>> + int portid = dev->id;
>>> +
>>> + ret = serial_pxa_probe_dt(dev, &portid);
>>> + if (ret == -EINVAL)
>>> + return 0;
>>
>> What about non-DT probing when CONFIG_OF is enabled?
>
> Then ret isn't -EINVAL and it should be ok ?
Ahh, yes you're right.
Rob
next prev parent reply other threads:[~2011-11-02 13:52 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-01 18:32 [PATCH 0/3] Initial PXA DT bindings Marek Vasut
2011-11-01 18:32 ` [PATCH 1/3] ARM: pxa: Add DT support to pxa2xx-uart Marek Vasut
2011-11-01 20:00 ` Rob Herring
2011-11-01 20:15 ` Marek Vasut
2011-11-02 13:52 ` Rob Herring [this message]
2011-11-02 14:30 ` Marek Vasut
2011-11-07 22:24 ` Grant Likely
2011-11-07 22:25 ` Marek Vasut
2011-11-01 18:32 ` [PATCH 2/3] ARM: pxa: Add DT testing machine Marek Vasut
2011-11-07 22:18 ` Grant Likely
2011-11-07 22:24 ` Marek Vasut
2011-11-01 18:32 ` [PATCH 3/3] ARM: pxa: Add basic DTS files for PXA/Vpac270 " Marek Vasut
2011-11-07 21:31 ` [PATCH 0/3 V2] Initial PXA DT bindings Marek Vasut
2011-11-07 21:31 ` [PATCH 1/3 V2] ARM: pxa: Add DT support to pxa2xx-uart Marek Vasut
2011-11-07 21:37 ` Rob Herring
2011-11-07 21:53 ` Marek Vasut
2011-11-10 12:00 ` Russell King - ARM Linux
2011-11-10 16:59 ` Marek Vasut
2011-11-10 17:07 ` Rob Herring
2011-11-07 21:31 ` [PATCH 2/3 RESEND] ARM: pxa: Add DT testing machine Marek Vasut
2011-11-07 21:59 ` Rob Herring
2011-11-07 22:06 ` Marek Vasut
2011-11-07 22:30 ` Grant Likely
2011-11-07 22:31 ` Marek Vasut
2011-11-07 22:38 ` Rob Herring
2011-11-07 22:32 ` Rob Herring
2011-11-08 1:12 ` Grant Likely
2011-11-07 21:31 ` [PATCH 3/3 V2] ARM: pxa: Add basic DTS files for PXA/Vpac270 " Marek Vasut
2011-11-07 21:45 ` Rob Herring
2011-11-07 21:55 ` Marek Vasut
2011-11-07 22:03 ` Rob Herring
2012-07-17 13:30 ` [PATCH 0/3 V2] Initial PXA DT bindings Daniel Mack
2012-07-17 14:03 ` Arnd Bergmann
2012-07-17 14:47 ` Daniel Mack
2012-07-17 15:31 ` Arnd Bergmann
2012-07-17 18:04 ` Eric Miao
2012-07-17 19:57 ` Daniel Mack
2012-07-17 20:02 ` Eric Miao
2012-07-19 3:11 ` Haojian Zhuang
2012-07-17 19:14 ` Daniel Mack
2012-07-18 12:58 ` Marek Vasut
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=4EB14B25.5050606@gmail.com \
--to=robherring2@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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).