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$(echo .)mvista.com \
--cc=grant.likely@secretlab$(echo .)ca \
--cc=john.linn@xilinx$(echo .)com \
--cc=linuxppc-dev@ozlabs$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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