On Sat, Apr 13, 2019 at 10:24 PM megous via linux-sunxi linux-sunxi@googlegroups.com wrote:
From: Ondrej Jirman megous@megous.com
Orange Pi 3 has two regulators that power the Realtek RTL8211E. According to the phy datasheet, both regulators need to be enabled at the same time, but we can only specify a single phy-supply in the DT.
This can be achieved by making one regulator depedning on the other via vin-supply. While it's not a technically correct description of the hardware, it achieves the purpose.
All values of RX/TX delay were tested exhaustively and a middle one of the working values was chosen.
Signed-off-by: Ondrej Jirman megous@megous.com
.../dts/allwinner/sun50i-h6-orangepi-3.dts | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts index 17d496990108..6d6b1f66796d 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts @@ -15,6 +15,7 @@
aliases { serial0 = &uart0;
ethernet0 = &emac; }; chosen {
@@ -44,6 +45,27 @@ regulator-max-microvolt = <5000000>; regulator-always-on; };
/*
* The board uses 2.5V RGMII signalling. Power sequence to enable
* the phy is to enable GMAC-2V5 and GMAC-3V3 (aldo2) power rails
* at the same time and to wait 100ms.
*/
reg_gmac_2v5: gmac-2v5 {
compatible = "regulator-fixed";
regulator-name = "gmac-2v5";
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <2500000>;
startup-delay-us = <100000>;
enable-active-high;
gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */
/* The real parent of gmac-2v5 is reg_vcc5v, but we need to
* enable two regulators to power the phy. This is one way
* to achieve that.
*/
vin-supply = <®_aldo2>; /* GMAC-3V3 */
The actual output supply pin name is GMAC-3V which has an input of VCC3V3-MAC (ie aldo2), if we compatible to schematics better to use the same, IMHO.