From: Nora Schiffer <nora.schiffer@ew.tq-group.com>
Correctly describe the PHY resets.
While the TI DP83867 requires only a 1us reset pulse in RGMII mode, 2.5ms
are needed for SGMII, where series capacitors would result in incorrect
sampling of strap pins if they don't have enough time to discharge.
Signed-off-by: Nora Schiffer <nora.schiffer@ew.tq-group.com>
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
---
.../fsl-lx2160a-tqmlx2160a-mblx2160a.dts | 35 +++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a.dts b/arch/arm64/boot/dts/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a.dts
index 46a9fdc92bb56..687fd0d62235d 100644
--- a/arch/arm64/boot/dts/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a-tqmlx2160a-mblx2160a.dts
@@ -106,36 +106,59 @@ &dpmac18 {
phy-connection-type = "rgmii-id";
};
+/*
+ * Assert reset for 2.5ms on SGMII PHYs to let capacitors discharge before
+ * strap pin sampling
+ */
+
&emdio1 {
status = "okay";
dp83867_1_1: ethernet-phy@1 {
reg = <1>;
+ reset-assert-us = <2500>;
+ reset-deassert-us = <200>;
+ reset-gpios = <&gpioex1 1 GPIO_ACTIVE_LOW>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
dp83867_1_2: ethernet-phy@2 {
reg = <2>;
+ reset-assert-us = <2500>;
+ reset-deassert-us = <200>;
+ reset-gpios = <&gpioex1 2 GPIO_ACTIVE_LOW>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
dp83867_1_3: ethernet-phy@3 {
reg = <3>;
+ reset-assert-us = <2500>;
+ reset-deassert-us = <200>;
+ reset-gpios = <&gpioex1 3 GPIO_ACTIVE_LOW>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
dp83867_1_4: ethernet-phy@4 {
reg = <4>;
+ reset-assert-us = <2500>;
+ reset-deassert-us = <200>;
+ reset-gpios = <&gpioex1 4 GPIO_ACTIVE_LOW>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
dp83867_1_5: ethernet-phy@5 {
reg = <5>;
+ reset-assert-us = <2500>;
+ reset-deassert-us = <200>;
+ reset-gpios = <&gpioex1 5 GPIO_ACTIVE_LOW>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
dp83867_1_6: ethernet-phy@6 {
reg = <6>;
+ reset-assert-us = <2500>;
+ reset-deassert-us = <200>;
+ reset-gpios = <&gpioex1 6 GPIO_ACTIVE_LOW>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
};
@@ -145,16 +168,25 @@ &emdio2 {
dp83867_2_1: ethernet-phy@1 {
reg = <1>;
+ reset-assert-us = <2500>;
+ reset-deassert-us = <200>;
+ reset-gpios = <&gpioex1 7 GPIO_ACTIVE_LOW>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
dp83867_2_2: ethernet-phy@2 {
reg = <2>;
+ reset-assert-us = <2500>;
+ reset-deassert-us = <200>;
+ reset-gpios = <&gpioex1 8 GPIO_ACTIVE_LOW>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
};
dp83867_2_3: ethernet-phy@3 {
reg = <3>;
+ reset-assert-us = <1>;
+ reset-deassert-us = <200>;
+ reset-gpios = <&gpioex1 9 GPIO_ACTIVE_LOW>;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
@@ -162,6 +194,9 @@ dp83867_2_3: ethernet-phy@3 {
dp83867_2_4: ethernet-phy@4 {
reg = <4>;
+ reset-assert-us = <1>;
+ reset-deassert-us = <200>;
+ reset-gpios = <&gpioex1 10 GPIO_ACTIVE_LOW>;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
--
2.43.0