Commit a5200e63 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven

arm64: dts: renesas: rzg2: Convert EtherAVB to explicit delay handling

Some EtherAVB variants support internal clock delay configuration, which
can add larger delays than the delays that are typically supported by
the PHY (using an "rgmii-*id" PHY mode, and/or "[rt]xc-skew-ps"
properties).

Historically, the EtherAVB driver configured these delays based on the
"rgmii-*id" PHY mode.  This was wrong, as these are meant solely for the
PHY, not for the MAC.  Hence properties were introduced for explicit
configuration of these delays.

Convert the RZ/G2 DTS files from the old to the new scheme:
  - Add default "rx-internal-delay-ps" and "tx-internal-delay-ps"
    properties to the SoC .dtsi files, to be overridden by board files
    where needed,
  - Convert board files from "rgmii-*id" PHY modes to "rgmii", adding
    the appropriate "rx-internal-delay-ps" and/or "tx-internal-delay-ps"
    overrides.

Notes:
  - RZ/G2E does not support TX internal delay handling.
Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20200819134344.27813-8-geert+renesas@glider.be
parent 9b810181
...@@ -55,7 +55,8 @@ &avb { ...@@ -55,7 +55,8 @@ &avb {
pinctrl-0 = <&avb_pins>; pinctrl-0 = <&avb_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
phy-handle = <&phy0>; phy-handle = <&phy0>;
phy-mode = "rgmii-id"; rx-internal-delay-ps = <1800>;
tx-internal-delay-ps = <2000>;
status = "okay"; status = "okay";
phy0: ethernet-phy@0 { phy0: ethernet-phy@0 {
......
...@@ -19,7 +19,7 @@ &avb { ...@@ -19,7 +19,7 @@ &avb {
pinctrl-0 = <&avb_pins>; pinctrl-0 = <&avb_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
phy-handle = <&phy0>; phy-handle = <&phy0>;
phy-mode = "rgmii-txid"; tx-internal-delay-ps = <2000>;
status = "okay"; status = "okay";
phy0: ethernet-phy@0 { phy0: ethernet-phy@0 {
......
...@@ -1115,6 +1115,8 @@ avb: ethernet@e6800000 { ...@@ -1115,6 +1115,8 @@ avb: ethernet@e6800000 {
power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>; power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
resets = <&cpg 812>; resets = <&cpg 812>;
phy-mode = "rgmii"; phy-mode = "rgmii";
rx-internal-delay-ps = <0>;
tx-internal-delay-ps = <0>;
iommus = <&ipmmu_ds0 16>; iommus = <&ipmmu_ds0 16>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -989,6 +989,8 @@ avb: ethernet@e6800000 { ...@@ -989,6 +989,8 @@ avb: ethernet@e6800000 {
power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>; power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
resets = <&cpg 812>; resets = <&cpg 812>;
phy-mode = "rgmii"; phy-mode = "rgmii";
rx-internal-delay-ps = <0>;
tx-internal-delay-ps = <0>;
iommus = <&ipmmu_ds0 16>; iommus = <&ipmmu_ds0 16>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -960,6 +960,7 @@ avb: ethernet@e6800000 { ...@@ -960,6 +960,7 @@ avb: ethernet@e6800000 {
power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>; power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
resets = <&cpg 812>; resets = <&cpg 812>;
phy-mode = "rgmii"; phy-mode = "rgmii";
rx-internal-delay-ps = <0>;
iommus = <&ipmmu_ds0 16>; iommus = <&ipmmu_ds0 16>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
...@@ -1212,6 +1212,8 @@ avb: ethernet@e6800000 { ...@@ -1212,6 +1212,8 @@ avb: ethernet@e6800000 {
power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>; power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>;
resets = <&cpg 812>; resets = <&cpg 812>;
phy-mode = "rgmii"; phy-mode = "rgmii";
rx-internal-delay-ps = <0>;
tx-internal-delay-ps = <0>;
iommus = <&ipmmu_ds0 16>; iommus = <&ipmmu_ds0 16>;
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment