[PATCH v1 1/2] net: phy: Let gmiitorgmii converter create additional PHY
Tapio Reijonen
tapio.reijonen at vaisala.com
Wed Jan 22 08:31:56 CET 2025
Hi Michal,
On 2025-01-21 15:14, Michal Simek wrote:
> [You don't often get email from monstr at monstr.eu. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> Hi,
>
> čt 16. 1. 2025 v 14:07 odesílatel Tapio Reijonen
> <tapio.reijonen at vaisala.com> napsal:
>>
>> Change the order to connect gmiitorgmii before PHY creation.
>> The gmiitorgmii create additional in DTS configured PHY during
>> it's configuration. This ensures, that converter sits between the
>> MAC and the external phy
>> MAC <==> GMII2RGMII <==> RGMII_PHY.
>>
>> Fixes: commit a744a284e354 ("net: phy: Add support for ethernet-phy-id with gpio reset")
>
> From format. Look at link in 2/2.
Fixing format in next version.
>
>> Signed-off-by: Tapio Reijonen <tapio.reijonen at vaisala.com>
>> ---
>>
>> drivers/net/phy/phy.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
>> index 716a1d46111..740533adeca 100644
>> --- a/drivers/net/phy/phy.c
>> +++ b/drivers/net/phy/phy.c
>> @@ -939,14 +939,14 @@ struct phy_device *phy_connect(struct mii_dev *bus, int addr,
>> phydev = phy_device_create(bus, 0, PHY_NCSI_ID, false);
>> #endif
>>
>> -#ifdef CONFIG_PHY_ETHERNET_ID
>> +#ifdef CONFIG_PHY_XILINX_GMII2RGMII
>> if (!phydev)
>> - phydev = phy_connect_phy_id(bus, dev, addr);
>> + phydev = phy_connect_gmii2rgmii(bus, dev);
>> #endif
>>
>> -#ifdef CONFIG_PHY_XILINX_GMII2RGMII
>> +#ifdef CONFIG_PHY_ETHERNET_ID
>> if (!phydev)
>> - phydev = phy_connect_gmii2rgmii(bus, dev);
>> + phydev = phy_connect_phy_id(bus, dev, addr);
>> #endif
>>
>> if (!phydev)
>> --
>> 2.39.5
>>
>
> I can't see any issue with this swap but I would like to check your DT
> description first.
> Can you please share your DT fragment which describes this?
Here is our board's DT fragment:
&gem1 {
status = "okay";
phy-handle = <&phy1>;
phy-mode = "rgmii-id";
mdio {
#address-cells = <1>;
#size-cells = <0>;
phy1: ethernet-phy at 1 {
reg = <1>;
#phy-cells = <1>;
compatible = "ethernet-phy-id2000.a231";
reset-assert-us = <10>;
reset-deassert-us = <400>;
reset-gpios = <&gpio0 54 GPIO_ACTIVE_LOW>;
ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_50_NS>;
ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
};
gmii_to_rgmii_0: gmiitorgmii at 8 {
reg = <8>;
compatible = "xlnx,gmii-to-rgmii-1.0";
phy-handle = <&phy1>;
};
};
};
Thanks,
Tapio
>
> Thanks,
> Michal
>
> --
> Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
> w: http://www.monstr.eu/ p: +42-0-721842854
> Maintainer of Linux kernel - Xilinx Microblaze
> Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
> U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs
More information about the U-Boot
mailing list