linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: tegra: colibri t30: fix on-module ethernet
@ 2014-11-21 10:41 Marcel Ziswiler
  2014-11-21 11:57 ` Marcel Ziswiler
  0 siblings, 1 reply; 3+ messages in thread
From: Marcel Ziswiler @ 2014-11-21 10:41 UTC (permalink / raw)
  To: swarren, thierry.reding
  Cc: linux, devicetree, linux-arm-kernel, linux-kernel, linux-tegra,
	stefan, Marcel Ziswiler

Looks like Ethernet only ever worked if U-Boot properly brought it up
as both the reset as well as the VBUS lines were not actively handled
in-kernel.
This patch fixes this by just pulling up the reset GPIO and properly
enabling VBUS via a GPIO enabled fixed regulator VBUS supply.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
---
Don't know whether this one could still make it into the current RC
cycle as it is clearly a bug fix.

 arch/arm/boot/dts/tegra30-colibri.dtsi | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/arch/arm/boot/dts/tegra30-colibri.dtsi b/arch/arm/boot/dts/tegra30-colibri.dtsi
index c4ed1be..ddbdb77 100644
--- a/arch/arm/boot/dts/tegra30-colibri.dtsi
+++ b/arch/arm/boot/dts/tegra30-colibri.dtsi
@@ -167,6 +167,22 @@
 				nvidia,pull = <TEGRA_PIN_PULL_UP>;
 				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 			};
+
+			/* LAN_RESET# */
+			pex_l0_prsnt_n_pdd0 {
+				nvidia,pins = "pex_l0_prsnt_n_pdd0";
+				nvidia,function = "rsvd3";
+				nvidia,pull = <TEGRA_PIN_PULL_UP>;
+				nvidia,tristate = <TEGRA_PIN_DISABLE>;
+			};
+
+			/* LAN_V_BUS */
+			pex_l0_clkreq_n_pdd2 {
+				nvidia,pins = "pex_l0_clkreq_n_pdd2";
+				nvidia,function = "rsvd3";
+				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
+				nvidia,tristate = <TEGRA_PIN_DISABLE>;
+			};
 		};
 	};
 
@@ -345,6 +361,7 @@
 	usb-phy@7d004000 {
 		status = "okay";
 		nvidia,is-wired = <1>;
+		vbus-supply = <&lan_vbus_reg>;
 	};
 
 	clocks {
@@ -382,5 +399,17 @@
 			regulator-max-microvolt = <5000000>;
 			regulator-always-on;
 		};
+
+		/* LAN_V_BUS */
+		lan_vbus_reg: regulator@102 {
+			compatible = "regulator-fixed";
+			reg = <102>;
+			regulator-name = "lan_vbus";
+			regulator-min-microvolt = <5000000>;
+			regulator-max-microvolt = <5000000>;
+			gpio = <&gpio TEGRA_GPIO(DD, 2) GPIO_ACTIVE_HIGH>;
+			enable-active-high;
+			vin-supply = <&charge_pump_5v0_reg>;
+		};
 	};
 };
-- 
1.9.3


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

* Re: [PATCH] ARM: tegra: colibri t30: fix on-module ethernet
  2014-11-21 10:41 [PATCH] ARM: tegra: colibri t30: fix on-module ethernet Marcel Ziswiler
@ 2014-11-21 11:57 ` Marcel Ziswiler
  2014-11-21 13:30   ` Marcel Ziswiler
  0 siblings, 1 reply; 3+ messages in thread
From: Marcel Ziswiler @ 2014-11-21 11:57 UTC (permalink / raw)
  To: swarren
  Cc: thierry.reding, linux, devicetree, linux-arm-kernel,
	linux-kernel, linux-tegra, stefan

On Fri, 2014-11-21 at 11:41 +0100, Marcel Ziswiler wrote:
> Looks like Ethernet only ever worked if U-Boot properly brought it up
> as both the reset as well as the VBUS lines were not actively handled
> in-kernel.
> This patch fixes this by just pulling up the reset GPIO

Doing automatic power-cycle tests revealed that this is still not enough
and a proper reset-cycle might be required. However I don't know as of
yet how one can easily do that in mainline with a USB device otherwise
not mentioned anywhere in the device tree. Any ideas?

> and properly
> enabling VBUS via a GPIO enabled fixed regulator VBUS supply.
> 
> Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>


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

* Re: [PATCH] ARM: tegra: colibri t30: fix on-module ethernet
  2014-11-21 11:57 ` Marcel Ziswiler
@ 2014-11-21 13:30   ` Marcel Ziswiler
  0 siblings, 0 replies; 3+ messages in thread
From: Marcel Ziswiler @ 2014-11-21 13:30 UTC (permalink / raw)
  To: swarren
  Cc: thierry.reding, linux, devicetree, linux-arm-kernel,
	linux-kernel, linux-tegra, stefan

On Fri, 2014-11-21 at 12:57 +0100, Marcel Ziswiler wrote:
> Doing automatic power-cycle tests revealed that this is still not enough
> and a proper reset-cycle might be required. However I don't know as of
> yet how one can easily do that in mainline with a USB device otherwise
> not mentioned anywhere in the device tree. Any ideas?

OK, looks like I need something as follows just wondering how far it can
go (e.g. not even in -next as of yet):

http://thread.gmane.org/gmane.linux.kernel/1682436


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

end of thread, other threads:[~2014-11-21 13:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-21 10:41 [PATCH] ARM: tegra: colibri t30: fix on-module ethernet Marcel Ziswiler
2014-11-21 11:57 ` Marcel Ziswiler
2014-11-21 13:30   ` Marcel Ziswiler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).