Patchwork [V2,3/5] ARM: DT: tegra114:add aliases and DMA requestor for serial controller

login
register
mail settings
Submitter Laxman Dewangan
Date March 9, 2013, 6:11 p.m.
Message ID <1362852678-13421-4-git-send-email-ldewangan@nvidia.com>
Download mbox | patch
Permalink /patch/226360/
State Superseded, archived
Headers show

Comments

Laxman Dewangan - March 9, 2013, 6:11 p.m.
Add APB DMA requestor and serial aliases for serial controller.
There will be two serial driver i.e. 8250 based simple serial driver
and APB DMA based serial driver for higher baudrate and performace.

The simple serial driver get enabled with compatible "nvidia,tegra114-uart",
"nvidia,tegra20-uart" and APB DMA based driver will get enabled with
compatible "nvidia,tegra114-hsuart", "nvidia,tegra30-hsuart".

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
---
Changes from V1:
- Remove UARTB car id correction. Make the compatible with tegra114 and
  tegra30 for hsuart and tegra20 for simple uart driver.

 arch/arm/boot/dts/tegra114.dtsi |   27 +++++++++++++++++++++++----
 1 files changed, 23 insertions(+), 4 deletions(-)
Thierry Reding - March 10, 2013, 10:42 p.m.
On Sat, Mar 09, 2013 at 11:41:16PM +0530, Laxman Dewangan wrote:
[...]
> diff --git a/arch/arm/boot/dts/tegra114.dtsi b/arch/arm/boot/dts/tegra114.dtsi
[...]
> @@ -99,38 +106,50 @@
>  		       0x70003000 0x40c>;	/* Mux registers */
>  	};
>  
> -	serial@70006000 {
> +	/*
> +	 * There are two serial driver i.e. 8250 based simple serial
> +	 * driver and APB DMA based serial driver for higher baudrate
> +	 * and performace. To enable the 8250 based driver, the compatible
> +	 * is "nvidia,tegra114-uart", "nvidia,tegra20-uart" and to enable
> +	 * the APB DMA based serial driver, the comptible is
> +	 * "nvidia,tegra114-hsuart", "nvidia,tegra30-hsuart".
> +	 */
> +	uarta: serial@70006000 {

I'm not sure if this is a good place for this comment. Perhaps it should
go into the binding documentation?

Thierry
Stephen Warren - March 11, 2013, 5:38 p.m.
On 03/09/2013 11:11 AM, Laxman Dewangan wrote:
> Add APB DMA requestor and serial aliases for serial controller.
> There will be two serial driver i.e. 8250 based simple serial driver
> and APB DMA based serial driver for higher baudrate and performace.
> 
> The simple serial driver get enabled with compatible "nvidia,tegra114-uart",
> "nvidia,tegra20-uart" and APB DMA based driver will get enabled with
> compatible "nvidia,tegra114-hsuart", "nvidia,tegra30-hsuart".
> 
> Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
> ---
> Changes from V1:
> - Remove UARTB car id correction. Make the compatible with tegra114 and
>   tegra30 for hsuart and tegra20 for simple uart driver.

Why the difference for the two drivers? Either the HW is compatible with
all 3 of 114/30/20 (in which case you only need list 114/20 in the
compatible value), or it's not compatible with either 30/20, since we
already know that 30/20 are compatible with each-other (in which case
you should only list 114 in the compatible property).
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stephen Warren - March 11, 2013, 5:42 p.m.
On 03/10/2013 04:42 PM, Thierry Reding wrote:
> On Sat, Mar 09, 2013 at 11:41:16PM +0530, Laxman Dewangan wrote: 
> [...]
>> diff --git a/arch/arm/boot/dts/tegra114.dtsi 
>> b/arch/arm/boot/dts/tegra114.dtsi
> [...]
>> @@ -99,38 +106,50 @@ 0x70003000 0x40c>;	/* Mux registers */ };
>> 
>> -	serial@70006000 { +	/* +	 * There are two serial driver i.e. 
>> 8250 based simple serial +	 * driver and APB DMA based serial 
>> driver for higher baudrate +	 * and performace. To enable the 
>> 8250 based driver, the compatible +	 * is
>> "nvidia,tegra114-uart", "nvidia,tegra20-uart" and to enable +	 *
>> the APB DMA based serial driver, the comptible is +	 *
>> "nvidia,tegra114-hsuart", "nvidia,tegra30-hsuart". +	 */ +	uarta:
>> serial@70006000 {
> 
> I'm not sure if this is a good place for this comment. Perhaps it 
> should go into the binding documentation?

It is at least consistent with previous tegra20/30.dtsi. The two
compatible values are separate bindings, so a clue here re: which one
to go look at isn't a bad idea, although I agree that having each
binding document mention the other one would also be good.
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/arch/arm/boot/dts/tegra114.dtsi b/arch/arm/boot/dts/tegra114.dtsi
index 14afbc8..300082d 100644
--- a/arch/arm/boot/dts/tegra114.dtsi
+++ b/arch/arm/boot/dts/tegra114.dtsi
@@ -4,6 +4,13 @@ 
 	compatible = "nvidia,tegra114";
 	interrupt-parent = <&gic>;
 
+	aliases {
+		serial0 = &uarta;
+		serial1 = &uartb;
+		serial2 = &uartc;
+		serial3 = &uartd;
+	};
+
 	gic: interrupt-controller {
 		compatible = "arm,cortex-a15-gic";
 		#interrupt-cells = <3>;
@@ -99,38 +106,50 @@ 
 		       0x70003000 0x40c>;	/* Mux registers */
 	};
 
-	serial@70006000 {
+	/*
+	 * There are two serial driver i.e. 8250 based simple serial
+	 * driver and APB DMA based serial driver for higher baudrate
+	 * and performace. To enable the 8250 based driver, the compatible
+	 * is "nvidia,tegra114-uart", "nvidia,tegra20-uart" and to enable
+	 * the APB DMA based serial driver, the comptible is
+	 * "nvidia,tegra114-hsuart", "nvidia,tegra30-hsuart".
+	 */
+	uarta: serial@70006000 {
 		compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
 		reg = <0x70006000 0x40>;
 		reg-shift = <2>;
 		interrupts = <0 36 0x04>;
+		nvidia,dma-request-selector = <&apbdma 8>;
 		status = "disabled";
 		clocks = <&tegra_car 6>;
 	};
 
-	serial@70006040 {
+	uartb: serial@70006040 {
 		compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
 		reg = <0x70006040 0x40>;
 		reg-shift = <2>;
 		interrupts = <0 37 0x04>;
+		nvidia,dma-request-selector = <&apbdma 9>;
 		status = "disabled";
 		clocks = <&tegra_car 192>;
 	};
 
-	serial@70006200 {
+	uartc: serial@70006200 {
 		compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
 		reg = <0x70006200 0x100>;
 		reg-shift = <2>;
 		interrupts = <0 46 0x04>;
+		nvidia,dma-request-selector = <&apbdma 10>;
 		status = "disabled";
 		clocks = <&tegra_car 55>;
 	};
 
-	serial@70006300 {
+	uartd: serial@70006300 {
 		compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
 		reg = <0x70006300 0x100>;
 		reg-shift = <2>;
 		interrupts = <0 90 0x04>;
+		nvidia,dma-request-selector = <&apbdma 19>;
 		status = "disabled";
 		clocks = <&tegra_car 65>;
 	};