[PATCH] net: zynq: Add support for mdio bus address decoding

Michal Simek michal.simek at xilinx.com
Mon Dec 6 14:53:34 CET 2021



On 11/22/21 11:36, Ramon Fried wrote:
> On Mon, Nov 22, 2021 at 9:40 AM Michal Simek <michal.simek at xilinx.com> wrote:
>>
>>
>>
>> On 11/21/21 20:11, Ramon Fried wrote:
>>> On Thu, Nov 18, 2021 at 2:06 PM Michal Simek <michal.simek at xilinx.com> wrote:
>>>>
>>>> There are flying two configurations around.
>>> Can you rephrase ? I don't understand.
>>
>> The first configuration is
>> eth {
>>          phy-handle = <&phy0>;
>>           phy0: ethernet-phy at 21 {
>>                  ...
>>          };
>> };
>>
>> The second is (based on mdio.yaml)
>> eth {
>>          phy-handle = <&phy0>;
>>          mdio {
>>                  phy0: ethernet-phy at 21 {
>>                          ...
>>                  };
>>          };
>> };
>>
>> Xilinx dts files are using both ways. But the second case is not fully
>> when you have one mdio bus shared with at least 2 phys where one phy is
>> connected to another gem controller.
>> This code is updating logic which finds which gen controller is mdio bus
>> owner.
>>
>> Please let me know if you want me to update commit message.
>>
>> Thanks,
>> Michal
>>
>>
>>>> The first (already supported) has phy as subnode of gem node.
>>>> The second has mdio subnode (with mdio name) which has phy subnode.
>>>>
>>>> This patch adds support for the second case where mdio subnode
>>>> is found driver will look at its parent to find out which gem is handling
>>>> MDIO bus.
>>>>
>>>> Signed-off-by: Michal Simek <michal.simek at xilinx.com>
>>>> ---
>>>>
>>>>    drivers/net/zynq_gem.c | 3 +++
>>>>    1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c
>>>> index 033021f1cbfc..91957757727d 100644
>>>> --- a/drivers/net/zynq_gem.c
>>>> +++ b/drivers/net/zynq_gem.c
>>>> @@ -804,6 +804,9 @@ static int zynq_gem_of_to_plat(struct udevice *dev)
>>>>                                                             SPEED_1000);
>>>>
>>>>                   parent = ofnode_get_parent(phandle_args.node);
>>>> +               if (ofnode_name_eq(parent, "mdio"))
>>>> +                       parent = ofnode_get_parent(parent);
>>>> +
>>>>                   addr = ofnode_get_addr(parent);
>>>>                   if (addr != FDT_ADDR_T_NONE) {
>>>>                           debug("MDIO bus not found %s\n", dev->name);
>>>> --
>>>> 2.33.1
>>>>
> "There are flying two configurations around."
> The above sentence is semantically incorrect, just fix that.
> 

v2 sent.

Thanks,
Michal


More information about the U-Boot mailing list