[U-Boot] [UBOOT PATCH v2] net: zynq_gem: convert to use livetree

Siva Durga Prasad Paladugu sivadur at xilinx.com
Mon Jul 23 05:48:12 UTC 2018


Hi Joe/Michal,

Can you please take it up if it is fine.

Thanks,
Siva

> -----Original Message-----
> From: Siva Durga Prasad Paladugu [mailto:siva.durga.paladugu at xilinx.com]
> Sent: Monday, July 16, 2018 6:26 PM
> To: u-boot at lists.denx.de
> Cc: Michal Simek <michals at xilinx.com>; joe.hershberger at ni.com;
> grygorii.strashko at ti.com; Siva Durga Prasad Paladugu
> <sivadur at xilinx.com>; Vipul Kumar <vipulk at xilinx.com>
> Subject: [UBOOT PATCH v2] net: zynq_gem: convert to use livetree
> 
> This patch updates the zynq gem driver to support livetree.
> 
> Signed-off-by: Siva Durga Prasad Paladugu
> <siva.durga.paladugu at xilinx.com>
> Signed-off-by: Vipul Kumar <vipul.kumar at xilinx.com>
> ---
> Changes for v2:
> - Note that this patch is based on below two series.
> https://patchwork.ozlabs.org/cover/936370/
> and
> https://patchwork.ozlabs.org/cover/936380/
> ---
>  drivers/net/zynq_gem.c | 30 ++++++++++++++----------------
>  1 file changed, 14 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c index
> 0f56cda..68d1c2f 100644
> --- a/drivers/net/zynq_gem.c
> +++ b/drivers/net/zynq_gem.c
> @@ -178,7 +178,7 @@ struct zynq_gem_priv {
>  	struct zynq_gem_regs *iobase;
>  	phy_interface_t interface;
>  	struct phy_device *phydev;
> -	int phy_of_handle;
> +	ofnode phy_of_node;
>  	struct mii_dev *bus;
>  	struct clk clk;
>  	u32 max_speed;
> @@ -348,9 +348,7 @@ static int zynq_phy_init(struct udevice *dev)
>  	}
> 
>  	priv->phydev->advertising = priv->phydev->supported;
> -
> -	if (priv->phy_of_handle > 0)
> -		priv->phydev->node = offset_to_ofnode(priv-
> >phy_of_handle);
> +	priv->phydev->node = priv->phy_of_node;
> 
>  	return phy_config(priv->phydev);
>  }
> @@ -693,21 +691,23 @@ static int zynq_gem_ofdata_to_platdata(struct
> udevice *dev)  {
>  	struct eth_pdata *pdata = dev_get_platdata(dev);
>  	struct zynq_gem_priv *priv = dev_get_priv(dev);
> -	int node = dev_of_offset(dev);
> +	struct ofnode_phandle_args phandle_args;
>  	const char *phy_mode;
> 
> -	pdata->iobase = (phys_addr_t)devfdt_get_addr(dev);
> +	pdata->iobase = (phys_addr_t)dev_read_addr(dev);
>  	priv->iobase = (struct zynq_gem_regs *)pdata->iobase;
>  	/* Hardcode for now */
>  	priv->phyaddr = -1;
> 
> -	priv->phy_of_handle = fdtdec_lookup_phandle(gd->fdt_blob, node,
> -						    "phy-handle");
> -	if (priv->phy_of_handle > 0)
> -		priv->phyaddr = fdtdec_get_int(gd->fdt_blob,
> -					priv->phy_of_handle, "reg", -1);
> +	if (dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0,
> +				       &phandle_args)) {
> +		debug("phy-handle does not exist %s\n", dev->name);
> +		return -ENOENT;
> +	}
> 
> -	phy_mode = fdt_getprop(gd->fdt_blob, node, "phy-mode", NULL);
> +	priv->phyaddr = ofnode_read_u32_default(phandle_args.node,
> "reg", -1);
> +	priv->phy_of_node = phandle_args.node;
> +	phy_mode = dev_read_prop(dev, "phy-mode", NULL);
>  	if (phy_mode)
>  		pdata->phy_interface =
> phy_get_interface_by_name(phy_mode);
>  	if (pdata->phy_interface == -1) {
> @@ -716,10 +716,8 @@ static int zynq_gem_ofdata_to_platdata(struct
> udevice *dev)
>  	}
>  	priv->interface = pdata->phy_interface;
> 
> -	priv->max_speed = fdtdec_get_uint(gd->fdt_blob, priv-
> >phy_of_handle,
> -					  "max-speed", SPEED_1000);
> -	priv->int_pcs = fdtdec_get_bool(gd->fdt_blob, node,
> -					"is-internal-pcspma");
> +	priv->max_speed = dev_read_u32_default(dev, "max-speed",
> SPEED_1000);
> +	priv->int_pcs = dev_read_bool(dev, "is-internal-pcspma");
> 
>  	printf("ZYNQ GEM: %lx, phyaddr %x, interface %s\n", (ulong)priv-
> >iobase,
>  	       priv->phyaddr, phy_string_for_interface(priv->interface));
> --
> 2.7.4



More information about the U-Boot mailing list