On 15.07.21 10:05, Stefan Roese wrote:
Hi Tony,

On 15.07.21 03:11, Tony Dinh wrote:
Hi Stefan,

I will need to resend this patch (V3 3/4).

Ok. Please add the patch version and history back into the patches
next time again.

Also, when re-sending please include the already collected tags into
the patches (Reviewed-by, Acked-by etc), if the patch has not changed
too much.

Thanks,
Stefan

Thanks,
Stefan

Thanks,
Tony

On Wed, Jul 7, 2021 at 2:07 AM Tony Dinh <mibo...@gmail.com <mailto:mibo...@gmail.com>> wrote:

    In DM Ethernet, the old "egiga0" name is no longer valid, so replace it
    with Ethernet PHY name from device tree. Also, Ethernet PHY address
    is available so read it from device tree.

    Signed-off-by: Tony Dinh <mibo...@gmail.com <mailto:mibo...@gmail.com>>
    ---

    Changes in v3:
    - Get eth0 PHY address from device tree

    Changes in v2:
    - Correct copyright

      board/zyxel/nsa310s/nsa310s.c | 47 +++++++++++++++++++++++++++++------
      1 file changed, 39 insertions(+), 8 deletions(-)

    diff --git a/board/zyxel/nsa310s/nsa310s.c
    b/board/zyxel/nsa310s/nsa310s.c
    index cd4a7723b1..b71de4e11f 100644
    --- a/board/zyxel/nsa310s/nsa310s.c
    +++ b/board/zyxel/nsa310s/nsa310s.c
    @@ -1,8 +1,7 @@
      // SPDX-License-Identifier: GPL-2.0+
      /*
    - * Copyright (C) 2015
    - * Gerald Kerma <drea...@doukki.net <mailto:drea...@doukki.net>>
    - * Tony Dinh <mibo...@gmail.com <mailto:mibo...@gmail.com>>
    + * Copyright (C) 2015, 2021 Tony Dinh <mibo...@gmail.com
    <mailto:mibo...@gmail.com>>
    + * Copyright (C) 2015 Gerald Kerma <drea...@doukki.net
    <mailto:drea...@doukki.net>>
       */

      #include <common.h>
    @@ -81,21 +80,51 @@ int board_init(void)
             return 0;
      }

    +static int fdt_get_phy_addr(const char *path)
    +{
    +       const void *fdt = gd->fdt_blob;
    +       const u32 *reg;
    +       const u32 *val;
    +       int node, phandle, addr;
    +
    +       /* Find the node by its full path */
    +       node = fdt_path_offset(fdt, path);
    +       if (node >= 0) {
    +               /* Look up phy-handle */
    +               val = fdt_getprop(fdt, node, "phy-handle", NULL);
    +               if (val) {
    +                       phandle = fdt32_to_cpu(*val);
    +                       if (!phandle)
    +                               return -1;
    +                       /* Follow it to its node */
    +                       node = fdt_node_offset_by_phandle(fdt, phandle);
    +                       if (node) {
    +                               /* Look up reg */
    +                               reg = fdt_getprop(fdt, node, "reg",
    NULL);
    +                               if (reg) {
    +                                       addr = fdt32_to_cpu(*reg);
    +                                       return addr;
    +                               }
    +                       }
    +               }
    +       }
    +       return -1;
    +}
    +
      #ifdef CONFIG_RESET_PHY_R
      void reset_phy(void)
      {
             u16 reg;
             u16 phyaddr;
    -       char *name = "egiga0";
    +       char *name = "ethernet-controller@72000";
    +       char *eth0_path =
    "/ocp@f1000000/ethernet-controller@72000/ethernet0-port@0";

             if (miiphy_set_current_dev(name))
                     return;

    -       /* read PHY dev address */
    -       if (miiphy_read(name, 0xee, 0xee, (u16 *) &phyaddr)) {
    -               printf("could not read PHY dev address\n");
    +       phyaddr = fdt_get_phy_addr(eth0_path);
    +       if (phyaddr < 0)
                     return;
    -       }

             /* set RGMII delay */
             miiphy_write(name, phyaddr, MV88E1318_PGADR_REG,
    MV88E1318_MAC_CTRL_PG);
    @@ -131,5 +160,7 @@ void reset_phy(void)
             /* downshift */
             miiphy_write(name, phyaddr, 0x10, 0x3860);
             miiphy_write(name, phyaddr, 0x0, 0x9140);
    +
    +       printf("MV88E1318 PHY initialized on %s\n", name);
      }
      #endif /* CONFIG_RESET_PHY_R */
    --     2.20.1



Viele Grüße,
Stefan



Viele Grüße,
Stefan

--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: s...@denx.de

Reply via email to