All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support
@ 2012-06-15 15:35 Fabio Estevam
  2012-06-15 15:35   ` Fabio Estevam
                   ` (3 more replies)
  0 siblings, 4 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-15 15:35 UTC (permalink / raw)
  To: linux-arm-kernel

Add auart0 and auart3 support.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v2:
- Fix compatible property
Changes since v1:
- Merged patches 1 and 2 from v1 into this one
 arch/arm/boot/dts/imx28-evk.dts |   12 ++++++++++++
 arch/arm/boot/dts/imx28.dtsi    |   26 ++++++++++++++++++++++++++
 2 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts
index ee520a5..4353f48 100644
--- a/arch/arm/boot/dts/imx28-evk.dts
+++ b/arch/arm/boot/dts/imx28-evk.dts
@@ -73,6 +73,18 @@
 				pinctrl-0 = <&duart_pins_a>;
 				status = "okay";
 			};
+
+			auart0: serial at 8006a000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&auart0_pins_a>;
+				status = "okay";
+			};
+
+			auart3: serial at 80070000 {
+				pinctrl-names = "default";
+				pinctrl-0 = <&auart3_pins_a>;
+				status = "okay";
+			};
 		};
 	};
 
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
index 4634cb8..f26e0d6 100644
--- a/arch/arm/boot/dts/imx28.dtsi
+++ b/arch/arm/boot/dts/imx28.dtsi
@@ -22,6 +22,11 @@
 		gpio4 = &gpio4;
 		saif0 = &saif0;
 		saif1 = &saif1;
+		serial0 = &auart0;
+		serial1 = &auart1;
+		serial2 = &auart2;
+		serial3 = &auart3;
+		serial4 = &auart4;
 	};
 
 	cpus {
@@ -167,6 +172,22 @@
 					fsl,pull-up = <0>;
 				};
 
+				auart0_pins_a: auart0 at 0 {
+					reg = <0>;
+					fsl,pinmux-ids = <0x3000 0x3010 0x3020 0x3030>;
+					fsl,drive-strength = <0>;
+					fsl,voltage = <1>;
+					fsl,pull-up = <0>;
+				};
+
+				auart3_pins_a: auart3 at 0 {
+					reg = <0>;
+					fsl,pinmux-ids = <0x30c0 0x30d0 0x30e0 0x30f0>;
+					fsl,drive-strength = <0>;
+					fsl,voltage = <1>;
+					fsl,pull-up = <0>;
+				};
+
 				mac0_pins_a: mac0 at 0 {
 					reg = <0>;
 					fsl,pinmux-ids = <0x4000 0x4010 0x4020
@@ -404,30 +425,35 @@
 			};
 
 			auart0: serial@8006a000 {
+				compatible = "fsl,imx28-auart", "fsl,imx23-auart";
 				reg = <0x8006a000 0x2000>;
 				interrupts = <112 70 71>;
 				status = "disabled";
 			};
 
 			auart1: serial at 8006c000 {
+				compatible = "fsl,imx28-auart", "fsl,imx23-auart";
 				reg = <0x8006c000 0x2000>;
 				interrupts = <113 72 73>;
 				status = "disabled";
 			};
 
 			auart2: serial at 8006e000 {
+				compatible = "fsl,imx28-auart", "fsl,imx23-auart";
 				reg = <0x8006e000 0x2000>;
 				interrupts = <114 74 75>;
 				status = "disabled";
 			};
 
 			auart3: serial at 80070000 {
+				compatible = "fsl,imx28-auart", "fsl,imx23-auart";
 				reg = <0x80070000 0x2000>;
 				interrupts = <115 76 77>;
 				status = "disabled";
 			};
 
 			auart4: serial at 80072000 {
+				compatible = "fsl,imx28-auart", "fsl,imx23-auart";
 				reg = <0x80072000 0x2000>;
 				interrupts = <116 78 79>;
 				status = "disabled";
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-15 15:35 [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support Fabio Estevam
@ 2012-06-15 15:35   ` Fabio Estevam
  2012-06-15 15:48 ` [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support Marek Vasut
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-15 15:35 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: shawn.guo, kernel, marex, matt, snijsure, rob.herring,
	Fabio Estevam, Grant Likely, Alan Cox, linux-serial

Allow device tree probing.

Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: <linux-serial@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v2:
- Change compatible string
- Add aliases information in bindings doc
- Remove unneeded mxs_auart_probe_pdev function
- Remove "ifdef CONFIG_OF"
- Remove of_match_ptr wrapper
Changes since v1:
- Merged patches 3 and 5 from v1 into this one
 .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++
 drivers/tty/serial/mxs-auart.c                     |   49 +++++++++++++++++++-
 2 files changed, 75 insertions(+), 1 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt

diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
new file mode 100644
index 0000000..2ee903f
--- /dev/null
+++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
@@ -0,0 +1,27 @@
+* Freescale MXS Application UART (AUART)
+
+Required properties:
+- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
+  imx23 and imx28.
+- reg : Address and length of the register set for the device
+- interrupts : Should contain the auart interrupt numbers
+
+Example:
+auart0: serial@8006a000 {
+	compatible = "fsl,imx28-auart", "fsl,imx23-auart";
+	reg = <0x8006a000 0x2000>;
+	interrupts = <112 70 71>;
+};
+
+Note: Each auart port should have an alias correctly numbered in "aliases"
+node.
+
+Example:
+
+aliases {
+	serial0 = &auart0;
+	serial1 = &auart1;
+	serial2 = &auart2;
+	serial3 = &auart3;
+	serial4 = &auart4;
+};
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ec56d83..87bbe9c 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -33,6 +33,7 @@
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/pinctrl/consumer.h>
+#include <linux/of_device.h>
 
 #include <asm/cacheflush.h>
 
@@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
 #endif
 };
 
+/*
+ * This function returns 1 if pdev isn't a device instatiated by dt, 0 if it
+ * could successfully get all information from dt or a negative errno.
+ */
+static int serial_mxs_probe_dt(struct mxs_auart_port *s,
+		struct platform_device *pdev)
+{
+	struct device_node *np = pdev->dev.of_node;
+	int ret;
+
+	if (!np)
+		/* no device tree device */
+		return 1;
+
+	ret = of_alias_get_id(np, "serial");
+	if (ret < 0) {
+		dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
+		return ret;
+	}
+	s->port.line = ret;
+
+	return 0;
+}
+
 static int __devinit mxs_auart_probe(struct platform_device *pdev)
 {
 	struct mxs_auart_port *s;
@@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
 		goto out;
 	}
 
+	ret = serial_mxs_probe_dt(s, pdev);
+	if (ret > 0)
+		s->port.line = pdev->id < 0 ? 0 : pdev->id;
+	else if (ret < 0)
+		goto out_free;
+
 	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
 	if (IS_ERR(pinctrl)) {
 		ret = PTR_ERR(pinctrl);
@@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
 	s->port.membase = ioremap(r->start, resource_size(r));
 	s->port.ops = &mxs_auart_ops;
 	s->port.iotype = UPIO_MEM;
-	s->port.line = pdev->id < 0 ? 0 : pdev->id;
 	s->port.fifosize = 16;
 	s->port.uartclk = clk_get_rate(s->clk);
 	s->port.type = PORT_IMX;
@@ -769,13 +799,29 @@ static int __devexit mxs_auart_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static struct platform_device_id mxs_auart_devtype[] = {
+	{
+		.name = "mxs-auart",
+		/* sentinel */
+	}
+};
+MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
+
+static struct of_device_id mxs_auart_dt_ids[] = {
+	{ .compatible = "fsl,imx23-auart", },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
+
 static struct platform_driver mxs_auart_driver = {
 	.probe = mxs_auart_probe,
 	.remove = __devexit_p(mxs_auart_remove),
 	.driver = {
 		.name = "mxs-auart",
 		.owner = THIS_MODULE,
+		.of_match_table = mxs_auart_dt_ids,
 	},
+		.id_table = mxs_auart_devtype,
 };
 
 static int __init mxs_auart_init(void)
@@ -807,3 +853,4 @@ module_init(mxs_auart_init);
 module_exit(mxs_auart_exit);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Freescale MXS application uart driver");
+MODULE_ALIAS("platform:mxs-auart");
-- 
1.7.1



^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-15 15:35   ` Fabio Estevam
  0 siblings, 0 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-15 15:35 UTC (permalink / raw)
  To: linux-arm-kernel

Allow device tree probing.

Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: <linux-serial@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v2:
- Change compatible string
- Add aliases information in bindings doc
- Remove unneeded mxs_auart_probe_pdev function
- Remove "ifdef CONFIG_OF"
- Remove of_match_ptr wrapper
Changes since v1:
- Merged patches 3 and 5 from v1 into this one
 .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++
 drivers/tty/serial/mxs-auart.c                     |   49 +++++++++++++++++++-
 2 files changed, 75 insertions(+), 1 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt

diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
new file mode 100644
index 0000000..2ee903f
--- /dev/null
+++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
@@ -0,0 +1,27 @@
+* Freescale MXS Application UART (AUART)
+
+Required properties:
+- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
+  imx23 and imx28.
+- reg : Address and length of the register set for the device
+- interrupts : Should contain the auart interrupt numbers
+
+Example:
+auart0: serial at 8006a000 {
+	compatible = "fsl,imx28-auart", "fsl,imx23-auart";
+	reg = <0x8006a000 0x2000>;
+	interrupts = <112 70 71>;
+};
+
+Note: Each auart port should have an alias correctly numbered in "aliases"
+node.
+
+Example:
+
+aliases {
+	serial0 = &auart0;
+	serial1 = &auart1;
+	serial2 = &auart2;
+	serial3 = &auart3;
+	serial4 = &auart4;
+};
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ec56d83..87bbe9c 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -33,6 +33,7 @@
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/pinctrl/consumer.h>
+#include <linux/of_device.h>
 
 #include <asm/cacheflush.h>
 
@@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
 #endif
 };
 
+/*
+ * This function returns 1 if pdev isn't a device instatiated by dt, 0 if it
+ * could successfully get all information from dt or a negative errno.
+ */
+static int serial_mxs_probe_dt(struct mxs_auart_port *s,
+		struct platform_device *pdev)
+{
+	struct device_node *np = pdev->dev.of_node;
+	int ret;
+
+	if (!np)
+		/* no device tree device */
+		return 1;
+
+	ret = of_alias_get_id(np, "serial");
+	if (ret < 0) {
+		dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
+		return ret;
+	}
+	s->port.line = ret;
+
+	return 0;
+}
+
 static int __devinit mxs_auart_probe(struct platform_device *pdev)
 {
 	struct mxs_auart_port *s;
@@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
 		goto out;
 	}
 
+	ret = serial_mxs_probe_dt(s, pdev);
+	if (ret > 0)
+		s->port.line = pdev->id < 0 ? 0 : pdev->id;
+	else if (ret < 0)
+		goto out_free;
+
 	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
 	if (IS_ERR(pinctrl)) {
 		ret = PTR_ERR(pinctrl);
@@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
 	s->port.membase = ioremap(r->start, resource_size(r));
 	s->port.ops = &mxs_auart_ops;
 	s->port.iotype = UPIO_MEM;
-	s->port.line = pdev->id < 0 ? 0 : pdev->id;
 	s->port.fifosize = 16;
 	s->port.uartclk = clk_get_rate(s->clk);
 	s->port.type = PORT_IMX;
@@ -769,13 +799,29 @@ static int __devexit mxs_auart_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static struct platform_device_id mxs_auart_devtype[] = {
+	{
+		.name = "mxs-auart",
+		/* sentinel */
+	}
+};
+MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
+
+static struct of_device_id mxs_auart_dt_ids[] = {
+	{ .compatible = "fsl,imx23-auart", },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
+
 static struct platform_driver mxs_auart_driver = {
 	.probe = mxs_auart_probe,
 	.remove = __devexit_p(mxs_auart_remove),
 	.driver = {
 		.name = "mxs-auart",
 		.owner = THIS_MODULE,
+		.of_match_table = mxs_auart_dt_ids,
 	},
+		.id_table = mxs_auart_devtype,
 };
 
 static int __init mxs_auart_init(void)
@@ -807,3 +853,4 @@ module_init(mxs_auart_init);
 module_exit(mxs_auart_exit);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Freescale MXS application uart driver");
+MODULE_ALIAS("platform:mxs-auart");
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* Re: [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-15 15:35   ` Fabio Estevam
@ 2012-06-15 15:48     ` Marek Vasut
  -1 siblings, 0 replies; 37+ messages in thread
From: Marek Vasut @ 2012-06-15 15:48 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-arm-kernel, shawn.guo, kernel, matt, snijsure, rob.herring,
	Grant Likely, Alan Cox, linux-serial

Dear Fabio Estevam,

> Allow device tree probing.
> 
> Cc: Grant Likely <grant.likely@secretlab.ca>
> Cc: Rob Herring <rob.herring@calxeda.com>
> Cc: Alan Cox <alan@linux.intel.com>
> Cc: <linux-serial@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>

Acked-by: Marek Vasut <marex@denx.de>

> ---
> Changes since v2:
> - Change compatible string
> - Add aliases information in bindings doc
> - Remove unneeded mxs_auart_probe_pdev function
> - Remove "ifdef CONFIG_OF"
> - Remove of_match_ptr wrapper
> Changes since v1:
> - Merged patches 3 and 5 from v1 into this one
>  .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++
>  drivers/tty/serial/mxs-auart.c                     |   49
> +++++++++++++++++++- 2 files changed, 75 insertions(+), 1 deletions(-)
>  create mode 100644
> Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> 
> diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt new file
> mode 100644
> index 0000000..2ee903f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> @@ -0,0 +1,27 @@
> +* Freescale MXS Application UART (AUART)
> +
> +Required properties:
> +- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
> +  imx23 and imx28.
> +- reg : Address and length of the register set for the device
> +- interrupts : Should contain the auart interrupt numbers
> +
> +Example:
> +auart0: serial@8006a000 {
> +	compatible = "fsl,imx28-auart", "fsl,imx23-auart";
> +	reg = <0x8006a000 0x2000>;
> +	interrupts = <112 70 71>;
> +};
> +
> +Note: Each auart port should have an alias correctly numbered in "aliases"
> +node.
> +
> +Example:
> +
> +aliases {
> +	serial0 = &auart0;
> +	serial1 = &auart1;
> +	serial2 = &auart2;
> +	serial3 = &auart3;
> +	serial4 = &auart4;
> +};
> diff --git a/drivers/tty/serial/mxs-auart.c
> b/drivers/tty/serial/mxs-auart.c index ec56d83..87bbe9c 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -33,6 +33,7 @@
>  #include <linux/delay.h>
>  #include <linux/io.h>
>  #include <linux/pinctrl/consumer.h>
> +#include <linux/of_device.h>
> 
>  #include <asm/cacheflush.h>
> 
> @@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
>  #endif
>  };
> 
> +/*
> + * This function returns 1 if pdev isn't a device instatiated by dt, 0 if
> it + * could successfully get all information from dt or a negative errno.
> + */
> +static int serial_mxs_probe_dt(struct mxs_auart_port *s,
> +		struct platform_device *pdev)
> +{
> +	struct device_node *np = pdev->dev.of_node;
> +	int ret;
> +
> +	if (!np)
> +		/* no device tree device */
> +		return 1;
> +
> +	ret = of_alias_get_id(np, "serial");
> +	if (ret < 0) {
> +		dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
> +		return ret;
> +	}
> +	s->port.line = ret;
> +
> +	return 0;
> +}
> +
>  static int __devinit mxs_auart_probe(struct platform_device *pdev)
>  {
>  	struct mxs_auart_port *s;
> @@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct
> platform_device *pdev) goto out;
>  	}
> 
> +	ret = serial_mxs_probe_dt(s, pdev);
> +	if (ret > 0)
> +		s->port.line = pdev->id < 0 ? 0 : pdev->id;
> +	else if (ret < 0)
> +		goto out_free;
> +
>  	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>  	if (IS_ERR(pinctrl)) {
>  		ret = PTR_ERR(pinctrl);
> @@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct
> platform_device *pdev) s->port.membase = ioremap(r->start,
> resource_size(r));
>  	s->port.ops = &mxs_auart_ops;
>  	s->port.iotype = UPIO_MEM;
> -	s->port.line = pdev->id < 0 ? 0 : pdev->id;
>  	s->port.fifosize = 16;
>  	s->port.uartclk = clk_get_rate(s->clk);
>  	s->port.type = PORT_IMX;
> @@ -769,13 +799,29 @@ static int __devexit mxs_auart_remove(struct
> platform_device *pdev) return 0;
>  }
> 
> +static struct platform_device_id mxs_auart_devtype[] = {
> +	{
> +		.name = "mxs-auart",
> +		/* sentinel */
> +	}
> +};
> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
> +
> +static struct of_device_id mxs_auart_dt_ids[] = {
> +	{ .compatible = "fsl,imx23-auart", },
> +	{ /* sentinel */ }
> +};
> +MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
> +
>  static struct platform_driver mxs_auart_driver = {
>  	.probe = mxs_auart_probe,
>  	.remove = __devexit_p(mxs_auart_remove),
>  	.driver = {
>  		.name = "mxs-auart",
>  		.owner = THIS_MODULE,
> +		.of_match_table = mxs_auart_dt_ids,
>  	},
> +		.id_table = mxs_auart_devtype,
>  };
> 
>  static int __init mxs_auart_init(void)
> @@ -807,3 +853,4 @@ module_init(mxs_auart_init);
>  module_exit(mxs_auart_exit);
>  MODULE_LICENSE("GPL");
>  MODULE_DESCRIPTION("Freescale MXS application uart driver");
> +MODULE_ALIAS("platform:mxs-auart");

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-15 15:48     ` Marek Vasut
  0 siblings, 0 replies; 37+ messages in thread
From: Marek Vasut @ 2012-06-15 15:48 UTC (permalink / raw)
  To: linux-arm-kernel

Dear Fabio Estevam,

> Allow device tree probing.
> 
> Cc: Grant Likely <grant.likely@secretlab.ca>
> Cc: Rob Herring <rob.herring@calxeda.com>
> Cc: Alan Cox <alan@linux.intel.com>
> Cc: <linux-serial@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>

Acked-by: Marek Vasut <marex@denx.de>

> ---
> Changes since v2:
> - Change compatible string
> - Add aliases information in bindings doc
> - Remove unneeded mxs_auart_probe_pdev function
> - Remove "ifdef CONFIG_OF"
> - Remove of_match_ptr wrapper
> Changes since v1:
> - Merged patches 3 and 5 from v1 into this one
>  .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++
>  drivers/tty/serial/mxs-auart.c                     |   49
> +++++++++++++++++++- 2 files changed, 75 insertions(+), 1 deletions(-)
>  create mode 100644
> Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> 
> diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt new file
> mode 100644
> index 0000000..2ee903f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> @@ -0,0 +1,27 @@
> +* Freescale MXS Application UART (AUART)
> +
> +Required properties:
> +- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
> +  imx23 and imx28.
> +- reg : Address and length of the register set for the device
> +- interrupts : Should contain the auart interrupt numbers
> +
> +Example:
> +auart0: serial at 8006a000 {
> +	compatible = "fsl,imx28-auart", "fsl,imx23-auart";
> +	reg = <0x8006a000 0x2000>;
> +	interrupts = <112 70 71>;
> +};
> +
> +Note: Each auart port should have an alias correctly numbered in "aliases"
> +node.
> +
> +Example:
> +
> +aliases {
> +	serial0 = &auart0;
> +	serial1 = &auart1;
> +	serial2 = &auart2;
> +	serial3 = &auart3;
> +	serial4 = &auart4;
> +};
> diff --git a/drivers/tty/serial/mxs-auart.c
> b/drivers/tty/serial/mxs-auart.c index ec56d83..87bbe9c 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -33,6 +33,7 @@
>  #include <linux/delay.h>
>  #include <linux/io.h>
>  #include <linux/pinctrl/consumer.h>
> +#include <linux/of_device.h>
> 
>  #include <asm/cacheflush.h>
> 
> @@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
>  #endif
>  };
> 
> +/*
> + * This function returns 1 if pdev isn't a device instatiated by dt, 0 if
> it + * could successfully get all information from dt or a negative errno.
> + */
> +static int serial_mxs_probe_dt(struct mxs_auart_port *s,
> +		struct platform_device *pdev)
> +{
> +	struct device_node *np = pdev->dev.of_node;
> +	int ret;
> +
> +	if (!np)
> +		/* no device tree device */
> +		return 1;
> +
> +	ret = of_alias_get_id(np, "serial");
> +	if (ret < 0) {
> +		dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
> +		return ret;
> +	}
> +	s->port.line = ret;
> +
> +	return 0;
> +}
> +
>  static int __devinit mxs_auart_probe(struct platform_device *pdev)
>  {
>  	struct mxs_auart_port *s;
> @@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct
> platform_device *pdev) goto out;
>  	}
> 
> +	ret = serial_mxs_probe_dt(s, pdev);
> +	if (ret > 0)
> +		s->port.line = pdev->id < 0 ? 0 : pdev->id;
> +	else if (ret < 0)
> +		goto out_free;
> +
>  	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>  	if (IS_ERR(pinctrl)) {
>  		ret = PTR_ERR(pinctrl);
> @@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct
> platform_device *pdev) s->port.membase = ioremap(r->start,
> resource_size(r));
>  	s->port.ops = &mxs_auart_ops;
>  	s->port.iotype = UPIO_MEM;
> -	s->port.line = pdev->id < 0 ? 0 : pdev->id;
>  	s->port.fifosize = 16;
>  	s->port.uartclk = clk_get_rate(s->clk);
>  	s->port.type = PORT_IMX;
> @@ -769,13 +799,29 @@ static int __devexit mxs_auart_remove(struct
> platform_device *pdev) return 0;
>  }
> 
> +static struct platform_device_id mxs_auart_devtype[] = {
> +	{
> +		.name = "mxs-auart",
> +		/* sentinel */
> +	}
> +};
> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
> +
> +static struct of_device_id mxs_auart_dt_ids[] = {
> +	{ .compatible = "fsl,imx23-auart", },
> +	{ /* sentinel */ }
> +};
> +MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
> +
>  static struct platform_driver mxs_auart_driver = {
>  	.probe = mxs_auart_probe,
>  	.remove = __devexit_p(mxs_auart_remove),
>  	.driver = {
>  		.name = "mxs-auart",
>  		.owner = THIS_MODULE,
> +		.of_match_table = mxs_auart_dt_ids,
>  	},
> +		.id_table = mxs_auart_devtype,
>  };
> 
>  static int __init mxs_auart_init(void)
> @@ -807,3 +853,4 @@ module_init(mxs_auart_init);
>  module_exit(mxs_auart_exit);
>  MODULE_LICENSE("GPL");
>  MODULE_DESCRIPTION("Freescale MXS application uart driver");
> +MODULE_ALIAS("platform:mxs-auart");

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support
  2012-06-15 15:35 [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support Fabio Estevam
  2012-06-15 15:35   ` Fabio Estevam
@ 2012-06-15 15:48 ` Marek Vasut
  2012-06-15 16:03 ` Shawn Guo
  2012-06-18 13:06   ` Fabio Estevam
  3 siblings, 0 replies; 37+ messages in thread
From: Marek Vasut @ 2012-06-15 15:48 UTC (permalink / raw)
  To: linux-arm-kernel

Dear Fabio Estevam,

> Add auart0 and auart3 support.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>

Acked-by: Marek Vasut <marex@denx.de>

> ---
> Changes since v2:
> - Fix compatible property
> Changes since v1:
> - Merged patches 1 and 2 from v1 into this one
>  arch/arm/boot/dts/imx28-evk.dts |   12 ++++++++++++
>  arch/arm/boot/dts/imx28.dtsi    |   26 ++++++++++++++++++++++++++
>  2 files changed, 38 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/imx28-evk.dts
> b/arch/arm/boot/dts/imx28-evk.dts index ee520a5..4353f48 100644
> --- a/arch/arm/boot/dts/imx28-evk.dts
> +++ b/arch/arm/boot/dts/imx28-evk.dts
> @@ -73,6 +73,18 @@
>  				pinctrl-0 = <&duart_pins_a>;
>  				status = "okay";
>  			};
> +
> +			auart0: serial at 8006a000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&auart0_pins_a>;
> +				status = "okay";
> +			};
> +
> +			auart3: serial at 80070000 {
> +				pinctrl-names = "default";
> +				pinctrl-0 = <&auart3_pins_a>;
> +				status = "okay";
> +			};
>  		};
>  	};
> 
> diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
> index 4634cb8..f26e0d6 100644
> --- a/arch/arm/boot/dts/imx28.dtsi
> +++ b/arch/arm/boot/dts/imx28.dtsi
> @@ -22,6 +22,11 @@
>  		gpio4 = &gpio4;
>  		saif0 = &saif0;
>  		saif1 = &saif1;
> +		serial0 = &auart0;
> +		serial1 = &auart1;
> +		serial2 = &auart2;
> +		serial3 = &auart3;
> +		serial4 = &auart4;
>  	};
> 
>  	cpus {
> @@ -167,6 +172,22 @@
>  					fsl,pull-up = <0>;
>  				};
> 
> +				auart0_pins_a: auart0 at 0 {
> +					reg = <0>;
> +					fsl,pinmux-ids = <0x3000 0x3010 0x3020 
0x3030>;
> +					fsl,drive-strength = <0>;
> +					fsl,voltage = <1>;
> +					fsl,pull-up = <0>;
> +				};
> +
> +				auart3_pins_a: auart3 at 0 {
> +					reg = <0>;
> +					fsl,pinmux-ids = <0x30c0 0x30d0 0x30e0 
0x30f0>;
> +					fsl,drive-strength = <0>;
> +					fsl,voltage = <1>;
> +					fsl,pull-up = <0>;
> +				};
> +
>  				mac0_pins_a: mac0 at 0 {
>  					reg = <0>;
>  					fsl,pinmux-ids = <0x4000 0x4010 0x4020
> @@ -404,30 +425,35 @@
>  			};
> 
>  			auart0: serial at 8006a000 {
> +				compatible = "fsl,imx28-auart", "fsl,imx23-
auart";
>  				reg = <0x8006a000 0x2000>;
>  				interrupts = <112 70 71>;
>  				status = "disabled";
>  			};
> 
>  			auart1: serial at 8006c000 {
> +				compatible = "fsl,imx28-auart", "fsl,imx23-
auart";
>  				reg = <0x8006c000 0x2000>;
>  				interrupts = <113 72 73>;
>  				status = "disabled";
>  			};
> 
>  			auart2: serial at 8006e000 {
> +				compatible = "fsl,imx28-auart", "fsl,imx23-
auart";
>  				reg = <0x8006e000 0x2000>;
>  				interrupts = <114 74 75>;
>  				status = "disabled";
>  			};
> 
>  			auart3: serial at 80070000 {
> +				compatible = "fsl,imx28-auart", "fsl,imx23-
auart";
>  				reg = <0x80070000 0x2000>;
>  				interrupts = <115 76 77>;
>  				status = "disabled";
>  			};
> 
>  			auart4: serial at 80072000 {
> +				compatible = "fsl,imx28-auart", "fsl,imx23-
auart";
>  				reg = <0x80072000 0x2000>;
>  				interrupts = <116 78 79>;
>  				status = "disabled";

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support
  2012-06-15 15:35 [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support Fabio Estevam
  2012-06-15 15:35   ` Fabio Estevam
  2012-06-15 15:48 ` [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support Marek Vasut
@ 2012-06-15 16:03 ` Shawn Guo
  2012-06-18 13:06   ` Fabio Estevam
  3 siblings, 0 replies; 37+ messages in thread
From: Shawn Guo @ 2012-06-15 16:03 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jun 15, 2012 at 12:35:56PM -0300, Fabio Estevam wrote:
> Add auart0 and auart3 support.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>

Applied, thanks.

Regards,
Shawn

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-15 15:35   ` Fabio Estevam
@ 2012-06-15 16:06     ` Shawn Guo
  -1 siblings, 0 replies; 37+ messages in thread
From: Shawn Guo @ 2012-06-15 16:06 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-arm-kernel, kernel, marex, matt, snijsure, rob.herring,
	Grant Likely, Alan Cox, linux-serial

On Fri, Jun 15, 2012 at 12:35:57PM -0300, Fabio Estevam wrote:
> +static struct platform_device_id mxs_auart_devtype[] = {
> +	{
> +		.name = "mxs-auart",
> +		/* sentinel */
> +	}
> +};
> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
...
> +		.id_table = mxs_auart_devtype,

I do not think we need these.

-- 
Regards,
Shawn


^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-15 16:06     ` Shawn Guo
  0 siblings, 0 replies; 37+ messages in thread
From: Shawn Guo @ 2012-06-15 16:06 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jun 15, 2012 at 12:35:57PM -0300, Fabio Estevam wrote:
> +static struct platform_device_id mxs_auart_devtype[] = {
> +	{
> +		.name = "mxs-auart",
> +		/* sentinel */
> +	}
> +};
> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
...
> +		.id_table = mxs_auart_devtype,

I do not think we need these.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-15 16:06     ` Shawn Guo
@ 2012-06-15 16:11       ` Fabio Estevam
  -1 siblings, 0 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-15 16:11 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Fabio Estevam, marex, snijsure, rob.herring, Grant Likely,
	kernel, linux-serial, matt, linux-arm-kernel, Alan Cox

On Fri, Jun 15, 2012 at 1:06 PM, Shawn Guo <shawn.guo@linaro.org> wrote:

>> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
> ...
>> +             .id_table = mxs_auart_devtype,
>
> I do not think we need these.

WIthout this, the non-dt kernel does not probe correctly.
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-15 16:11       ` Fabio Estevam
  0 siblings, 0 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-15 16:11 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jun 15, 2012 at 1:06 PM, Shawn Guo <shawn.guo@linaro.org> wrote:

>> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
> ...
>> + ? ? ? ? ? ? .id_table = mxs_auart_devtype,
>
> I do not think we need these.

WIthout this, the non-dt kernel does not probe correctly.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-15 16:11       ` Fabio Estevam
@ 2012-06-15 16:16         ` Marek Vasut
  -1 siblings, 0 replies; 37+ messages in thread
From: Marek Vasut @ 2012-06-15 16:16 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Shawn Guo, Fabio Estevam, snijsure, rob.herring, Grant Likely,
	kernel, linux-serial, matt, linux-arm-kernel, Alan Cox

Dear Fabio Estevam,

> On Fri, Jun 15, 2012 at 1:06 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> >> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
> > 
> > ...
> > 
> >> +             .id_table = mxs_auart_devtype,
> > 
> > I do not think we need these.
> 
> WIthout this, the non-dt kernel does not probe correctly.

But we don't support non-DT kernel anymore.

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-15 16:16         ` Marek Vasut
  0 siblings, 0 replies; 37+ messages in thread
From: Marek Vasut @ 2012-06-15 16:16 UTC (permalink / raw)
  To: linux-arm-kernel

Dear Fabio Estevam,

> On Fri, Jun 15, 2012 at 1:06 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> >> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
> > 
> > ...
> > 
> >> +             .id_table = mxs_auart_devtype,
> > 
> > I do not think we need these.
> 
> WIthout this, the non-dt kernel does not probe correctly.

But we don't support non-DT kernel anymore.

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-15 16:16         ` Marek Vasut
@ 2012-06-15 16:18           ` Fabio Estevam
  -1 siblings, 0 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-15 16:18 UTC (permalink / raw)
  To: Marek Vasut
  Cc: Shawn Guo, Fabio Estevam, snijsure, rob.herring, Grant Likely,
	kernel, linux-serial, matt, linux-arm-kernel, Alan Cox

On Fri, Jun 15, 2012 at 1:16 PM, Marek Vasut <marex@denx.de> wrote:
> Dear Fabio Estevam,
>
>> On Fri, Jun 15, 2012 at 1:06 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
>> >> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
>> >
>> > ...
>> >
>> >> +             .id_table = mxs_auart_devtype,
>> >
>> > I do not think we need these.
>>
>> WIthout this, the non-dt kernel does not probe correctly.
>
> But we don't support non-DT kernel anymore.

but I don't want my patch to break something that has been working for
a long time.
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-15 16:18           ` Fabio Estevam
  0 siblings, 0 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-15 16:18 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jun 15, 2012 at 1:16 PM, Marek Vasut <marex@denx.de> wrote:
> Dear Fabio Estevam,
>
>> On Fri, Jun 15, 2012 at 1:06 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
>> >> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
>> >
>> > ...
>> >
>> >> + ? ? ? ? ? ? .id_table = mxs_auart_devtype,
>> >
>> > I do not think we need these.
>>
>> WIthout this, the non-dt kernel does not probe correctly.
>
> But we don't support non-DT kernel anymore.

but I don't want my patch to break something that has been working for
a long time.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-15 16:18           ` Fabio Estevam
@ 2012-06-15 17:00             ` Marek Vasut
  -1 siblings, 0 replies; 37+ messages in thread
From: Marek Vasut @ 2012-06-15 17:00 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Shawn Guo, Fabio Estevam, snijsure, rob.herring, Grant Likely,
	kernel, linux-serial, matt, linux-arm-kernel, Alan Cox

Dear Fabio Estevam,

> On Fri, Jun 15, 2012 at 1:16 PM, Marek Vasut <marex@denx.de> wrote:
> > Dear Fabio Estevam,
> > 
> >> On Fri, Jun 15, 2012 at 1:06 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> >> >> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
> >> > 
> >> > ...
> >> > 
> >> >> +             .id_table = mxs_auart_devtype,
> >> > 
> >> > I do not think we need these.
> >> 
> >> WIthout this, the non-dt kernel does not probe correctly.
> > 
> > But we don't support non-DT kernel anymore.
> 
> but I don't want my patch to break something that has been working for
> a long time.

But we don't care if the non-DT case gets broken anyway *. It's unsupported and 
will be removed.

* that's how I understand it.

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-15 17:00             ` Marek Vasut
  0 siblings, 0 replies; 37+ messages in thread
From: Marek Vasut @ 2012-06-15 17:00 UTC (permalink / raw)
  To: linux-arm-kernel

Dear Fabio Estevam,

> On Fri, Jun 15, 2012 at 1:16 PM, Marek Vasut <marex@denx.de> wrote:
> > Dear Fabio Estevam,
> > 
> >> On Fri, Jun 15, 2012 at 1:06 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> >> >> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
> >> > 
> >> > ...
> >> > 
> >> >> +             .id_table = mxs_auart_devtype,
> >> > 
> >> > I do not think we need these.
> >> 
> >> WIthout this, the non-dt kernel does not probe correctly.
> > 
> > But we don't support non-DT kernel anymore.
> 
> but I don't want my patch to break something that has been working for
> a long time.

But we don't care if the non-DT case gets broken anyway *. It's unsupported and 
will be removed.

* that's how I understand it.

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-15 16:11       ` Fabio Estevam
@ 2012-06-16  1:59         ` Shawn Guo
  -1 siblings, 0 replies; 37+ messages in thread
From: Shawn Guo @ 2012-06-16  1:59 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: Fabio Estevam, marex, snijsure, rob.herring, Grant Likely,
	kernel, linux-serial, matt, linux-arm-kernel, Alan Cox

On Fri, Jun 15, 2012 at 01:11:12PM -0300, Fabio Estevam wrote:
> On Fri, Jun 15, 2012 at 1:06 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> 
> >> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
> > ...
> >> +             .id_table = mxs_auart_devtype,
> >
> > I do not think we need these.
> 
> WIthout this, the non-dt kernel does not probe correctly.

Are you sure about that?  I just tried to removed those and still
saw the following with non-DT boot.

[    0.810000] mxs-auart.0: ttyAPP0 at MMIO 0x8006a000 (irq = 112) is a mxs-auar t.0
[    0.820000] mxs-auart mxs-auart.0: Found APPUART 3.1.0
[    0.830000] mxs-auart.3: ttyAPP3 at MMIO 0x80070000 (irq = 115) is a mxs-auar t.3
[    0.840000] mxs-auart mxs-auart.3: Found APPUART 3.1.0

-- 
Regards,
Shawn

--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-16  1:59         ` Shawn Guo
  0 siblings, 0 replies; 37+ messages in thread
From: Shawn Guo @ 2012-06-16  1:59 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jun 15, 2012 at 01:11:12PM -0300, Fabio Estevam wrote:
> On Fri, Jun 15, 2012 at 1:06 PM, Shawn Guo <shawn.guo@linaro.org> wrote:
> 
> >> +MODULE_DEVICE_TABLE(platform, mxs_auart_devtype);
> > ...
> >> + ? ? ? ? ? ? .id_table = mxs_auart_devtype,
> >
> > I do not think we need these.
> 
> WIthout this, the non-dt kernel does not probe correctly.

Are you sure about that?  I just tried to removed those and still
saw the following with non-DT boot.

[    0.810000] mxs-auart.0: ttyAPP0 at MMIO 0x8006a000 (irq = 112) is a mxs-auar t.0
[    0.820000] mxs-auart mxs-auart.0: Found APPUART 3.1.0
[    0.830000] mxs-auart.3: ttyAPP3 at MMIO 0x80070000 (irq = 115) is a mxs-auar t.3
[    0.840000] mxs-auart mxs-auart.3: Found APPUART 3.1.0

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-15 17:00             ` Marek Vasut
@ 2012-06-16  2:01               ` Shawn Guo
  -1 siblings, 0 replies; 37+ messages in thread
From: Shawn Guo @ 2012-06-16  2:01 UTC (permalink / raw)
  To: Marek Vasut
  Cc: Fabio Estevam, Fabio Estevam, snijsure, rob.herring,
	Grant Likely, kernel, linux-serial, matt, linux-arm-kernel,
	Alan Cox

On Fri, Jun 15, 2012 at 07:00:21PM +0200, Marek Vasut wrote:
> But we don't care if the non-DT case gets broken anyway *. It's unsupported and 
> will be removed.
> 
We have to care about non-DT case before all those non-DT users (board
files) get removed from the tree.

-- 
Regards,
Shawn


^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-16  2:01               ` Shawn Guo
  0 siblings, 0 replies; 37+ messages in thread
From: Shawn Guo @ 2012-06-16  2:01 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jun 15, 2012 at 07:00:21PM +0200, Marek Vasut wrote:
> But we don't care if the non-DT case gets broken anyway *. It's unsupported and 
> will be removed.
> 
We have to care about non-DT case before all those non-DT users (board
files) get removed from the tree.

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-15 15:35 [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support Fabio Estevam
@ 2012-06-18 13:06   ` Fabio Estevam
  2012-06-15 15:48 ` [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support Marek Vasut
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-18 13:06 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: shawn.guo, kernel, marex, rob.herring, Fabio Estevam,
	Grant Likely, Alan Cox, linux-serial

Allow device tree probing.

Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: <linux-serial@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v3:
- Remove unneeded mxs_auart_devtype
Changes since v2:
- Change compatible string
- Add aliases information in bindings doc
- Remove unneeded mxs_auart_probe_pdev function
- Remove "ifdef CONFIG_OF"
- Remove of_match_ptr wrapper
Changes since v1:
- Merged patches 3 and 5 from v1 into this one
 .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++++
 drivers/tty/serial/mxs-auart.c                     |   40 +++++++++++++++++++-
 2 files changed, 66 insertions(+), 1 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt

diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
new file mode 100644
index 0000000..2ee903f
--- /dev/null
+++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
@@ -0,0 +1,27 @@
+* Freescale MXS Application UART (AUART)
+
+Required properties:
+- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
+  imx23 and imx28.
+- reg : Address and length of the register set for the device
+- interrupts : Should contain the auart interrupt numbers
+
+Example:
+auart0: serial@8006a000 {
+	compatible = "fsl,imx28-auart", "fsl,imx23-auart";
+	reg = <0x8006a000 0x2000>;
+	interrupts = <112 70 71>;
+};
+
+Note: Each auart port should have an alias correctly numbered in "aliases"
+node.
+
+Example:
+
+aliases {
+	serial0 = &auart0;
+	serial1 = &auart1;
+	serial2 = &auart2;
+	serial3 = &auart3;
+	serial4 = &auart4;
+};
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ec56d83..103087d 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -33,6 +33,7 @@
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/pinctrl/consumer.h>
+#include <linux/of_device.h>
 
 #include <asm/cacheflush.h>
 
@@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
 #endif
 };
 
+/*
+ * This function returns 1 if pdev isn't a device instatiated by dt, 0 if it
+ * could successfully get all information from dt or a negative errno.
+ */
+static int serial_mxs_probe_dt(struct mxs_auart_port *s,
+		struct platform_device *pdev)
+{
+	struct device_node *np = pdev->dev.of_node;
+	int ret;
+
+	if (!np)
+		/* no device tree device */
+		return 1;
+
+	ret = of_alias_get_id(np, "serial");
+	if (ret < 0) {
+		dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
+		return ret;
+	}
+	s->port.line = ret;
+
+	return 0;
+}
+
 static int __devinit mxs_auart_probe(struct platform_device *pdev)
 {
 	struct mxs_auart_port *s;
@@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
 		goto out;
 	}
 
+	ret = serial_mxs_probe_dt(s, pdev);
+	if (ret > 0)
+		s->port.line = pdev->id < 0 ? 0 : pdev->id;
+	else if (ret < 0)
+		goto out_free;
+
 	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
 	if (IS_ERR(pinctrl)) {
 		ret = PTR_ERR(pinctrl);
@@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
 	s->port.membase = ioremap(r->start, resource_size(r));
 	s->port.ops = &mxs_auart_ops;
 	s->port.iotype = UPIO_MEM;
-	s->port.line = pdev->id < 0 ? 0 : pdev->id;
 	s->port.fifosize = 16;
 	s->port.uartclk = clk_get_rate(s->clk);
 	s->port.type = PORT_IMX;
@@ -769,12 +799,19 @@ static int __devexit mxs_auart_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static struct of_device_id mxs_auart_dt_ids[] = {
+	{ .compatible = "fsl,imx23-auart", },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
+
 static struct platform_driver mxs_auart_driver = {
 	.probe = mxs_auart_probe,
 	.remove = __devexit_p(mxs_auart_remove),
 	.driver = {
 		.name = "mxs-auart",
 		.owner = THIS_MODULE,
+		.of_match_table = mxs_auart_dt_ids,
 	},
 };
 
@@ -807,3 +844,4 @@ module_init(mxs_auart_init);
 module_exit(mxs_auart_exit);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Freescale MXS application uart driver");
+MODULE_ALIAS("platform:mxs-auart");
-- 
1.7.1



^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-18 13:06   ` Fabio Estevam
  0 siblings, 0 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-18 13:06 UTC (permalink / raw)
  To: linux-arm-kernel

Allow device tree probing.

Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Alan Cox <alan@linux.intel.com>
Cc: <linux-serial@vger.kernel.org>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v3:
- Remove unneeded mxs_auart_devtype
Changes since v2:
- Change compatible string
- Add aliases information in bindings doc
- Remove unneeded mxs_auart_probe_pdev function
- Remove "ifdef CONFIG_OF"
- Remove of_match_ptr wrapper
Changes since v1:
- Merged patches 3 and 5 from v1 into this one
 .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++++
 drivers/tty/serial/mxs-auart.c                     |   40 +++++++++++++++++++-
 2 files changed, 66 insertions(+), 1 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt

diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
new file mode 100644
index 0000000..2ee903f
--- /dev/null
+++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
@@ -0,0 +1,27 @@
+* Freescale MXS Application UART (AUART)
+
+Required properties:
+- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
+  imx23 and imx28.
+- reg : Address and length of the register set for the device
+- interrupts : Should contain the auart interrupt numbers
+
+Example:
+auart0: serial at 8006a000 {
+	compatible = "fsl,imx28-auart", "fsl,imx23-auart";
+	reg = <0x8006a000 0x2000>;
+	interrupts = <112 70 71>;
+};
+
+Note: Each auart port should have an alias correctly numbered in "aliases"
+node.
+
+Example:
+
+aliases {
+	serial0 = &auart0;
+	serial1 = &auart1;
+	serial2 = &auart2;
+	serial3 = &auart3;
+	serial4 = &auart4;
+};
diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ec56d83..103087d 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -33,6 +33,7 @@
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/pinctrl/consumer.h>
+#include <linux/of_device.h>
 
 #include <asm/cacheflush.h>
 
@@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
 #endif
 };
 
+/*
+ * This function returns 1 if pdev isn't a device instatiated by dt, 0 if it
+ * could successfully get all information from dt or a negative errno.
+ */
+static int serial_mxs_probe_dt(struct mxs_auart_port *s,
+		struct platform_device *pdev)
+{
+	struct device_node *np = pdev->dev.of_node;
+	int ret;
+
+	if (!np)
+		/* no device tree device */
+		return 1;
+
+	ret = of_alias_get_id(np, "serial");
+	if (ret < 0) {
+		dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
+		return ret;
+	}
+	s->port.line = ret;
+
+	return 0;
+}
+
 static int __devinit mxs_auart_probe(struct platform_device *pdev)
 {
 	struct mxs_auart_port *s;
@@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
 		goto out;
 	}
 
+	ret = serial_mxs_probe_dt(s, pdev);
+	if (ret > 0)
+		s->port.line = pdev->id < 0 ? 0 : pdev->id;
+	else if (ret < 0)
+		goto out_free;
+
 	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
 	if (IS_ERR(pinctrl)) {
 		ret = PTR_ERR(pinctrl);
@@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
 	s->port.membase = ioremap(r->start, resource_size(r));
 	s->port.ops = &mxs_auart_ops;
 	s->port.iotype = UPIO_MEM;
-	s->port.line = pdev->id < 0 ? 0 : pdev->id;
 	s->port.fifosize = 16;
 	s->port.uartclk = clk_get_rate(s->clk);
 	s->port.type = PORT_IMX;
@@ -769,12 +799,19 @@ static int __devexit mxs_auart_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static struct of_device_id mxs_auart_dt_ids[] = {
+	{ .compatible = "fsl,imx23-auart", },
+	{ /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
+
 static struct platform_driver mxs_auart_driver = {
 	.probe = mxs_auart_probe,
 	.remove = __devexit_p(mxs_auart_remove),
 	.driver = {
 		.name = "mxs-auart",
 		.owner = THIS_MODULE,
+		.of_match_table = mxs_auart_dt_ids,
 	},
 };
 
@@ -807,3 +844,4 @@ module_init(mxs_auart_init);
 module_exit(mxs_auart_exit);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Freescale MXS application uart driver");
+MODULE_ALIAS("platform:mxs-auart");
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* Re: [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-18 13:06   ` Fabio Estevam
@ 2012-06-18 13:33     ` Shawn Guo
  -1 siblings, 0 replies; 37+ messages in thread
From: Shawn Guo @ 2012-06-18 13:33 UTC (permalink / raw)
  To: Fabio Estevam, Greg Kroah-Hartman
  Cc: linux-arm-kernel, kernel, marex, rob.herring, Grant Likely,
	Alan Cox, linux-serial

On Mon, Jun 18, 2012 at 10:06:09AM -0300, Fabio Estevam wrote:
> Allow device tree probing.
> 
> Cc: Grant Likely <grant.likely@secretlab.ca>
> Cc: Rob Herring <rob.herring@calxeda.com>
> Cc: Alan Cox <alan@linux.intel.com>
> Cc: <linux-serial@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> Changes since v3:
> - Remove unneeded mxs_auart_devtype
> Changes since v2:
> - Change compatible string
> - Add aliases information in bindings doc
> - Remove unneeded mxs_auart_probe_pdev function
> - Remove "ifdef CONFIG_OF"
> - Remove of_match_ptr wrapper
> Changes since v1:
> - Merged patches 3 and 5 from v1 into this one

Hi Greg,

May I have your ack to have the patch go through arm-soc tree, so that
we can possibly start converting those non-DT board files over to DT?

Regards,
Shawn

>  .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++++
>  drivers/tty/serial/mxs-auart.c                     |   40 +++++++++++++++++++-
>  2 files changed, 66 insertions(+), 1 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> 
> diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> new file mode 100644
> index 0000000..2ee903f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> @@ -0,0 +1,27 @@
> +* Freescale MXS Application UART (AUART)
> +
> +Required properties:
> +- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
> +  imx23 and imx28.
> +- reg : Address and length of the register set for the device
> +- interrupts : Should contain the auart interrupt numbers
> +
> +Example:
> +auart0: serial@8006a000 {
> +	compatible = "fsl,imx28-auart", "fsl,imx23-auart";
> +	reg = <0x8006a000 0x2000>;
> +	interrupts = <112 70 71>;
> +};
> +
> +Note: Each auart port should have an alias correctly numbered in "aliases"
> +node.
> +
> +Example:
> +
> +aliases {
> +	serial0 = &auart0;
> +	serial1 = &auart1;
> +	serial2 = &auart2;
> +	serial3 = &auart3;
> +	serial4 = &auart4;
> +};
> diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
> index ec56d83..103087d 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -33,6 +33,7 @@
>  #include <linux/delay.h>
>  #include <linux/io.h>
>  #include <linux/pinctrl/consumer.h>
> +#include <linux/of_device.h>
>  
>  #include <asm/cacheflush.h>
>  
> @@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
>  #endif
>  };
>  
> +/*
> + * This function returns 1 if pdev isn't a device instatiated by dt, 0 if it
> + * could successfully get all information from dt or a negative errno.
> + */
> +static int serial_mxs_probe_dt(struct mxs_auart_port *s,
> +		struct platform_device *pdev)
> +{
> +	struct device_node *np = pdev->dev.of_node;
> +	int ret;
> +
> +	if (!np)
> +		/* no device tree device */
> +		return 1;
> +
> +	ret = of_alias_get_id(np, "serial");
> +	if (ret < 0) {
> +		dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
> +		return ret;
> +	}
> +	s->port.line = ret;
> +
> +	return 0;
> +}
> +
>  static int __devinit mxs_auart_probe(struct platform_device *pdev)
>  {
>  	struct mxs_auart_port *s;
> @@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
>  		goto out;
>  	}
>  
> +	ret = serial_mxs_probe_dt(s, pdev);
> +	if (ret > 0)
> +		s->port.line = pdev->id < 0 ? 0 : pdev->id;
> +	else if (ret < 0)
> +		goto out_free;
> +
>  	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>  	if (IS_ERR(pinctrl)) {
>  		ret = PTR_ERR(pinctrl);
> @@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
>  	s->port.membase = ioremap(r->start, resource_size(r));
>  	s->port.ops = &mxs_auart_ops;
>  	s->port.iotype = UPIO_MEM;
> -	s->port.line = pdev->id < 0 ? 0 : pdev->id;
>  	s->port.fifosize = 16;
>  	s->port.uartclk = clk_get_rate(s->clk);
>  	s->port.type = PORT_IMX;
> @@ -769,12 +799,19 @@ static int __devexit mxs_auart_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> +static struct of_device_id mxs_auart_dt_ids[] = {
> +	{ .compatible = "fsl,imx23-auart", },
> +	{ /* sentinel */ }
> +};
> +MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
> +
>  static struct platform_driver mxs_auart_driver = {
>  	.probe = mxs_auart_probe,
>  	.remove = __devexit_p(mxs_auart_remove),
>  	.driver = {
>  		.name = "mxs-auart",
>  		.owner = THIS_MODULE,
> +		.of_match_table = mxs_auart_dt_ids,
>  	},
>  };
>  
> @@ -807,3 +844,4 @@ module_init(mxs_auart_init);
>  module_exit(mxs_auart_exit);
>  MODULE_LICENSE("GPL");
>  MODULE_DESCRIPTION("Freescale MXS application uart driver");
> +MODULE_ALIAS("platform:mxs-auart");
> -- 
> 1.7.1
> 
> 


^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-18 13:33     ` Shawn Guo
  0 siblings, 0 replies; 37+ messages in thread
From: Shawn Guo @ 2012-06-18 13:33 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Jun 18, 2012 at 10:06:09AM -0300, Fabio Estevam wrote:
> Allow device tree probing.
> 
> Cc: Grant Likely <grant.likely@secretlab.ca>
> Cc: Rob Herring <rob.herring@calxeda.com>
> Cc: Alan Cox <alan@linux.intel.com>
> Cc: <linux-serial@vger.kernel.org>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> Changes since v3:
> - Remove unneeded mxs_auart_devtype
> Changes since v2:
> - Change compatible string
> - Add aliases information in bindings doc
> - Remove unneeded mxs_auart_probe_pdev function
> - Remove "ifdef CONFIG_OF"
> - Remove of_match_ptr wrapper
> Changes since v1:
> - Merged patches 3 and 5 from v1 into this one

Hi Greg,

May I have your ack to have the patch go through arm-soc tree, so that
we can possibly start converting those non-DT board files over to DT?

Regards,
Shawn

>  .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++++
>  drivers/tty/serial/mxs-auart.c                     |   40 +++++++++++++++++++-
>  2 files changed, 66 insertions(+), 1 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> 
> diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> new file mode 100644
> index 0000000..2ee903f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> @@ -0,0 +1,27 @@
> +* Freescale MXS Application UART (AUART)
> +
> +Required properties:
> +- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
> +  imx23 and imx28.
> +- reg : Address and length of the register set for the device
> +- interrupts : Should contain the auart interrupt numbers
> +
> +Example:
> +auart0: serial at 8006a000 {
> +	compatible = "fsl,imx28-auart", "fsl,imx23-auart";
> +	reg = <0x8006a000 0x2000>;
> +	interrupts = <112 70 71>;
> +};
> +
> +Note: Each auart port should have an alias correctly numbered in "aliases"
> +node.
> +
> +Example:
> +
> +aliases {
> +	serial0 = &auart0;
> +	serial1 = &auart1;
> +	serial2 = &auart2;
> +	serial3 = &auart3;
> +	serial4 = &auart4;
> +};
> diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
> index ec56d83..103087d 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -33,6 +33,7 @@
>  #include <linux/delay.h>
>  #include <linux/io.h>
>  #include <linux/pinctrl/consumer.h>
> +#include <linux/of_device.h>
>  
>  #include <asm/cacheflush.h>
>  
> @@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
>  #endif
>  };
>  
> +/*
> + * This function returns 1 if pdev isn't a device instatiated by dt, 0 if it
> + * could successfully get all information from dt or a negative errno.
> + */
> +static int serial_mxs_probe_dt(struct mxs_auart_port *s,
> +		struct platform_device *pdev)
> +{
> +	struct device_node *np = pdev->dev.of_node;
> +	int ret;
> +
> +	if (!np)
> +		/* no device tree device */
> +		return 1;
> +
> +	ret = of_alias_get_id(np, "serial");
> +	if (ret < 0) {
> +		dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
> +		return ret;
> +	}
> +	s->port.line = ret;
> +
> +	return 0;
> +}
> +
>  static int __devinit mxs_auart_probe(struct platform_device *pdev)
>  {
>  	struct mxs_auart_port *s;
> @@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
>  		goto out;
>  	}
>  
> +	ret = serial_mxs_probe_dt(s, pdev);
> +	if (ret > 0)
> +		s->port.line = pdev->id < 0 ? 0 : pdev->id;
> +	else if (ret < 0)
> +		goto out_free;
> +
>  	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>  	if (IS_ERR(pinctrl)) {
>  		ret = PTR_ERR(pinctrl);
> @@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
>  	s->port.membase = ioremap(r->start, resource_size(r));
>  	s->port.ops = &mxs_auart_ops;
>  	s->port.iotype = UPIO_MEM;
> -	s->port.line = pdev->id < 0 ? 0 : pdev->id;
>  	s->port.fifosize = 16;
>  	s->port.uartclk = clk_get_rate(s->clk);
>  	s->port.type = PORT_IMX;
> @@ -769,12 +799,19 @@ static int __devexit mxs_auart_remove(struct platform_device *pdev)
>  	return 0;
>  }
>  
> +static struct of_device_id mxs_auart_dt_ids[] = {
> +	{ .compatible = "fsl,imx23-auart", },
> +	{ /* sentinel */ }
> +};
> +MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
> +
>  static struct platform_driver mxs_auart_driver = {
>  	.probe = mxs_auart_probe,
>  	.remove = __devexit_p(mxs_auart_remove),
>  	.driver = {
>  		.name = "mxs-auart",
>  		.owner = THIS_MODULE,
> +		.of_match_table = mxs_auart_dt_ids,
>  	},
>  };
>  
> @@ -807,3 +844,4 @@ module_init(mxs_auart_init);
>  module_exit(mxs_auart_exit);
>  MODULE_LICENSE("GPL");
>  MODULE_DESCRIPTION("Freescale MXS application uart driver");
> +MODULE_ALIAS("platform:mxs-auart");
> -- 
> 1.7.1
> 
> 

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-18 13:33     ` Shawn Guo
@ 2012-06-18 13:36       ` Marek Vasut
  -1 siblings, 0 replies; 37+ messages in thread
From: Marek Vasut @ 2012-06-18 13:36 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Fabio Estevam, Greg Kroah-Hartman, linux-arm-kernel, kernel,
	rob.herring, Grant Likely, Alan Cox, linux-serial

Dear Shawn Guo,

> On Mon, Jun 18, 2012 at 10:06:09AM -0300, Fabio Estevam wrote:
> > Allow device tree probing.
> > 
> > Cc: Grant Likely <grant.likely@secretlab.ca>
> > Cc: Rob Herring <rob.herring@calxeda.com>
> > Cc: Alan Cox <alan@linux.intel.com>
> > Cc: <linux-serial@vger.kernel.org>
> > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> > ---
> > Changes since v3:
> > - Remove unneeded mxs_auart_devtype
> > Changes since v2:
> > - Change compatible string
> > - Add aliases information in bindings doc
> > - Remove unneeded mxs_auart_probe_pdev function
> > - Remove "ifdef CONFIG_OF"
> > - Remove of_match_ptr wrapper
> > Changes since v1:
> > - Merged patches 3 and 5 from v1 into this one
> 
> Hi Greg,
> 
> May I have your ack to have the patch go through arm-soc tree, so that
> we can possibly start converting those non-DT board files over to DT?
> 
> Regards,
> Shawn

Good, I should be back on 20th to the denx board.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-18 13:36       ` Marek Vasut
  0 siblings, 0 replies; 37+ messages in thread
From: Marek Vasut @ 2012-06-18 13:36 UTC (permalink / raw)
  To: linux-arm-kernel

Dear Shawn Guo,

> On Mon, Jun 18, 2012 at 10:06:09AM -0300, Fabio Estevam wrote:
> > Allow device tree probing.
> > 
> > Cc: Grant Likely <grant.likely@secretlab.ca>
> > Cc: Rob Herring <rob.herring@calxeda.com>
> > Cc: Alan Cox <alan@linux.intel.com>
> > Cc: <linux-serial@vger.kernel.org>
> > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> > ---
> > Changes since v3:
> > - Remove unneeded mxs_auart_devtype
> > Changes since v2:
> > - Change compatible string
> > - Add aliases information in bindings doc
> > - Remove unneeded mxs_auart_probe_pdev function
> > - Remove "ifdef CONFIG_OF"
> > - Remove of_match_ptr wrapper
> > Changes since v1:
> > - Merged patches 3 and 5 from v1 into this one
> 
> Hi Greg,
> 
> May I have your ack to have the patch go through arm-soc tree, so that
> we can possibly start converting those non-DT board files over to DT?
> 
> Regards,
> Shawn

Good, I should be back on 20th to the denx board.

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-18 13:33     ` Shawn Guo
@ 2012-06-18 15:25       ` Greg Kroah-Hartman
  -1 siblings, 0 replies; 37+ messages in thread
From: Greg Kroah-Hartman @ 2012-06-18 15:25 UTC (permalink / raw)
  To: Shawn Guo
  Cc: Fabio Estevam, linux-arm-kernel, kernel, marex, rob.herring,
	Grant Likely, Alan Cox, linux-serial

On Mon, Jun 18, 2012 at 09:33:40PM +0800, Shawn Guo wrote:
> On Mon, Jun 18, 2012 at 10:06:09AM -0300, Fabio Estevam wrote:
> > Allow device tree probing.
> > 
> > Cc: Grant Likely <grant.likely@secretlab.ca>
> > Cc: Rob Herring <rob.herring@calxeda.com>
> > Cc: Alan Cox <alan@linux.intel.com>
> > Cc: <linux-serial@vger.kernel.org>
> > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> > ---
> > Changes since v3:
> > - Remove unneeded mxs_auart_devtype
> > Changes since v2:
> > - Change compatible string
> > - Add aliases information in bindings doc
> > - Remove unneeded mxs_auart_probe_pdev function
> > - Remove "ifdef CONFIG_OF"
> > - Remove of_match_ptr wrapper
> > Changes since v1:
> > - Merged patches 3 and 5 from v1 into this one
> 
> Hi Greg,
> 
> May I have your ack to have the patch go through arm-soc tree, so that
> we can possibly start converting those non-DT board files over to DT?

Fine with me:

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-18 15:25       ` Greg Kroah-Hartman
  0 siblings, 0 replies; 37+ messages in thread
From: Greg Kroah-Hartman @ 2012-06-18 15:25 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Jun 18, 2012 at 09:33:40PM +0800, Shawn Guo wrote:
> On Mon, Jun 18, 2012 at 10:06:09AM -0300, Fabio Estevam wrote:
> > Allow device tree probing.
> > 
> > Cc: Grant Likely <grant.likely@secretlab.ca>
> > Cc: Rob Herring <rob.herring@calxeda.com>
> > Cc: Alan Cox <alan@linux.intel.com>
> > Cc: <linux-serial@vger.kernel.org>
> > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> > ---
> > Changes since v3:
> > - Remove unneeded mxs_auart_devtype
> > Changes since v2:
> > - Change compatible string
> > - Add aliases information in bindings doc
> > - Remove unneeded mxs_auart_probe_pdev function
> > - Remove "ifdef CONFIG_OF"
> > - Remove of_match_ptr wrapper
> > Changes since v1:
> > - Merged patches 3 and 5 from v1 into this one
> 
> Hi Greg,
> 
> May I have your ack to have the patch go through arm-soc tree, so that
> we can possibly start converting those non-DT board files over to DT?

Fine with me:

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-18 13:06   ` Fabio Estevam
@ 2012-06-18 20:42     ` Subodh Nijsure
  -1 siblings, 0 replies; 37+ messages in thread
From: Subodh Nijsure @ 2012-06-18 20:42 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: marex, kernel, rob.herring, Grant Likely, linux-serial,
	shawn.guo, Matt, linux-arm-kernel, Alan Cox


If one were to try run console on one of the /dev/ttyAPP* ports, as is 
the case for hardware I am working with, console output wouldn't show up 
without the following diff:

Let me know if should send formal patch or we can include it as part of v5?

diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ca3d25e..2ced332 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -761,7 +761,7 @@ static int __devinit mxs_auart_probe(struct 
platform_device *pdev)

         platform_set_drvdata(pdev, s);

-       auart_port[pdev->id] = s;
+       auart_port[s->port.line] = s;

         mxs_auart_reset(&s->port)

-Subodh

On 06/18/2012 06:06 AM, Fabio Estevam wrote:
> Allow device tree probing.
>
> Cc: Grant Likely<grant.likely@secretlab.ca>
> Cc: Rob Herring<rob.herring@calxeda.com>
> Cc: Alan Cox<alan@linux.intel.com>
> Cc:<linux-serial@vger.kernel.org>
> Signed-off-by: Fabio Estevam<fabio.estevam@freescale.com>
> ---
> Changes since v3:
> - Remove unneeded mxs_auart_devtype
> Changes since v2:
> - Change compatible string
> - Add aliases information in bindings doc
> - Remove unneeded mxs_auart_probe_pdev function
> - Remove "ifdef CONFIG_OF"
> - Remove of_match_ptr wrapper
> Changes since v1:
> - Merged patches 3 and 5 from v1 into this one
>   .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++++
>   drivers/tty/serial/mxs-auart.c                     |   40 +++++++++++++++++++-
>   2 files changed, 66 insertions(+), 1 deletions(-)
>   create mode 100644 Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
>
> diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> new file mode 100644
> index 0000000..2ee903f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> @@ -0,0 +1,27 @@
> +* Freescale MXS Application UART (AUART)
> +
> +Required properties:
> +- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
> +  imx23 and imx28.
> +- reg : Address and length of the register set for the device
> +- interrupts : Should contain the auart interrupt numbers
> +
> +Example:
> +auart0: serial@8006a000 {
> +	compatible = "fsl,imx28-auart", "fsl,imx23-auart";
> +	reg =<0x8006a000 0x2000>;
> +	interrupts =<112 70 71>;
> +};
> +
> +Note: Each auart port should have an alias correctly numbered in "aliases"
> +node.
> +
> +Example:
> +
> +aliases {
> +	serial0 =&auart0;
> +	serial1 =&auart1;
> +	serial2 =&auart2;
> +	serial3 =&auart3;
> +	serial4 =&auart4;
> +};
> diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
> index ec56d83..103087d 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -33,6 +33,7 @@
>   #include<linux/delay.h>
>   #include<linux/io.h>
>   #include<linux/pinctrl/consumer.h>
> +#include<linux/of_device.h>
>
>   #include<asm/cacheflush.h>
>
> @@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
>   #endif
>   };
>
> +/*
> + * This function returns 1 if pdev isn't a device instatiated by dt, 0 if it
> + * could successfully get all information from dt or a negative errno.
> + */
> +static int serial_mxs_probe_dt(struct mxs_auart_port *s,
> +		struct platform_device *pdev)
> +{
> +	struct device_node *np = pdev->dev.of_node;
> +	int ret;
> +
> +	if (!np)
> +		/* no device tree device */
> +		return 1;
> +
> +	ret = of_alias_get_id(np, "serial");
> +	if (ret<  0) {
> +		dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
> +		return ret;
> +	}
> +	s->port.line = ret;
> +
> +	return 0;
> +}
> +
>   static int __devinit mxs_auart_probe(struct platform_device *pdev)
>   {
>   	struct mxs_auart_port *s;
> @@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
>   		goto out;
>   	}
>
> +	ret = serial_mxs_probe_dt(s, pdev);
> +	if (ret>  0)
> +		s->port.line = pdev->id<  0 ? 0 : pdev->id;
> +	else if (ret<  0)
> +		goto out_free;
> +
>   	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>   	if (IS_ERR(pinctrl)) {
>   		ret = PTR_ERR(pinctrl);
> @@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
>   	s->port.membase = ioremap(r->start, resource_size(r));
>   	s->port.ops =&mxs_auart_ops;
>   	s->port.iotype = UPIO_MEM;
> -	s->port.line = pdev->id<  0 ? 0 : pdev->id;
>   	s->port.fifosize = 16;
>   	s->port.uartclk = clk_get_rate(s->clk);
>   	s->port.type = PORT_IMX;
> @@ -769,12 +799,19 @@ static int __devexit mxs_auart_remove(struct platform_device *pdev)
>   	return 0;
>   }
>
> +static struct of_device_id mxs_auart_dt_ids[] = {
> +	{ .compatible = "fsl,imx23-auart", },
> +	{ /* sentinel */ }
> +};
> +MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
> +
>   static struct platform_driver mxs_auart_driver = {
>   	.probe = mxs_auart_probe,
>   	.remove = __devexit_p(mxs_auart_remove),
>   	.driver = {
>   		.name = "mxs-auart",
>   		.owner = THIS_MODULE,
> +		.of_match_table = mxs_auart_dt_ids,
>   	},
>   };
>
> @@ -807,3 +844,4 @@ module_init(mxs_auart_init);
>   module_exit(mxs_auart_exit);
>   MODULE_LICENSE("GPL");
>   MODULE_DESCRIPTION("Freescale MXS application uart driver");
> +MODULE_ALIAS("platform:mxs-auart");

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-18 20:42     ` Subodh Nijsure
  0 siblings, 0 replies; 37+ messages in thread
From: Subodh Nijsure @ 2012-06-18 20:42 UTC (permalink / raw)
  To: linux-arm-kernel


If one were to try run console on one of the /dev/ttyAPP* ports, as is 
the case for hardware I am working with, console output wouldn't show up 
without the following diff:

Let me know if should send formal patch or we can include it as part of v5?

diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
index ca3d25e..2ced332 100644
--- a/drivers/tty/serial/mxs-auart.c
+++ b/drivers/tty/serial/mxs-auart.c
@@ -761,7 +761,7 @@ static int __devinit mxs_auart_probe(struct 
platform_device *pdev)

         platform_set_drvdata(pdev, s);

-       auart_port[pdev->id] = s;
+       auart_port[s->port.line] = s;

         mxs_auart_reset(&s->port)

-Subodh

On 06/18/2012 06:06 AM, Fabio Estevam wrote:
> Allow device tree probing.
>
> Cc: Grant Likely<grant.likely@secretlab.ca>
> Cc: Rob Herring<rob.herring@calxeda.com>
> Cc: Alan Cox<alan@linux.intel.com>
> Cc:<linux-serial@vger.kernel.org>
> Signed-off-by: Fabio Estevam<fabio.estevam@freescale.com>
> ---
> Changes since v3:
> - Remove unneeded mxs_auart_devtype
> Changes since v2:
> - Change compatible string
> - Add aliases information in bindings doc
> - Remove unneeded mxs_auart_probe_pdev function
> - Remove "ifdef CONFIG_OF"
> - Remove of_match_ptr wrapper
> Changes since v1:
> - Merged patches 3 and 5 from v1 into this one
>   .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++++
>   drivers/tty/serial/mxs-auart.c                     |   40 +++++++++++++++++++-
>   2 files changed, 66 insertions(+), 1 deletions(-)
>   create mode 100644 Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
>
> diff --git a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> new file mode 100644
> index 0000000..2ee903f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
> @@ -0,0 +1,27 @@
> +* Freescale MXS Application UART (AUART)
> +
> +Required properties:
> +- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
> +  imx23 and imx28.
> +- reg : Address and length of the register set for the device
> +- interrupts : Should contain the auart interrupt numbers
> +
> +Example:
> +auart0: serial at 8006a000 {
> +	compatible = "fsl,imx28-auart", "fsl,imx23-auart";
> +	reg =<0x8006a000 0x2000>;
> +	interrupts =<112 70 71>;
> +};
> +
> +Note: Each auart port should have an alias correctly numbered in "aliases"
> +node.
> +
> +Example:
> +
> +aliases {
> +	serial0 =&auart0;
> +	serial1 =&auart1;
> +	serial2 =&auart2;
> +	serial3 =&auart3;
> +	serial4 =&auart4;
> +};
> diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
> index ec56d83..103087d 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -33,6 +33,7 @@
>   #include<linux/delay.h>
>   #include<linux/io.h>
>   #include<linux/pinctrl/consumer.h>
> +#include<linux/of_device.h>
>
>   #include<asm/cacheflush.h>
>
> @@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
>   #endif
>   };
>
> +/*
> + * This function returns 1 if pdev isn't a device instatiated by dt, 0 if it
> + * could successfully get all information from dt or a negative errno.
> + */
> +static int serial_mxs_probe_dt(struct mxs_auart_port *s,
> +		struct platform_device *pdev)
> +{
> +	struct device_node *np = pdev->dev.of_node;
> +	int ret;
> +
> +	if (!np)
> +		/* no device tree device */
> +		return 1;
> +
> +	ret = of_alias_get_id(np, "serial");
> +	if (ret<  0) {
> +		dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
> +		return ret;
> +	}
> +	s->port.line = ret;
> +
> +	return 0;
> +}
> +
>   static int __devinit mxs_auart_probe(struct platform_device *pdev)
>   {
>   	struct mxs_auart_port *s;
> @@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
>   		goto out;
>   	}
>
> +	ret = serial_mxs_probe_dt(s, pdev);
> +	if (ret>  0)
> +		s->port.line = pdev->id<  0 ? 0 : pdev->id;
> +	else if (ret<  0)
> +		goto out_free;
> +
>   	pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>   	if (IS_ERR(pinctrl)) {
>   		ret = PTR_ERR(pinctrl);
> @@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct platform_device *pdev)
>   	s->port.membase = ioremap(r->start, resource_size(r));
>   	s->port.ops =&mxs_auart_ops;
>   	s->port.iotype = UPIO_MEM;
> -	s->port.line = pdev->id<  0 ? 0 : pdev->id;
>   	s->port.fifosize = 16;
>   	s->port.uartclk = clk_get_rate(s->clk);
>   	s->port.type = PORT_IMX;
> @@ -769,12 +799,19 @@ static int __devexit mxs_auart_remove(struct platform_device *pdev)
>   	return 0;
>   }
>
> +static struct of_device_id mxs_auart_dt_ids[] = {
> +	{ .compatible = "fsl,imx23-auart", },
> +	{ /* sentinel */ }
> +};
> +MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
> +
>   static struct platform_driver mxs_auart_driver = {
>   	.probe = mxs_auart_probe,
>   	.remove = __devexit_p(mxs_auart_remove),
>   	.driver = {
>   		.name = "mxs-auart",
>   		.owner = THIS_MODULE,
> +		.of_match_table = mxs_auart_dt_ids,
>   	},
>   };
>
> @@ -807,3 +844,4 @@ module_init(mxs_auart_init);
>   module_exit(mxs_auart_exit);
>   MODULE_LICENSE("GPL");
>   MODULE_DESCRIPTION("Freescale MXS application uart driver");
> +MODULE_ALIAS("platform:mxs-auart");

^ permalink raw reply related	[flat|nested] 37+ messages in thread

* Re: [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-18 20:42     ` Subodh Nijsure
@ 2012-06-18 20:50       ` Fabio Estevam
  -1 siblings, 0 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-18 20:50 UTC (permalink / raw)
  To: Subodh Nijsure
  Cc: Fabio Estevam, marex, kernel, rob.herring, Grant Likely,
	linux-serial, shawn.guo, Matt, linux-arm-kernel, Alan Cox

On Mon, Jun 18, 2012 at 5:42 PM, Subodh Nijsure <snijsure@grid-net.com> wrote:
>
> If one were to try run console on one of the /dev/ttyAPP* ports, as is the
> case for hardware I am working with, console output wouldn't show up without
> the following diff:
>
> Let me know if should send formal patch or we can include it as part of v5?

Please send a formal patch. Shawn has already applied my patch into his tree:
http://git.linaro.org/gitweb?p=people/shawnguo/linux-2.6.git;a=shortlog;h=refs/heads/mxs/for-next

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-06-18 20:50       ` Fabio Estevam
  0 siblings, 0 replies; 37+ messages in thread
From: Fabio Estevam @ 2012-06-18 20:50 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Jun 18, 2012 at 5:42 PM, Subodh Nijsure <snijsure@grid-net.com> wrote:
>
> If one were to try run console on one of the /dev/ttyAPP* ports, as is the
> case for hardware I am working with, console output wouldn't show up without
> the following diff:
>
> Let me know if should send formal patch or we can include it as part of v5?

Please send a formal patch. Shawn has already applied my patch into his tree:
http://git.linaro.org/gitweb?p=people/shawnguo/linux-2.6.git;a=shortlog;h=refs/heads/mxs/for-next

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
  2012-06-18 20:42     ` Subodh Nijsure
@ 2012-07-13 10:33       ` Marc Kleine-Budde
  -1 siblings, 0 replies; 37+ messages in thread
From: Marc Kleine-Budde @ 2012-07-13 10:33 UTC (permalink / raw)
  To: Subodh Nijsure
  Cc: Fabio Estevam, marex, kernel, rob.herring, Grant Likely,
	linux-serial, shawn.guo, Matt, linux-arm-kernel, Alan Cox

[-- Attachment #1: Type: text/plain, Size: 6431 bytes --]

On 06/18/2012 10:42 PM, Subodh Nijsure wrote:
> 
> If one were to try run console on one of the /dev/ttyAPP* ports, as is
> the case for hardware I am working with, console output wouldn't show up
> without the following diff:
> 
> Let me know if should send formal patch or we can include it as part of v5?

Has this patch been applied?

Marc
> 
> diff --git a/drivers/tty/serial/mxs-auart.c
> b/drivers/tty/serial/mxs-auart.c
> index ca3d25e..2ced332 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -761,7 +761,7 @@ static int __devinit mxs_auart_probe(struct
> platform_device *pdev)
> 
>         platform_set_drvdata(pdev, s);
> 
> -       auart_port[pdev->id] = s;
> +       auart_port[s->port.line] = s;
> 
>         mxs_auart_reset(&s->port)
> 
> -Subodh
> 
> On 06/18/2012 06:06 AM, Fabio Estevam wrote:
>> Allow device tree probing.
>>
>> Cc: Grant Likely<grant.likely@secretlab.ca>
>> Cc: Rob Herring<rob.herring@calxeda.com>
>> Cc: Alan Cox<alan@linux.intel.com>
>> Cc:<linux-serial@vger.kernel.org>
>> Signed-off-by: Fabio Estevam<fabio.estevam@freescale.com>
>> ---
>> Changes since v3:
>> - Remove unneeded mxs_auart_devtype
>> Changes since v2:
>> - Change compatible string
>> - Add aliases information in bindings doc
>> - Remove unneeded mxs_auart_probe_pdev function
>> - Remove "ifdef CONFIG_OF"
>> - Remove of_match_ptr wrapper
>> Changes since v1:
>> - Merged patches 3 and 5 from v1 into this one
>>   .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++++
>>   drivers/tty/serial/mxs-auart.c                     |   40
>> +++++++++++++++++++-
>>   2 files changed, 66 insertions(+), 1 deletions(-)
>>   create mode 100644
>> Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
>>
>> diff --git
>> a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
>> b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
>> new file mode 100644
>> index 0000000..2ee903f
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
>> @@ -0,0 +1,27 @@
>> +* Freescale MXS Application UART (AUART)
>> +
>> +Required properties:
>> +- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
>> +  imx23 and imx28.
>> +- reg : Address and length of the register set for the device
>> +- interrupts : Should contain the auart interrupt numbers
>> +
>> +Example:
>> +auart0: serial@8006a000 {
>> +    compatible = "fsl,imx28-auart", "fsl,imx23-auart";
>> +    reg =<0x8006a000 0x2000>;
>> +    interrupts =<112 70 71>;
>> +};
>> +
>> +Note: Each auart port should have an alias correctly numbered in
>> "aliases"
>> +node.
>> +
>> +Example:
>> +
>> +aliases {
>> +    serial0 =&auart0;
>> +    serial1 =&auart1;
>> +    serial2 =&auart2;
>> +    serial3 =&auart3;
>> +    serial4 =&auart4;
>> +};
>> diff --git a/drivers/tty/serial/mxs-auart.c
>> b/drivers/tty/serial/mxs-auart.c
>> index ec56d83..103087d 100644
>> --- a/drivers/tty/serial/mxs-auart.c
>> +++ b/drivers/tty/serial/mxs-auart.c
>> @@ -33,6 +33,7 @@
>>   #include<linux/delay.h>
>>   #include<linux/io.h>
>>   #include<linux/pinctrl/consumer.h>
>> +#include<linux/of_device.h>
>>
>>   #include<asm/cacheflush.h>
>>
>> @@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
>>   #endif
>>   };
>>
>> +/*
>> + * This function returns 1 if pdev isn't a device instatiated by dt,
>> 0 if it
>> + * could successfully get all information from dt or a negative errno.
>> + */
>> +static int serial_mxs_probe_dt(struct mxs_auart_port *s,
>> +        struct platform_device *pdev)
>> +{
>> +    struct device_node *np = pdev->dev.of_node;
>> +    int ret;
>> +
>> +    if (!np)
>> +        /* no device tree device */
>> +        return 1;
>> +
>> +    ret = of_alias_get_id(np, "serial");
>> +    if (ret<  0) {
>> +        dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
>> +        return ret;
>> +    }
>> +    s->port.line = ret;
>> +
>> +    return 0;
>> +}
>> +
>>   static int __devinit mxs_auart_probe(struct platform_device *pdev)
>>   {
>>       struct mxs_auart_port *s;
>> @@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct
>> platform_device *pdev)
>>           goto out;
>>       }
>>
>> +    ret = serial_mxs_probe_dt(s, pdev);
>> +    if (ret>  0)
>> +        s->port.line = pdev->id<  0 ? 0 : pdev->id;
>> +    else if (ret<  0)
>> +        goto out_free;
>> +
>>       pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>>       if (IS_ERR(pinctrl)) {
>>           ret = PTR_ERR(pinctrl);
>> @@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct
>> platform_device *pdev)
>>       s->port.membase = ioremap(r->start, resource_size(r));
>>       s->port.ops =&mxs_auart_ops;
>>       s->port.iotype = UPIO_MEM;
>> -    s->port.line = pdev->id<  0 ? 0 : pdev->id;
>>       s->port.fifosize = 16;
>>       s->port.uartclk = clk_get_rate(s->clk);
>>       s->port.type = PORT_IMX;
>> @@ -769,12 +799,19 @@ static int __devexit mxs_auart_remove(struct
>> platform_device *pdev)
>>       return 0;
>>   }
>>
>> +static struct of_device_id mxs_auart_dt_ids[] = {
>> +    { .compatible = "fsl,imx23-auart", },
>> +    { /* sentinel */ }
>> +};
>> +MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
>> +
>>   static struct platform_driver mxs_auart_driver = {
>>       .probe = mxs_auart_probe,
>>       .remove = __devexit_p(mxs_auart_remove),
>>       .driver = {
>>           .name = "mxs-auart",
>>           .owner = THIS_MODULE,
>> +        .of_match_table = mxs_auart_dt_ids,
>>       },
>>   };
>>
>> @@ -807,3 +844,4 @@ module_init(mxs_auart_init);
>>   module_exit(mxs_auart_exit);
>>   MODULE_LICENSE("GPL");
>>   MODULE_DESCRIPTION("Freescale MXS application uart driver");
>> +MODULE_ALIAS("platform:mxs-auart");
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel


-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-07-13 10:33       ` Marc Kleine-Budde
  0 siblings, 0 replies; 37+ messages in thread
From: Marc Kleine-Budde @ 2012-07-13 10:33 UTC (permalink / raw)
  To: linux-arm-kernel

On 06/18/2012 10:42 PM, Subodh Nijsure wrote:
> 
> If one were to try run console on one of the /dev/ttyAPP* ports, as is
> the case for hardware I am working with, console output wouldn't show up
> without the following diff:
> 
> Let me know if should send formal patch or we can include it as part of v5?

Has this patch been applied?

Marc
> 
> diff --git a/drivers/tty/serial/mxs-auart.c
> b/drivers/tty/serial/mxs-auart.c
> index ca3d25e..2ced332 100644
> --- a/drivers/tty/serial/mxs-auart.c
> +++ b/drivers/tty/serial/mxs-auart.c
> @@ -761,7 +761,7 @@ static int __devinit mxs_auart_probe(struct
> platform_device *pdev)
> 
>         platform_set_drvdata(pdev, s);
> 
> -       auart_port[pdev->id] = s;
> +       auart_port[s->port.line] = s;
> 
>         mxs_auart_reset(&s->port)
> 
> -Subodh
> 
> On 06/18/2012 06:06 AM, Fabio Estevam wrote:
>> Allow device tree probing.
>>
>> Cc: Grant Likely<grant.likely@secretlab.ca>
>> Cc: Rob Herring<rob.herring@calxeda.com>
>> Cc: Alan Cox<alan@linux.intel.com>
>> Cc:<linux-serial@vger.kernel.org>
>> Signed-off-by: Fabio Estevam<fabio.estevam@freescale.com>
>> ---
>> Changes since v3:
>> - Remove unneeded mxs_auart_devtype
>> Changes since v2:
>> - Change compatible string
>> - Add aliases information in bindings doc
>> - Remove unneeded mxs_auart_probe_pdev function
>> - Remove "ifdef CONFIG_OF"
>> - Remove of_match_ptr wrapper
>> Changes since v1:
>> - Merged patches 3 and 5 from v1 into this one
>>   .../bindings/tty/serial/fsl-mxs-auart.txt          |   27 +++++++++++++
>>   drivers/tty/serial/mxs-auart.c                     |   40
>> +++++++++++++++++++-
>>   2 files changed, 66 insertions(+), 1 deletions(-)
>>   create mode 100644
>> Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
>>
>> diff --git
>> a/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
>> b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
>> new file mode 100644
>> index 0000000..2ee903f
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/tty/serial/fsl-mxs-auart.txt
>> @@ -0,0 +1,27 @@
>> +* Freescale MXS Application UART (AUART)
>> +
>> +Required properties:
>> +- compatible : Should be "fsl,<soc>-auart". The supported SoCs include
>> +  imx23 and imx28.
>> +- reg : Address and length of the register set for the device
>> +- interrupts : Should contain the auart interrupt numbers
>> +
>> +Example:
>> +auart0: serial at 8006a000 {
>> +    compatible = "fsl,imx28-auart", "fsl,imx23-auart";
>> +    reg =<0x8006a000 0x2000>;
>> +    interrupts =<112 70 71>;
>> +};
>> +
>> +Note: Each auart port should have an alias correctly numbered in
>> "aliases"
>> +node.
>> +
>> +Example:
>> +
>> +aliases {
>> +    serial0 =&auart0;
>> +    serial1 =&auart1;
>> +    serial2 =&auart2;
>> +    serial3 =&auart3;
>> +    serial4 =&auart4;
>> +};
>> diff --git a/drivers/tty/serial/mxs-auart.c
>> b/drivers/tty/serial/mxs-auart.c
>> index ec56d83..103087d 100644
>> --- a/drivers/tty/serial/mxs-auart.c
>> +++ b/drivers/tty/serial/mxs-auart.c
>> @@ -33,6 +33,7 @@
>>   #include<linux/delay.h>
>>   #include<linux/io.h>
>>   #include<linux/pinctrl/consumer.h>
>> +#include<linux/of_device.h>
>>
>>   #include<asm/cacheflush.h>
>>
>> @@ -675,6 +676,30 @@ static struct uart_driver auart_driver = {
>>   #endif
>>   };
>>
>> +/*
>> + * This function returns 1 if pdev isn't a device instatiated by dt,
>> 0 if it
>> + * could successfully get all information from dt or a negative errno.
>> + */
>> +static int serial_mxs_probe_dt(struct mxs_auart_port *s,
>> +        struct platform_device *pdev)
>> +{
>> +    struct device_node *np = pdev->dev.of_node;
>> +    int ret;
>> +
>> +    if (!np)
>> +        /* no device tree device */
>> +        return 1;
>> +
>> +    ret = of_alias_get_id(np, "serial");
>> +    if (ret<  0) {
>> +        dev_err(&pdev->dev, "failed to get alias id: %d\n", ret);
>> +        return ret;
>> +    }
>> +    s->port.line = ret;
>> +
>> +    return 0;
>> +}
>> +
>>   static int __devinit mxs_auart_probe(struct platform_device *pdev)
>>   {
>>       struct mxs_auart_port *s;
>> @@ -689,6 +714,12 @@ static int __devinit mxs_auart_probe(struct
>> platform_device *pdev)
>>           goto out;
>>       }
>>
>> +    ret = serial_mxs_probe_dt(s, pdev);
>> +    if (ret>  0)
>> +        s->port.line = pdev->id<  0 ? 0 : pdev->id;
>> +    else if (ret<  0)
>> +        goto out_free;
>> +
>>       pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
>>       if (IS_ERR(pinctrl)) {
>>           ret = PTR_ERR(pinctrl);
>> @@ -711,7 +742,6 @@ static int __devinit mxs_auart_probe(struct
>> platform_device *pdev)
>>       s->port.membase = ioremap(r->start, resource_size(r));
>>       s->port.ops =&mxs_auart_ops;
>>       s->port.iotype = UPIO_MEM;
>> -    s->port.line = pdev->id<  0 ? 0 : pdev->id;
>>       s->port.fifosize = 16;
>>       s->port.uartclk = clk_get_rate(s->clk);
>>       s->port.type = PORT_IMX;
>> @@ -769,12 +799,19 @@ static int __devexit mxs_auart_remove(struct
>> platform_device *pdev)
>>       return 0;
>>   }
>>
>> +static struct of_device_id mxs_auart_dt_ids[] = {
>> +    { .compatible = "fsl,imx23-auart", },
>> +    { /* sentinel */ }
>> +};
>> +MODULE_DEVICE_TABLE(of, mxs_auart_dt_ids);
>> +
>>   static struct platform_driver mxs_auart_driver = {
>>       .probe = mxs_auart_probe,
>>       .remove = __devexit_p(mxs_auart_remove),
>>       .driver = {
>>           .name = "mxs-auart",
>>           .owner = THIS_MODULE,
>> +        .of_match_table = mxs_auart_dt_ids,
>>       },
>>   };
>>
>> @@ -807,3 +844,4 @@ module_init(mxs_auart_init);
>>   module_exit(mxs_auart_exit);
>>   MODULE_LICENSE("GPL");
>>   MODULE_DESCRIPTION("Freescale MXS application uart driver");
>> +MODULE_ALIAS("platform:mxs-auart");
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel


-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120713/6c8b519f/attachment.sig>

^ permalink raw reply	[flat|nested] 37+ messages in thread

* Re: [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
  2012-07-13 10:33       ` Marc Kleine-Budde
@ 2012-07-13 10:35         ` Marc Kleine-Budde
  -1 siblings, 0 replies; 37+ messages in thread
From: Marc Kleine-Budde @ 2012-07-13 10:35 UTC (permalink / raw)
  To: Subodh Nijsure
  Cc: Fabio Estevam, marex, kernel, rob.herring, Grant Likely,
	linux-serial, shawn.guo, Matt, linux-arm-kernel, Alan Cox

[-- Attachment #1: Type: text/plain, Size: 823 bytes --]

On 07/13/2012 12:33 PM, Marc Kleine-Budde wrote:
> On 06/18/2012 10:42 PM, Subodh Nijsure wrote:
>>
>> If one were to try run console on one of the /dev/ttyAPP* ports, as is
>> the case for hardware I am working with, console output wouldn't show up
>> without the following diff:
>>
>> Let me know if should send formal patch or we can include it as part of v5?
> 
> Has this patch been applied?

Yes. [1]

Marc

[1]
http://git.linaro.org/gitweb?p=people/shawnguo/linux-2.6.git;a=commit;h=1ea6607d4cdc917987e7e6cfaafc4a630d97a297
-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 262 bytes --]

^ permalink raw reply	[flat|nested] 37+ messages in thread

* [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing
@ 2012-07-13 10:35         ` Marc Kleine-Budde
  0 siblings, 0 replies; 37+ messages in thread
From: Marc Kleine-Budde @ 2012-07-13 10:35 UTC (permalink / raw)
  To: linux-arm-kernel

On 07/13/2012 12:33 PM, Marc Kleine-Budde wrote:
> On 06/18/2012 10:42 PM, Subodh Nijsure wrote:
>>
>> If one were to try run console on one of the /dev/ttyAPP* ports, as is
>> the case for hardware I am working with, console output wouldn't show up
>> without the following diff:
>>
>> Let me know if should send formal patch or we can include it as part of v5?
> 
> Has this patch been applied?

Yes. [1]

Marc

[1]
http://git.linaro.org/gitweb?p=people/shawnguo/linux-2.6.git;a=commit;h=1ea6607d4cdc917987e7e6cfaafc4a630d97a297
-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120713/211eb46e/attachment.sig>

^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2012-07-13 10:35 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-15 15:35 [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support Fabio Estevam
2012-06-15 15:35 ` [PATCH v3 2/2] serial: mxs-auart: Allow device tree probing Fabio Estevam
2012-06-15 15:35   ` Fabio Estevam
2012-06-15 15:48   ` Marek Vasut
2012-06-15 15:48     ` Marek Vasut
2012-06-15 16:06   ` Shawn Guo
2012-06-15 16:06     ` Shawn Guo
2012-06-15 16:11     ` Fabio Estevam
2012-06-15 16:11       ` Fabio Estevam
2012-06-15 16:16       ` Marek Vasut
2012-06-15 16:16         ` Marek Vasut
2012-06-15 16:18         ` Fabio Estevam
2012-06-15 16:18           ` Fabio Estevam
2012-06-15 17:00           ` Marek Vasut
2012-06-15 17:00             ` Marek Vasut
2012-06-16  2:01             ` Shawn Guo
2012-06-16  2:01               ` Shawn Guo
2012-06-16  1:59       ` Shawn Guo
2012-06-16  1:59         ` Shawn Guo
2012-06-15 15:48 ` [PATCH v3 1/2] ARM: dts: mx28evk: Add auart0 and auart3 support Marek Vasut
2012-06-15 16:03 ` Shawn Guo
2012-06-18 13:06 ` [PATCH v4 2/2] serial: mxs-auart: Allow device tree probing Fabio Estevam
2012-06-18 13:06   ` Fabio Estevam
2012-06-18 13:33   ` Shawn Guo
2012-06-18 13:33     ` Shawn Guo
2012-06-18 13:36     ` Marek Vasut
2012-06-18 13:36       ` Marek Vasut
2012-06-18 15:25     ` Greg Kroah-Hartman
2012-06-18 15:25       ` Greg Kroah-Hartman
2012-06-18 20:42   ` Subodh Nijsure
2012-06-18 20:42     ` Subodh Nijsure
2012-06-18 20:50     ` Fabio Estevam
2012-06-18 20:50       ` Fabio Estevam
2012-07-13 10:33     ` Marc Kleine-Budde
2012-07-13 10:33       ` Marc Kleine-Budde
2012-07-13 10:35       ` Marc Kleine-Budde
2012-07-13 10:35         ` Marc Kleine-Budde

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.