* [PATCH 4/4] serial/arc-uart: switch to devicetree based probing
[not found] <1357885223-19243-1-git-send-email-vgupta@synopsys.com>
@ 2013-01-11 6:20 ` Vineet Gupta
2013-01-11 11:33 ` Arnd Bergmann
2013-02-08 23:01 ` Grant Likely
0 siblings, 2 replies; 9+ messages in thread
From: Vineet Gupta @ 2013-01-11 6:20 UTC (permalink / raw)
To: linux-serial, linux-kernel
Cc: Vineet Gupta, Grant Likely, Arnd Bergmann, Alan Cox,
Greg Kroah-Hartman, devicetree-discuss, Rob Herring, Rob Landley
* DT binding for arc-uart
* With alll the bits in place we can now use DT probing.
Note that there's a bit of kludge right now because earlyprintk portion
of driver can't use the DT infrastrcuture to get resoures/plat_data.
This requires some infrastructre changes to of_flat_ framework
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: linux-serial@vger.kernel.org
Cc: Alan Cox <alan@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: devicetree-discuss@lists.ozlabs.org
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Rob Landley <rob@landley.net>
Cc: linux-serial@vger.kernel.org
---
.../devicetree/bindings/tty/serial/arc-uart.txt | 26 ++++++++++++
drivers/tty/serial/arc_uart.c | 43 ++++++++++++++++++-
2 files changed, 66 insertions(+), 3 deletions(-)
create mode 100644 Documentation/devicetree/bindings/tty/serial/arc-uart.txt
diff --git a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt b/Documentation/devicetree/bindings/tty/serial/arc-uart.txt
new file mode 100644
index 0000000..c3bd8f9
--- /dev/null
+++ b/Documentation/devicetree/bindings/tty/serial/arc-uart.txt
@@ -0,0 +1,26 @@
+* Synopsys ARC UART : Non standard UART used in some of the ARC FPGA boards
+
+Required properties:
+- compatible : "snps,arc-uart"
+- reg : offset and length of the register set for the device.
+- interrupts : device interrupt
+- clock-frequency : the input clock frequency for the UART
+- baud : baud rate for UART
+
+e.g.
+
+arcuart0: serial@c0fc1000 {
+ compatible = "snps,arc-uart";
+ reg = <0xc0fc1000 0x100>;
+ interrupts = <5>;
+ clock-frequency = <80000000>;
+ baud = <115200>;
+ status = "okay";
+};
+
+Note: Each port should have an alias correctly numbered in "aliases" node.
+
+e.g.
+aliases {
+ serial0 = &arcuart0;
+};
diff --git a/drivers/tty/serial/arc_uart.c b/drivers/tty/serial/arc_uart.c
index 2db6410..b468601 100644
--- a/drivers/tty/serial/arc_uart.c
+++ b/drivers/tty/serial/arc_uart.c
@@ -37,6 +37,8 @@
#include <linux/tty_flip.h>
#include <linux/serial_core.h>
#include <linux/io.h>
+#include <linux/of.h>
+#include <linux/of_platform.h>
/*************************************
* ARC UART Hardware Specs
@@ -537,8 +539,26 @@ arc_uart_init_one(struct platform_device *pdev, int dev_id)
return -ENODEV;
uart->is_emulated = !!plat_data[0]; /* workaround ISS bug */
- uart->port.uartclk = plat_data[1];
- uart->baud = plat_data[2];
+
+ if (is_early_platform_device(pdev)) {
+ uart->port.uartclk = plat_data[1];
+ uart->baud = plat_data[2];
+ } else {
+ struct device_node *np = pdev->dev.of_node;
+ u32 val;
+
+ if (of_property_read_u32(np, "clock-frequency", &val)) {
+ dev_err(&pdev->dev, "clock-frequency property NOTset\n");
+ return -EINVAL;
+ }
+ uart->port.uartclk = val;
+
+ if (of_property_read_u32(np, "baud", &val)) {
+ dev_err(&pdev->dev, "baud property NOT set\n");
+ return -EINVAL;
+ }
+ uart->baud = val;
+ }
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res)
@@ -673,8 +693,18 @@ static int __init arc_serial_probe_earlyprintk(struct platform_device *pdev)
static int arc_serial_probe(struct platform_device *pdev)
{
int rc, dev_id;
+ struct device_node *np = pdev->dev.of_node;
+
+ /* no device tree device */
+ if (!np)
+ return -ENODEV;
+
+ dev_id = of_alias_get_id(np, "serial");
+ if (dev_id < 0) {
+ dev_err(&pdev->dev, "failed to get alias id: %d\n", dev_id);
+ return dev_id;
+ }
- dev_id = pdev->id < 0 ? 0 : pdev->id;
rc = arc_uart_init_one(pdev, dev_id);
if (rc)
return rc;
@@ -689,12 +719,19 @@ static int arc_serial_remove(struct platform_device *pdev)
return 0;
}
+static const struct of_device_id arc_uart_dt_ids[] = {
+ { .compatible = "snps,arc-uart" },
+ { /* Sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, arc_uart_dt_ids);
+
static struct platform_driver arc_platform_driver = {
.probe = arc_serial_probe,
.remove = arc_serial_remove,
.driver = {
.name = DRIVER_NAME,
.owner = THIS_MODULE,
+ .of_match_table = arc_uart_dt_ids,
},
};
--
1.7.4.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] serial/arc-uart: switch to devicetree based probing
2013-01-11 6:20 ` [PATCH 4/4] serial/arc-uart: switch to devicetree based probing Vineet Gupta
@ 2013-01-11 11:33 ` Arnd Bergmann
2013-01-11 11:55 ` Vineet Gupta
2013-02-08 23:01 ` Grant Likely
1 sibling, 1 reply; 9+ messages in thread
From: Arnd Bergmann @ 2013-01-11 11:33 UTC (permalink / raw)
To: Vineet Gupta
Cc: linux-serial, linux-kernel, Grant Likely, Alan Cox,
Greg Kroah-Hartman, devicetree-discuss, Rob Herring, Rob Landley
On Friday 11 January 2013, Vineet Gupta wrote:
> * DT binding for arc-uart
> * With alll the bits in place we can now use DT probing.
>
> Note that there's a bit of kludge right now because earlyprintk portion
> of driver can't use the DT infrastrcuture to get resoures/plat_data.
> This requires some infrastructre changes to of_flat_ framework
>
> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
> Cc: Grant Likely <grant.likely@secretlab.ca>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: linux-serial@vger.kernel.org
> Cc: Alan Cox <alan@linux.intel.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: devicetree-discuss@lists.ozlabs.org
> Cc: Rob Herring <rob.herring@calxeda.com>
> Cc: Rob Landley <rob@landley.net>
> Cc: linux-serial@vger.kernel.org
Acked-by: Arnd Bergmann <arnd@arndb.de>
Quick question about the name though: is this UART only used
on ARC, or is it something that synopsys licenses to other
parties as well? If the latter is true, we might want to
add a more generic "compatible" value for those that use
it on another architecture.
Arnd
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] serial/arc-uart: switch to devicetree based probing
2013-01-11 11:33 ` Arnd Bergmann
@ 2013-01-11 11:55 ` Vineet Gupta
2013-01-11 20:17 ` Arnd Bergmann
0 siblings, 1 reply; 9+ messages in thread
From: Vineet Gupta @ 2013-01-11 11:55 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-serial, linux-kernel, Grant Likely, Alan Cox,
Greg Kroah-Hartman, devicetree-discuss, Rob Herring, Rob Landley
On Friday 11 January 2013 05:03 PM, Arnd Bergmann wrote:
> On Friday 11 January 2013, Vineet Gupta wrote:
>> * DT binding for arc-uart
>> * With alll the bits in place we can now use DT probing.
>>
>> Note that there's a bit of kludge right now because earlyprintk portion
>> of driver can't use the DT infrastrcuture to get resoures/plat_data.
>> This requires some infrastructre changes to of_flat_ framework
>>
>> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
>> Cc: Grant Likely <grant.likely@secretlab.ca>
>> Cc: Arnd Bergmann <arnd@arndb.de>
>> Cc: linux-serial@vger.kernel.org
>> Cc: Alan Cox <alan@linux.intel.com>
>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> Cc: devicetree-discuss@lists.ozlabs.org
>> Cc: Rob Herring <rob.herring@calxeda.com>
>> Cc: Rob Landley <rob@landley.net>
>> Cc: linux-serial@vger.kernel.org
> Acked-by: Arnd Bergmann <arnd@arndb.de>
>
> Quick question about the name though: is this UART only used
> on ARC, or is it something that synopsys licenses to other
> parties as well? If the latter is true, we might want to
> add a more generic "compatible" value for those that use
> it on another architecture.
It's not licensed as standalone IP - since its not a standard 8250. It is only
(but actively) used on the internal FPGA flows from ARC days.
Thx,
Vineet
> Arnd
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] serial/arc-uart: switch to devicetree based probing
2013-01-11 11:55 ` Vineet Gupta
@ 2013-01-11 20:17 ` Arnd Bergmann
0 siblings, 0 replies; 9+ messages in thread
From: Arnd Bergmann @ 2013-01-11 20:17 UTC (permalink / raw)
To: Vineet Gupta
Cc: linux-serial, linux-kernel, Grant Likely, Alan Cox,
Greg Kroah-Hartman, devicetree-discuss, Rob Herring, Rob Landley
On Friday 11 January 2013, Vineet Gupta wrote:
> On Friday 11 January 2013 05:03 PM, Arnd Bergmann wrote:
> > Quick question about the name though: is this UART only used
> > on ARC, or is it something that synopsys licenses to other
> > parties as well? If the latter is true, we might want to
> > add a more generic "compatible" value for those that use
> > it on another architecture.
>
> It's not licensed as standalone IP - since its not a standard 8250. It is only
> (but actively) used on the internal FPGA flows from ARC days.
>
Ok, thanks for the confirmation.
Arnd
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] serial/arc-uart: switch to devicetree based probing
2013-01-11 6:20 ` [PATCH 4/4] serial/arc-uart: switch to devicetree based probing Vineet Gupta
2013-01-11 11:33 ` Arnd Bergmann
@ 2013-02-08 23:01 ` Grant Likely
2013-02-09 6:45 ` Vineet Gupta
1 sibling, 1 reply; 9+ messages in thread
From: Grant Likely @ 2013-02-08 23:01 UTC (permalink / raw)
To: linux-serial, linux-kernel
Cc: Vineet Gupta, Arnd Bergmann, Alan Cox, Greg Kroah-Hartman,
devicetree-discuss, Rob Herring, Rob Landley
On Fri, 11 Jan 2013 11:50:23 +0530, Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:
> * DT binding for arc-uart
> * With alll the bits in place we can now use DT probing.
>
> Note that there's a bit of kludge right now because earlyprintk portion
> of driver can't use the DT infrastrcuture to get resoures/plat_data.
> This requires some infrastructre changes to of_flat_ framework
>
> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
> Cc: Grant Likely <grant.likely@secretlab.ca>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: linux-serial@vger.kernel.org
> Cc: Alan Cox <alan@linux.intel.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: devicetree-discuss@lists.ozlabs.org
> Cc: Rob Herring <rob.herring@calxeda.com>
> Cc: Rob Landley <rob@landley.net>
> Cc: linux-serial@vger.kernel.org
> ---
> .../devicetree/bindings/tty/serial/arc-uart.txt | 26 ++++++++++++
> drivers/tty/serial/arc_uart.c | 43 ++++++++++++++++++-
> 2 files changed, 66 insertions(+), 3 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/tty/serial/arc-uart.txt
>
> diff --git a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt b/Documentation/devicetree/bindings/tty/serial/arc-uart.txt
> new file mode 100644
> index 0000000..c3bd8f9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/tty/serial/arc-uart.txt
> @@ -0,0 +1,26 @@
> +* Synopsys ARC UART : Non standard UART used in some of the ARC FPGA boards
> +
> +Required properties:
> +- compatible : "snps,arc-uart"
> +- reg : offset and length of the register set for the device.
> +- interrupts : device interrupt
> +- clock-frequency : the input clock frequency for the UART
> +- baud : baud rate for UART
change 'baud' to 'current-speed'. There is already precedence for this
with other serial devices.
g.
> @@ -673,8 +693,18 @@ static int __init arc_serial_probe_earlyprintk(struct platform_device *pdev)
> static int arc_serial_probe(struct platform_device *pdev)
> {
> int rc, dev_id;
> + struct device_node *np = pdev->dev.of_node;
> +
> + /* no device tree device */
> + if (!np)
> + return -ENODEV;
This breaks non-DT users. Is this what you intend? It creates a flag day
where users have to switch from non-DT to DT cold-turkey.
> + dev_id = of_alias_get_id(np, "serial");
> + if (dev_id < 0) {
> + dev_err(&pdev->dev, "failed to get alias id: %d\n", dev_id);
> + return dev_id;
> + }
Don't fail on this. If you can't get an id then choose one dynamically.
>
> - dev_id = pdev->id < 0 ? 0 : pdev->id;
> rc = arc_uart_init_one(pdev, dev_id);
> if (rc)
> return rc;
> @@ -689,12 +719,19 @@ static int arc_serial_remove(struct platform_device *pdev)
> return 0;
> }
>
> +static const struct of_device_id arc_uart_dt_ids[] = {
> + { .compatible = "snps,arc-uart" },
> + { /* Sentinel */ }
> +};
> +MODULE_DEVICE_TABLE(of, arc_uart_dt_ids);
> +
> static struct platform_driver arc_platform_driver = {
> .probe = arc_serial_probe,
> .remove = arc_serial_remove,
> .driver = {
> .name = DRIVER_NAME,
> .owner = THIS_MODULE,
> + .of_match_table = arc_uart_dt_ids,
> },
> };
>
> --
> 1.7.4.1
>
--
Grant Likely, B.Sc, P.Eng.
Secret Lab Technologies, Ltd.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] serial/arc-uart: switch to devicetree based probing
2013-02-08 23:01 ` Grant Likely
@ 2013-02-09 6:45 ` Vineet Gupta
2013-02-09 9:28 ` Arnd Bergmann
2013-02-13 20:47 ` [PATCH 4/4] serial/arc-uart: switch to devicetree based probing Grant Likely
0 siblings, 2 replies; 9+ messages in thread
From: Vineet Gupta @ 2013-02-09 6:45 UTC (permalink / raw)
To: Grant Likely
Cc: linux-serial, linux-kernel, Arnd Bergmann, Greg Kroah-Hartman,
devicetree-discuss, Rob Herring, Rob Landley
On Saturday 09 February 2013 04:31 AM, Grant Likely wrote:
> On Fri, 11 Jan 2013 11:50:23 +0530, Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:
>> +- clock-frequency : the input clock frequency for the UART
>> +- baud : baud rate for UART
> change 'baud' to 'current-speed'. There is already precedence for this
> with other serial devices.
While I'm OK with this - I can only see of_serial.c following the rule :-)
More importantly I'm not clear about the logistics of this fix. Obviously this has
a bearing on DT files in arch/arc/boot/*. So are such changes (platform + driver)
routed thru the subsystem tree or the arch tree or bits from both with
bisectability not considered - which feels wrong. We have to also consider the
fact that Greg has closed the tty/serial for 3.9. So while I have no objection to
your comment, it seems that the it needs to wait till 3.9-rc1 - or is there an
alternate way.
>
>> @@ -673,8 +693,18 @@ static int __init arc_serial_probe_earlyprintk(struct platform_device *pdev)
>> static int arc_serial_probe(struct platform_device *pdev)
>> {
>> int rc, dev_id;
>> + struct device_node *np = pdev->dev.of_node;
>> +
>> + /* no device tree device */
>> + if (!np)
>> + return -ENODEV;
> This breaks non-DT users. Is this what you intend? It creates a flag day
> where users have to switch from non-DT to DT cold-turkey.
Not supporting non-DT user was not the idea - it just simplifies the code a bit
given that it would only even be runtime used in a ARC Linux port based platform -
which unconditionally enables OF. Further - the ARC port itself is not yet
upstream so there are no "official" user of this in tree driver.
FWIW, ARC Linux port was recently reviewed on lkml/arch mailing lists and is now
in linux-next for a possible 3.9 merge.
>> + dev_id = of_alias_get_id(np, "serial");
>> + if (dev_id < 0) {
>> + dev_err(&pdev->dev, "failed to get alias id: %d\n", dev_id);
>> + return dev_id;
>> + }
> Don't fail on this. If you can't get an id then choose one dynamically.
You mean just assume 0.
Thanks for reviewing.
-Vineet
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] serial/arc-uart: switch to devicetree based probing
2013-02-09 6:45 ` Vineet Gupta
@ 2013-02-09 9:28 ` Arnd Bergmann
[not found] ` <1360572101-12744-1-git-send-email-vgupta@synopsys.com>
2013-02-13 20:47 ` [PATCH 4/4] serial/arc-uart: switch to devicetree based probing Grant Likely
1 sibling, 1 reply; 9+ messages in thread
From: Arnd Bergmann @ 2013-02-09 9:28 UTC (permalink / raw)
To: Vineet Gupta
Cc: Grant Likely, linux-serial, linux-kernel, Greg Kroah-Hartman,
devicetree-discuss, Rob Herring, Rob Landley
On Saturday 09 February 2013, Vineet Gupta wrote:
> On Saturday 09 February 2013 04:31 AM, Grant Likely wrote:
> > On Fri, 11 Jan 2013 11:50:23 +0530, Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:
> >> +- clock-frequency : the input clock frequency for the UART
> >> +- baud : baud rate for UART
> > change 'baud' to 'current-speed'. There is already precedence for this
> > with other serial devices.
>
> While I'm OK with this - I can only see of_serial.c following the rule :-)
> More importantly I'm not clear about the logistics of this fix. Obviously this has
> a bearing on DT files in arch/arc/boot/*. So are such changes (platform + driver)
> routed thru the subsystem tree or the arch tree or bits from both with
> bisectability not considered - which feels wrong. We have to also consider the
> fact that Greg has closed the tty/serial for 3.9. So while I have no objection to
> your comment, it seems that the it needs to wait till 3.9-rc1 - or is there an
> alternate way.
I'd consider this one a bug fix, so while Greg is not accepting any new
features for the serial tree, I think it should still get in that way
and should not be controversial as an add-on change.
Arnd
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH] serial/arc-uart: Miscll DT related updates (Grant's review comments)
[not found] ` <1360572101-12744-1-git-send-email-vgupta@synopsys.com>
@ 2013-02-11 8:41 ` Vineet Gupta
0 siblings, 0 replies; 9+ messages in thread
From: Vineet Gupta @ 2013-02-11 8:41 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Grant Likely, Arnd Bergmann, linux-serial, Vineet Gupta,
devicetree-discuss, Rob Herring, Rob Landley, linux-kernel
-replace "baud" with "current-speed"
-if uart alias doesn't exist in DT, don't abort, pick 0
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: devicetree-discuss@lists.ozlabs.org
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Rob Landley <rob@landley.net>
Cc: linux-serial@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
.../devicetree/bindings/tty/serial/arc-uart.txt | 4 ++--
drivers/tty/serial/arc_uart.c | 10 ++++------
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt b/Documentation/devicetree/bindings/tty/serial/arc-uart.txt
index c3bd8f9..5cae2eb 100644
--- a/Documentation/devicetree/bindings/tty/serial/arc-uart.txt
+++ b/Documentation/devicetree/bindings/tty/serial/arc-uart.txt
@@ -5,7 +5,7 @@ Required properties:
- reg : offset and length of the register set for the device.
- interrupts : device interrupt
- clock-frequency : the input clock frequency for the UART
-- baud : baud rate for UART
+- current-speed : baud rate for UART
e.g.
@@ -14,7 +14,7 @@ arcuart0: serial@c0fc1000 {
reg = <0xc0fc1000 0x100>;
interrupts = <5>;
clock-frequency = <80000000>;
- baud = <115200>;
+ current-speed = <115200>;
status = "okay";
};
diff --git a/drivers/tty/serial/arc_uart.c b/drivers/tty/serial/arc_uart.c
index 6f7eadc..d97e194 100644
--- a/drivers/tty/serial/arc_uart.c
+++ b/drivers/tty/serial/arc_uart.c
@@ -547,8 +547,8 @@ arc_uart_init_one(struct platform_device *pdev, int dev_id)
}
uart->port.uartclk = val;
- if (of_property_read_u32(np, "baud", &val)) {
- dev_err(&pdev->dev, "baud property NOT set\n");
+ if (of_property_read_u32(np, "current-speed", &val)) {
+ dev_err(&pdev->dev, "current-speed property NOT set\n");
return -EINVAL;
}
uart->baud = val;
@@ -694,10 +694,8 @@ static int arc_serial_probe(struct platform_device *pdev)
return -ENODEV;
dev_id = of_alias_get_id(np, "serial");
- if (dev_id < 0) {
- dev_err(&pdev->dev, "failed to get alias id: %d\n", dev_id);
- return dev_id;
- }
+ if (dev_id < 0)
+ dev_id = 0;
rc = arc_uart_init_one(pdev, dev_id);
if (rc)
--
1.7.4.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 4/4] serial/arc-uart: switch to devicetree based probing
2013-02-09 6:45 ` Vineet Gupta
2013-02-09 9:28 ` Arnd Bergmann
@ 2013-02-13 20:47 ` Grant Likely
1 sibling, 0 replies; 9+ messages in thread
From: Grant Likely @ 2013-02-13 20:47 UTC (permalink / raw)
To: Vineet Gupta
Cc: linux-serial, linux-kernel, Arnd Bergmann, Greg Kroah-Hartman,
devicetree-discuss, Rob Herring, Rob Landley
On Sat, 9 Feb 2013 12:15:10 +0530, Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:
> On Saturday 09 February 2013 04:31 AM, Grant Likely wrote:
> > On Fri, 11 Jan 2013 11:50:23 +0530, Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:
> >> +- clock-frequency : the input clock frequency for the UART
> >> +- baud : baud rate for UART
> > change 'baud' to 'current-speed'. There is already precedence for this
> > with other serial devices.
>
> While I'm OK with this - I can only see of_serial.c following the rule :-)
> More importantly I'm not clear about the logistics of this fix. Obviously this has
> a bearing on DT files in arch/arc/boot/*. So are such changes (platform + driver)
> routed thru the subsystem tree or the arch tree or bits from both with
> bisectability not considered - which feels wrong. We have to also consider the
> fact that Greg has closed the tty/serial for 3.9. So while I have no objection to
> your comment, it seems that the it needs to wait till 3.9-rc1 - or is there an
> alternate way.
I would consider it a bug fix. The binding isn't what it should be and
it needs to be addressed before appearing in a released kernel. If this
patch has already been merged, then write and post a fixup patch.
> >
> >> @@ -673,8 +693,18 @@ static int __init arc_serial_probe_earlyprintk(struct platform_device *pdev)
> >> static int arc_serial_probe(struct platform_device *pdev)
> >> {
> >> int rc, dev_id;
> >> + struct device_node *np = pdev->dev.of_node;
> >> +
> >> + /* no device tree device */
> >> + if (!np)
> >> + return -ENODEV;
> > This breaks non-DT users. Is this what you intend? It creates a flag day
> > where users have to switch from non-DT to DT cold-turkey.
>
> Not supporting non-DT user was not the idea - it just simplifies the code a bit
> given that it would only even be runtime used in a ARC Linux port based platform -
> which unconditionally enables OF. Further - the ARC port itself is not yet
> upstream so there are no "official" user of this in tree driver.
> FWIW, ARC Linux port was recently reviewed on lkml/arch mailing lists and is now
> in linux-next for a possible 3.9 merge.
If there are no users, then nobody is broken. If this driver only
supports DT platforms then my comment can be ignored.
> >> + dev_id = of_alias_get_id(np, "serial");
> >> + if (dev_id < 0) {
> >> + dev_err(&pdev->dev, "failed to get alias id: %d\n", dev_id);
> >> + return dev_id;
> >> + }
> > Don't fail on this. If you can't get an id then choose one dynamically.
>
> You mean just assume 0.
No, I mean dynamically assign an ID from ids that are available. Say you
had two of these devices in a system, and neither had an alias; they
couldn't both be '0'. :-)
g.
>
> Thanks for reviewing.
> -Vineet
--
Grant Likely, B.Sc, P.Eng.
Secret Lab Technologies, Ltd.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-02-13 20:47 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1357885223-19243-1-git-send-email-vgupta@synopsys.com>
2013-01-11 6:20 ` [PATCH 4/4] serial/arc-uart: switch to devicetree based probing Vineet Gupta
2013-01-11 11:33 ` Arnd Bergmann
2013-01-11 11:55 ` Vineet Gupta
2013-01-11 20:17 ` Arnd Bergmann
2013-02-08 23:01 ` Grant Likely
2013-02-09 6:45 ` Vineet Gupta
2013-02-09 9:28 ` Arnd Bergmann
[not found] ` <1360572101-12744-1-git-send-email-vgupta@synopsys.com>
2013-02-11 8:41 ` [PATCH] serial/arc-uart: Miscll DT related updates (Grant's review comments) Vineet Gupta
2013-02-13 20:47 ` [PATCH 4/4] serial/arc-uart: switch to devicetree based probing Grant Likely
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).