From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: linuxppc-dev@ozlabs.org, John Linn <john.linn@xilinx.com>
Subject: Re: [PATCH 2/3] [POWERPC] Xilinx: of_serial support for Xilinx uart 16550.
Date: Fri, 21 Mar 2008 16:00:57 +0300 [thread overview]
Message-ID: <47E3B189.6060002@ru.mvista.com> (raw)
In-Reply-To: <fa686aa40803201719i7bf02ba2qd259f1a36a24d943@mail.gmail.com>
Hello.
Grant Likely wrote:
> On Thu, Mar 20, 2008 at 8:43 AM, John Linn <john.linn@xilinx.com> wrote:
>>The Xilinx 16550 uart core is not a standard 16550, because it uses
>> word-based addressing rather than byte-based addressing. As a result,
>> it is not compatible with the open firmware 'ns16550' compatible
>> binding. This code introduces new bindings, which pass the correct
>> register base and regshift properties to the uart driver to enable
>> this core to be used. Doing this cleanly required some refactoring of
>> the existing code.
> Personally, I'm not fond of this approach. There is already some
> traction to using the reg-shift property to specify spacing, and I
> think it would be appropriate to also define a reg-offset property to
> handle the +3 offset and then let the xilinx 16550 nodes use those.
That's making things only worse than the mere "reg-shift" idea. I think
that both are totally wrong. Everything about the programming interface should
be said in the "compatible" and possibly "model" properties. of_serial driver
should recognize them and pass the necessary details to 8250.c. As for me, I'm
strongly against plaguing the device tree with the *Linux driver
implementation specifics* (despite I was trying this with MTD -- there it
seemed somewhat more grounded :-).
> More comments below.
>> Signed-off-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com>
>> Signed-off-by: John Linn <john.linn@xilinx.com>
>> diff --git a/drivers/serial/of_serial.c b/drivers/serial/of_serial.c
>> index 2efb892..910c94f 100644
>> --- a/drivers/serial/of_serial.c
>> +++ b/drivers/serial/of_serial.c
[...]
>> return 0;
>> }
>> @@ -81,8 +82,9 @@ static int __devinit of_platform_serial_probe(struct of_device *ofdev,
>> if (info == NULL)
>> return -ENOMEM;
>>
>> - port_type = (unsigned long)id->data;
>> - ret = of_platform_serial_setup(ofdev, port_type, &port);
>> + memcpy(info, id->data, sizeof(struct of_serial_info));
>> + port_type = info->type;
>> + ret = of_platform_serial_setup(ofdev, info, &port);
>> if (ret)
>> goto out;
>>
>> @@ -100,7 +102,6 @@ static int __devinit of_platform_serial_probe(struct of_device *ofdev,
>> if (ret < 0)
>> goto out;
>>
>> - info->type = port_type;
>> info->line = ret;
>> ofdev->dev.driver_data = info;
>> return 0;
>> @@ -128,15 +129,33 @@ static int of_platform_serial_remove(struct of_device *ofdev)
>> return 0;
>> }
>>
>> +static struct of_serial_info __devinitdata ns8250_info = { .type = PORT_8250 };
>> +static struct of_serial_info __devinitdata ns16450_info = { .type = PORT_16450 };
>> +static struct of_serial_info __devinitdata ns16550_info = { .type = PORT_16550 };
>> +static struct of_serial_info __devinitdata ns16750_info = { .type = PORT_16750 };
>> +static struct of_serial_info __devinitdata xilinx_16550_info = {
>> + .type = PORT_16550,
>> + .regshift = 2,
>> + .regoffset = 3,
I see that the data is already encoded in the driver itself, so I agree
with the patch.
>> +};
>> +static struct of_serial_info __devinitdata unknown_info = { .type = PORT_UNKNOWN };
> In support of my argument; the fact that you need a table of data says
> to me that this data should really be encoded in the device tree. :-)
Not at all.
> Cheers,
> g.
WBR, Sergei
next prev parent reply other threads:[~2008-03-21 12:59 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <12060242324116-git-send-email-john.linn@xilinx.com>
2008-03-20 14:43 ` [PATCH 2/3] [POWERPC] Xilinx: of_serial support for Xilinx uart 16550 John Linn
2008-03-21 0:19 ` Grant Likely
2008-03-21 9:21 ` Paul Mackerras
2008-03-21 11:39 ` Segher Boessenkool
2008-03-21 16:08 ` [PATCH 2/3] [POWERPC] Xilinx: of_serial support for Xilinx uart16550 Stephen Neuendorffer
2008-03-21 16:48 ` Segher Boessenkool
2008-03-22 14:50 ` [PATCH 2/3] [POWERPC] Xilinx: of_serial support for Xilinx uart 16550 Grant Likely
2008-03-22 16:06 ` Sergei Shtylyov
2008-03-24 14:09 ` Sergei Shtylyov
2008-03-24 14:27 ` Grant Likely
2008-03-24 16:15 ` Sergei Shtylyov
2008-03-24 16:48 ` Grant Likely
2008-03-24 17:03 ` Sergei Shtylyov
2008-03-25 22:48 ` John Linn
2008-03-21 13:00 ` Sergei Shtylyov [this message]
2008-03-21 15:37 ` Segher Boessenkool
2008-03-21 15:54 ` Sergei Shtylyov
2008-03-21 16:45 ` Segher Boessenkool
2008-03-21 16:50 ` [PATCH 2/3] [POWERPC] Xilinx: of_serial support for Xilinx uart16550 Stephen Neuendorffer
2008-03-21 17:01 ` [PATCH 2/3] [POWERPC] Xilinx: of_serial support for Xilinx uart 16550 Sergei Shtylyov
2008-03-22 15:06 ` Grant Likely
2008-03-22 16:40 ` Sergei Shtylyov
2008-03-21 16:14 ` [PATCH 2/3] [POWERPC] Xilinx: of_serial support for Xilinx uart16550 Stephen Neuendorffer
[not found] ` <1206024232655-git-send-email-john.linn@xilinx.com>
2008-03-20 14:43 ` [PATCH 3/3] [POWERPC] Xilinx: boot support for Xilinx uart 16550 John Linn
2008-03-20 14:54 ` Grant Likely
2008-03-20 16:15 ` John Linn
2008-03-20 21:18 ` Grant Likely
[not found] ` <20080320175601.5D86217C8055@mail127-sin.bigfish.com>
2008-03-20 21:07 ` Grant Likely
2008-03-20 22:04 ` 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=47E3B189.6060002@ru.mvista.com \
--to=sshtylyov@ru.mvista.com \
--cc=grant.likely@secretlab.ca \
--cc=john.linn@xilinx.com \
--cc=linuxppc-dev@ozlabs.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.