[PATCH] arm64: dts: ti: k3-am625-beagleplay: Use the builtin mdio bus

Nishanth Menon nm at ti.com
Fri Jan 12 05:50:00 PST 2024


On 13:44-20240112, Sjoerd Simons wrote:
> The beagleplay dts was using a bit-bang gpio mdio bus as a work-around
> for errata i2329. However since commit d04807b80691 ("net: ethernet: ti:
> davinci_mdio: Add workaround for errata i2329") the mdio driver itself
> already takes care of this errata for effected silicon, which landed
> well before the beagleplay dts. So i suspect the reason for the
> workaround in upstream was simply due to copying the vendor dts.
> 
> Switch the dts to the ti,cpsw-mdio instead so it described the actual
> hardware and is consistent with other AM625 based boards
> 
> Signed-off-by: Sjoerd Simons <sjoerd at collabora.com>
> 
> ---

We have had issues with the ethernet integration previously (also why
ethernet in u-boot is not yet functional on beagleplay[1]).

https://openbeagle.org/beagleplay/beagleplay/-/issues/101

we should probably do a 1000 boot nfs test or something to ensure this
doesn't introduce regressions (I recollect mdio wasn't stable on
beagleplay) and switching to bitbang driver stopped all complains.

[1] https://lore.kernel.org/u-boot/20230822121350.51324-1-rogerq@kernel.org/
> 
>  .../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 42 +++++++------------
>  1 file changed, 16 insertions(+), 26 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
> index eadbdd9ffe37..49fb21ba62b0 100644
> --- a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
> @@ -29,7 +29,6 @@ aliases {
>  		i2c3 = &main_i2c3;
>  		i2c4 = &wkup_i2c0;
>  		i2c5 = &mcu_i2c0;
> -		mdio-gpio0 = &mdio0;
>  		mmc0 = &sdhci0;
>  		mmc1 = &sdhci1;
>  		mmc2 = &sdhci2;
> @@ -231,27 +230,6 @@ simple-audio-card,codec {
>  		};
>  	};
>  
> -	/* Workaround for errata i2329 - just use mdio bitbang */
> -	mdio0: mdio {
> -		compatible = "virtual,mdio-gpio";
> -		pinctrl-names = "default";
> -		pinctrl-0 = <&mdio0_pins_default>;
> -		gpios = <&main_gpio0 86 GPIO_ACTIVE_HIGH>, /* MDC */
> -			<&main_gpio0 85 GPIO_ACTIVE_HIGH>; /* MDIO */
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -
> -		cpsw3g_phy0: ethernet-phy at 0 {
> -			reg = <0>;
> -		};
> -
> -		cpsw3g_phy1: ethernet-phy at 1 {
> -			reg = <1>;
> -			reset-gpios = <&main_gpio1 5 GPIO_ACTIVE_LOW>;
> -			reset-assert-us = <25>;
> -			reset-deassert-us = <60000>; /* T2 */
> -		};
> -	};
>  };
>  
>  &main_pmx0 {
> @@ -312,8 +290,8 @@ AM62X_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */
>  
>  	mdio0_pins_default: mdio0-default-pins {
>  		pinctrl-single,pins = <
> -			AM62X_IOPAD(0x0160, PIN_OUTPUT, 7) /* (AD24) MDIO0_MDC.GPIO0_86 */
> -			AM62X_IOPAD(0x015c, PIN_INPUT, 7) /* (AB22) MDIO0_MDIO.GPIO0_85 */
> +			AM62X_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */
> +			AM62X_IOPAD(0x015c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */
>  		>;
>  	};
>  
> @@ -611,8 +589,20 @@ &cpsw_port2 {
>  };
>  
>  &cpsw3g_mdio {
> -	/* Workaround for errata i2329 - Use mdio bitbang */
> -	status = "disabled";
> +	status = "okay";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&mdio0_pins_default>;
> +
> +	cpsw3g_phy0: ethernet-phy at 0 {
> +		reg = <0>;
> +	};
> +
> +	cpsw3g_phy1: ethernet-phy at 1 {
> +		reg = <1>;
> +		reset-gpios = <&main_gpio1 5 GPIO_ACTIVE_LOW>;
> +		reset-assert-us = <25>;
> +		reset-deassert-us = <60000>; /* T2 */
> +	};
>  };
>  
>  &main_gpio0 {
> -- 
> 2.43.0
> 

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D



More information about the linux-arm-kernel mailing list