Skip to content

Commit

Permalink
arm64: dts: meson: use the generic Ethernet PHY reset GPIO bindings
Browse files Browse the repository at this point in the history
The snps,reset-gpio bindings are deprecated in favour of the generic
"Ethernet PHY reset" bindings.

Replace snps,reset-gpio from the &ethmac node with reset-gpios in the
ethernet-phy node. The old snps,reset-active-low property is now encoded
directly as GPIO flag inside the reset-gpios property.

snps,reset-delays-us is converted to reset-assert-us and
reset-deassert-us. reset-assert-us is the second cell from
snps,reset-delays-us while reset-deassert-us was the third cell.

Instead of blindly copying the old values (which seems strange since
they gave the PHY one second to come out of reset) over this also
updates the delays based on the datasheets:
- the Realtek RTL8211F PHY needs a 10ms assert delay (the datasheet
  mentions: "For a complete PHY reset, this pin must be asserted low
  for at least 10ms") and a 30ms deassert delay (the datasheet
  mentions: "Wait for a further 30ms (for internal circuits settling
  time) before accessing the PHY register". This applies to the
  following boards: GXBB NanoPi K2, GXBB Odroid-C2, GXBB Vega S95
  variants, GXBB Wetek variants, GXL P230, GXM Khadas VIM2, GXM Nexbox
  A1, GXM Q200, GXM RBox Pro boards.
- the ICPlus IP101GR PHY needs a 10ms assert delay (the datasheet
  mentions: "Trst | Reset period | 10ms") and a deassert delay of 10ms
  as well (the datasheet mentions: "Tclk_MII_rdy | MII/RMII clock
  output ready after reset released | 10ms"). This applies to the GXBB
  Nexbox A95X board.
- the Micrel KSZ9031 seems to require a 100us delay but use the same
  (seemingly safe) values from RTL8211F due to lack of a board to verify
  this. This applies to the GXBB P200 board.

The GXBB P201 board is left out from this conversion because it doesn't
have a dedicated PHY node (because it's not clear which PHY is used on
that board).

Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
  • Loading branch information
xdarklight authored and khilman committed Jun 20, 2019
1 parent ed5e8f6 commit f29cabf
Show file tree
Hide file tree
Showing 11 changed files with 53 additions and 47 deletions.
9 changes: 5 additions & 4 deletions arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
Expand Up @@ -154,10 +154,6 @@

amlogic,tx-delay-ns = <2>;

snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
Expand All @@ -166,6 +162,11 @@
eth_phy0: ethernet-phy@0 {
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;

reset-assert-us = <10000>;
reset-deassert-us = <30000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;

interrupt-parent = <&gpio_intc>;
/* MAC_INTR on GPIOZ_15 */
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
Expand Down
8 changes: 4 additions & 4 deletions arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
Expand Up @@ -162,10 +162,6 @@
phy-handle = <&eth_phy0>;
phy-mode = "rmii";

snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
Expand All @@ -174,6 +170,10 @@
eth_phy0: ethernet-phy@0 {
/* IC Plus IP101GR (0x02430c54) */
reg = <0>;

reset-assert-us = <10000>;
reset-deassert-us = <10000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
};
};
};
Expand Down
9 changes: 5 additions & 4 deletions arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
Expand Up @@ -126,10 +126,6 @@
phy-handle = <&eth_phy0>;
phy-mode = "rgmii";

snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

amlogic,tx-delay-ns = <2>;

mdio {
Expand All @@ -140,6 +136,11 @@
eth_phy0: ethernet-phy@0 {
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;

reset-assert-us = <10000>;
reset-deassert-us = <30000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;

interrupt-parent = <&gpio_intc>;
/* MAC_INTR on GPIOZ_15 */
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
Expand Down
9 changes: 5 additions & 4 deletions arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts
Expand Up @@ -68,10 +68,6 @@

amlogic,tx-delay-ns = <2>;

snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
Expand All @@ -80,6 +76,11 @@
eth_phy0: ethernet-phy@3 {
/* Micrel KSZ9031 (0x00221620) */
reg = <3>;

reset-assert-us = <10000>;
reset-deassert-us = <30000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;

interrupt-parent = <&gpio_intc>;
/* MAC_INTR on GPIOZ_15 */
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
Expand Down
9 changes: 5 additions & 4 deletions arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
Expand Up @@ -116,10 +116,6 @@

amlogic,tx-delay-ns = <2>;

snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
Expand All @@ -128,6 +124,11 @@
eth_phy0: ethernet-phy@0 {
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;

reset-assert-us = <10000>;
reset-deassert-us = <30000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;

interrupt-parent = <&gpio_intc>;
/* MAC_INTR on GPIOZ_15 */
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
Expand Down
8 changes: 4 additions & 4 deletions arch/arm64/boot/dts/amlogic/meson-gxbb-wetek.dtsi
Expand Up @@ -137,10 +137,6 @@

amlogic,tx-delay-ns = <2>;

snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <1>;
Expand All @@ -149,6 +145,10 @@
eth_phy0: ethernet-phy@0 {
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;

reset-assert-us = <10000>;
reset-deassert-us = <30000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
};
};
};
Expand Down
11 changes: 6 additions & 5 deletions arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
Expand Up @@ -70,11 +70,6 @@

amlogic,tx-delay-ns = <2>;

/* External PHY reset is shared with internal PHY Led signals */
snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

/* External PHY is in RGMII */
phy-mode = "rgmii";
};
Expand All @@ -84,6 +79,12 @@
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;
max-speed = <1000>;

/* External PHY reset is shared with internal PHY Led signal */
reset-assert-us = <10000>;
reset-deassert-us = <30000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;

interrupt-parent = <&gpio_intc>;
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
eee-broken-1000t;
Expand Down
10 changes: 5 additions & 5 deletions arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
Expand Up @@ -239,11 +239,6 @@

amlogic,tx-delay-ns = <2>;

/* External PHY reset is shared with internal PHY Led signals */
snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

/* External PHY is in RGMII */
phy-mode = "rgmii";

Expand All @@ -254,6 +249,11 @@
external_phy: ethernet-phy@0 {
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;

reset-assert-us = <10000>;
reset-deassert-us = <30000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;

interrupt-parent = <&gpio_intc>;
/* MAC_INTR on GPIOZ_15 */
interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
Expand Down
8 changes: 4 additions & 4 deletions arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
Expand Up @@ -101,10 +101,6 @@

amlogic,tx-delay-ns = <2>;

snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

/* External PHY is in RGMII */
phy-mode = "rgmii";
};
Expand All @@ -114,6 +110,10 @@
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;
max-speed = <1000>;

reset-assert-us = <10000>;
reset-deassert-us = <30000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
};
};

Expand Down
11 changes: 6 additions & 5 deletions arch/arm64/boot/dts/amlogic/meson-gxm-q200.dts
Expand Up @@ -52,11 +52,6 @@

amlogic,tx-delay-ns = <2>;

/* External PHY reset is shared with internal PHY Led signals */
snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

/* External PHY is in RGMII */
phy-mode = "rgmii";
};
Expand All @@ -66,6 +61,12 @@
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;
max-speed = <1000>;

/* External PHY reset is shared with internal PHY Led signal */
reset-assert-us = <10000>;
reset-deassert-us = <30000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;

interrupt-parent = <&gpio_intc>;
/* MAC_INTR on GPIOZ_15 */
interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
Expand Down
8 changes: 4 additions & 4 deletions arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
Expand Up @@ -101,10 +101,6 @@
/* Select external PHY by default */
phy-handle = <&external_phy>;

snps,reset-gpio = <&gpio GPIOZ_14 0>;
snps,reset-delays-us = <0 10000 1000000>;
snps,reset-active-low;

amlogic,tx-delay-ns = <2>;

/* External PHY is in RGMII */
Expand All @@ -116,6 +112,10 @@
/* Realtek RTL8211F (0x001cc916) */
reg = <0>;
max-speed = <1000>;

reset-assert-us = <10000>;
reset-deassert-us = <30000>;
reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
};
};

Expand Down

0 comments on commit f29cabf

Please sign in to comment.