summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2017-08-10 15:28:40 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2017-09-20 17:45:12 +0200
commit7ad9771527d2b1c884beb22d9df28bae899f8d3d (patch)
tree6f35ab125527b2d21ab2bee26012060e58f435d8 /arch
parent9efd8683fc4b4d626e3116fc62ba2417a0fc5a94 (diff)
apalis-tk1: fix pcie reset for reliable gigabit ethernet operation
It turns out that the current PCIe reset implementation is not quite working reliably due to some Intel i210 errata. Fix this by making sure the i210's +V3.3_ETH rail is properly disabled during its reset sequence. Also further improve on the bringing up the PCIe switch as found on the Apalis Evaluation board. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-gpio.dtsi9
-rw-r--r--arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-pmic.dtsi16
-rw-r--r--arch/arm/mach-tegra/board-apalis-tk1.h4
3 files changed, 21 insertions, 8 deletions
diff --git a/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-gpio.dtsi b/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-gpio.dtsi
index 100e3449c9b0..3dc15c51114b 100644
--- a/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-gpio.dtsi
+++ b/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-gpio.dtsi
@@ -36,6 +36,8 @@
>;
gpio-output-low = <
TEGRA_GPIO(C, 0)
+ TEGRA_GPIO(O, 5) /* LAN_WAKE_N */
+ TEGRA_GPIO(O, 6) /* LAN_DEV_OFF_N */
TEGRA_GPIO(Q, 0) /* Shift_CTRL_OE[0] */
TEGRA_GPIO(Q, 1) /* Shift_CTRL_OE[1] */
TEGRA_GPIO(Q, 2) /* Shift_CTRL_OE[2] */
@@ -43,7 +45,9 @@
TEGRA_GPIO(R, 0) /* Shift_CTRL_Dir_In[0] */
TEGRA_GPIO(R, 1) /* Shift_CTRL_Dir_In[1] */
TEGRA_GPIO(R, 2) /* Shift_CTRL_OE[3] */
+ TEGRA_GPIO(S, 2) /* LAN_RESET_N */
TEGRA_GPIO(S, 3) /* Shift_CTRL_Dir_In[2] */
+ TEGRA_GPIO(U, 4) /* RESET_MOCI_CTRL */
TEGRA_GPIO(BB, 3)
TEGRA_GPIO(BB, 6)
>;
@@ -51,14 +55,9 @@
TEGRA_GPIO(N, 2)
TEGRA_GPIO(N, 4)
TEGRA_GPIO(N, 5)
-#if 0
- TEGRA_GPIO(O, 6) /* LAN_DEV_OFF# */
-#endif
TEGRA_GPIO(Q, 5) /* Shift_CTRL_Dir_Out[0] */
TEGRA_GPIO(Q, 6) /* Shift_CTRL_Dir_Out[1] */
TEGRA_GPIO(Q, 7) /* Shift_CTRL_Dir_Out[2] */
- TEGRA_GPIO(S, 2) /* LAN_RESET# */
- TEGRA_GPIO(U, 4)
TEGRA_GPIO(BB, 5)
>;
};
diff --git a/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-pmic.dtsi b/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-pmic.dtsi
index 695891d28a80..342487b285f0 100644
--- a/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-pmic.dtsi
+++ b/arch/arm/boot/dts/tegra124-platforms/tegra124-apalis-pmic.dtsi
@@ -460,14 +460,26 @@
regulator-name = "+V3.3_ETH(ldo9)";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
- regulator-always-on;
+
+ consumers {
+ c1 {
+ regulator-consumer-supply = "i210_vdd3p3_ldo9";
+ regulator-consumer-device = "pcie-controller.1";
+ };
+ };
};
as3722_ldo10: ldo10 {
regulator-name = "+V3.3_ETH(ldo10)";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
- regulator-always-on;
+
+ consumers {
+ c1 {
+ regulator-consumer-supply = "i210_vdd3p3_ldo10";
+ regulator-consumer-device = "pcie-controller.1";
+ };
+ };
};
as3722_ldo11: ldo11 {
diff --git a/arch/arm/mach-tegra/board-apalis-tk1.h b/arch/arm/mach-tegra/board-apalis-tk1.h
index b825abb0bdb2..d6114a1af820 100644
--- a/arch/arm/mach-tegra/board-apalis-tk1.h
+++ b/arch/arm/mach-tegra/board-apalis-tk1.h
@@ -60,7 +60,9 @@
#define I2C3_SCL TEGRA_GPIO_PBB1
#define I2C3_SDA TEGRA_GPIO_PBB2
+#define LAN_DEV_OFF_N TEGRA_GPIO_PO6
#define LAN_RESET_N TEGRA_GPIO_PS2
+#define LAN_WAKE_N TEGRA_GPIO_PO5
#define MMC1_CD_N TEGRA_GPIO_PV3
@@ -69,7 +71,7 @@
#define PWR_I2C_SCL TEGRA_GPIO_PZ6
#define PWR_I2C_SDA TEGRA_GPIO_PZ7
-#define RESET_MOCI_N TEGRA_GPIO_PU4
+#define RESET_MOCI_CTRL TEGRA_GPIO_PU4
#define SATA1_ACT_N TEGRA_GPIO_PN2