[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