Message ID | 20240305-b4-for-v6-9-am65-beagleplay-ethernet-reset-v2-1-2bf463a7bf13@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] arm64: dts: ti: beagleplay: Fix Ethernet PHY RESET GPIOs | expand |
Hi Vignesh & Nishanth, On 05/03/2024 15:15, Roger Quadros wrote: > 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> Could you please pick this for -next. It should apply cleanly. Thanks! > --- > Changes in v2: > - Fix Subject to "arm64" > - Enable PIN_INPUT for SPE_RESET to fix GPIO status. > - Add Fixes tag. > - Link to v1: https://lore.kernel.org/r/20240229-b4-for-v6-9-am65-beagleplay-ethernet-reset-v1-1-b3e4b33378bd@kernel.org > --- > arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts > index a34e0df2ab86..8ab838f1697c 100644 > --- a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts > +++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts > @@ -292,6 +292,8 @@ mdio0_pins_default: mdio0-default-pins { > 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 */ > >; > }; > > @@ -383,7 +385,6 @@ AM62X_IOPAD(0x017c, PIN_INPUT, 1) /* (AD22) RGMII2_RX_CTL.RMII2_RX_ER */ > 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 */ > >; > @@ -597,6 +598,9 @@ &cpsw3g_mdio { > > 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 { > @@ -615,7 +619,7 @@ &main_gpio0 { > "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 */ > > --- > base-commit: bbef42084cc170cbfc035bf784f2ff055c939d7e > change-id: 20240229-b4-for-v6-9-am65-beagleplay-ethernet-reset-098f274fbf15 > > Best regards,
Hi Vignesh & Nishanth, Could you please pick this in the v6.9-rc cycle? This patch should still apply cleanly. On 05/03/2024 15:15, Roger Quadros wrote: > 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> > --- > Changes in v2: > - Fix Subject to "arm64" > - Enable PIN_INPUT for SPE_RESET to fix GPIO status. > - Add Fixes tag. > - Link to v1: https://lore.kernel.org/r/20240229-b4-for-v6-9-am65-beagleplay-ethernet-reset-v1-1-b3e4b33378bd@kernel.org > --- > arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts > index a34e0df2ab86..8ab838f1697c 100644 > --- a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts > +++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts > @@ -292,6 +292,8 @@ mdio0_pins_default: mdio0-default-pins { > 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 */ > >; > }; > > @@ -383,7 +385,6 @@ AM62X_IOPAD(0x017c, PIN_INPUT, 1) /* (AD22) RGMII2_RX_CTL.RMII2_RX_ER */ > 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 */ > >; > @@ -597,6 +598,9 @@ &cpsw3g_mdio { > > 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 { > @@ -615,7 +619,7 @@ &main_gpio0 { > "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 */ > > --- > base-commit: bbef42084cc170cbfc035bf784f2ff055c939d7e > change-id: 20240229-b4-for-v6-9-am65-beagleplay-ethernet-reset-098f274fbf15 > > Best regards,
Hi Roger Quadros, On Tue, 05 Mar 2024 15:15:32 +0200, Roger Quadros wrote: > 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. > > [...] I have applied the following to branch ti-k3-dts-next on [1]. Thank you! [1/1] arm64: dts: ti: beagleplay: Fix Ethernet PHY RESET GPIOs commit: 0b1133ee36ecbf3b02f69cc4e8a169f1b6019e40 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent up the chain during the next merge window (or sooner if it is a relevant bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. [1] https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git
diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts index a34e0df2ab86..8ab838f1697c 100644 --- a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts +++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts @@ -292,6 +292,8 @@ mdio0_pins_default: mdio0-default-pins { 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 */ >; }; @@ -383,7 +385,6 @@ AM62X_IOPAD(0x017c, PIN_INPUT, 1) /* (AD22) RGMII2_RX_CTL.RMII2_RX_ER */ 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 */ >; @@ -597,6 +598,9 @@ &cpsw3g_mdio { 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 { @@ -615,7 +619,7 @@ &main_gpio0 { "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 */
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> --- Changes in v2: - Fix Subject to "arm64" - Enable PIN_INPUT for SPE_RESET to fix GPIO status. - Add Fixes tag. - Link to v1: https://lore.kernel.org/r/20240229-b4-for-v6-9-am65-beagleplay-ethernet-reset-v1-1-b3e4b33378bd@kernel.org --- arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- base-commit: bbef42084cc170cbfc035bf784f2ff055c939d7e change-id: 20240229-b4-for-v6-9-am65-beagleplay-ethernet-reset-098f274fbf15 Best regards,