arm64: dts: ti: k3-am625-beagleplay: Fix Ethernet PHY RESET GPIOs
authorRoger Quadros <rogerq@kernel.org>
Tue, 5 Mar 2024 13:15:32 +0000 (15:15 +0200)
committerNishanth Menon <nm@ti.com>
Mon, 29 Apr 2024 20:02:48 +0000 (15:02 -0500)
The RESET GPIO pinmux should be part of MDIO bus node
so that they can be in the right state before the PHY
can be probed via MDIO bus scan.

The GPIO pin should be setup with PIN_INPUT so that
input circuitry is enabled in case software wants to
check pin status. Without this, incorrect status is shown
in /sys/kernel/debug/gpio.

Add GPIO reset for the Gigabit Ethernet PHY. As per
RTL8211F datasheet, reset assert width is 10ms and
PHY registers can be access accessed after 50ms of
reset deassert.

Fixes: f5a731f0787f ("arm64: dts: ti: Add k3-am625-beagleplay")
Signed-off-by: Roger Quadros <rogerq@kernel.org>
Link: https://lore.kernel.org/r/20240305-b4-for-v6-9-am65-beagleplay-ethernet-reset-v2-1-2bf463a7bf13@kernel.org
Signed-off-by: Nishanth Menon <nm@ti.com>
arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts

index 84977c1cc85dfbf563b816be257480510371e898..18e3070a86839f7a4c3816037bf71781e5a3441b 100644 (file)
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */
                        AM62X_IOPAD(0x015c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */
+                       AM62X_IOPAD(0x003c, PIN_INPUT, 7) /* (M25) GPMC0_AD0.GPIO0_15 */
+                       AM62X_IOPAD(0x018c, PIN_INPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */
                >;
        };
 
                        AM62X_IOPAD(0x016c, PIN_INPUT, 1) /* (Y18) RGMII2_TD0.RMII2_TXD0 */
                        AM62X_IOPAD(0x0170, PIN_INPUT, 1) /* (AA18) RGMII2_TD1.RMII2_TXD1 */
                        AM62X_IOPAD(0x0164, PIN_INPUT, 1) /* (AA19) RGMII2_TX_CTL.RMII2_TX_EN */
-                       AM62X_IOPAD(0x018c, PIN_OUTPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */
                        AM62X_IOPAD(0x0190, PIN_INPUT, 7) /* (AE22) RGMII2_RD3.GPIO1_6 */
                        AM62X_IOPAD(0x01f0, PIN_OUTPUT, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */
                >;
 
        cpsw3g_phy0: ethernet-phy@0 {
                reg = <0>;
+               reset-gpios = <&main_gpio0 15 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <50000>;
        };
 
        cpsw3g_phy1: ethernet-phy@1 {
                "USR0", "USR1", "USR2", "USR3", "", "", "USR4", /* 3-9 */
                "EEPROM_WP",                                    /* 10 */
                "CSI2_CAMERA_GPIO1", "CSI2_CAMERA_GPIO2",       /* 11-12 */
-               "CC1352P7_BOOT", "CC1352P7_RSTN", "", "", "",   /* 13-17 */
+               "CC1352P7_BOOT", "CC1352P7_RSTN", "GBE_RSTN", "", "",   /* 13-17 */
                "USR_BUTTON", "", "", "", "", "", "", "", "",   /* 18-26 */
                "", "", "", "", "", "", "", "", "", "HDMI_INT", /* 27-36 */
                "", "VDD_WLAN_EN", "", "", "WL_IRQ", "GBE_INTN",/* 37-42 */