Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: dts: ti: k3-am625-beagleplay: Fix Ethernet PHY RESET GPIOs

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>

authored by

Roger Quadros and committed by
Nishanth Menon
0b1133ee 8e558642

+6 -2
+6 -2
arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
··· 289 289 pinctrl-single,pins = < 290 290 AM62X_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */ 291 291 AM62X_IOPAD(0x015c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */ 292 + AM62X_IOPAD(0x003c, PIN_INPUT, 7) /* (M25) GPMC0_AD0.GPIO0_15 */ 293 + AM62X_IOPAD(0x018c, PIN_INPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */ 292 294 >; 293 295 }; 294 296 ··· 382 380 AM62X_IOPAD(0x016c, PIN_INPUT, 1) /* (Y18) RGMII2_TD0.RMII2_TXD0 */ 383 381 AM62X_IOPAD(0x0170, PIN_INPUT, 1) /* (AA18) RGMII2_TD1.RMII2_TXD1 */ 384 382 AM62X_IOPAD(0x0164, PIN_INPUT, 1) /* (AA19) RGMII2_TX_CTL.RMII2_TX_EN */ 385 - AM62X_IOPAD(0x018c, PIN_OUTPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */ 386 383 AM62X_IOPAD(0x0190, PIN_INPUT, 7) /* (AE22) RGMII2_RD3.GPIO1_6 */ 387 384 AM62X_IOPAD(0x01f0, PIN_OUTPUT, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */ 388 385 >; ··· 595 594 596 595 cpsw3g_phy0: ethernet-phy@0 { 597 596 reg = <0>; 597 + reset-gpios = <&main_gpio0 15 GPIO_ACTIVE_LOW>; 598 + reset-assert-us = <10000>; 599 + reset-deassert-us = <50000>; 598 600 }; 599 601 600 602 cpsw3g_phy1: ethernet-phy@1 { ··· 616 612 "USR0", "USR1", "USR2", "USR3", "", "", "USR4", /* 3-9 */ 617 613 "EEPROM_WP", /* 10 */ 618 614 "CSI2_CAMERA_GPIO1", "CSI2_CAMERA_GPIO2", /* 11-12 */ 619 - "CC1352P7_BOOT", "CC1352P7_RSTN", "", "", "", /* 13-17 */ 615 + "CC1352P7_BOOT", "CC1352P7_RSTN", "GBE_RSTN", "", "", /* 13-17 */ 620 616 "USR_BUTTON", "", "", "", "", "", "", "", "", /* 18-26 */ 621 617 "", "", "", "", "", "", "", "", "", "HDMI_INT", /* 27-36 */ 622 618 "", "VDD_WLAN_EN", "", "", "WL_IRQ", "GBE_INTN",/* 37-42 */