Message ID | 1531903608-29695-9-git-send-email-j.hagemann@phytec.de |
---|---|
State | Superseded |
Delegated to: | Philipp Tomsich |
Headers | show |
Series | Add ethernet support for phyCORE-RK3288 | expand |
On Wed, Jul 18, 2018 at 3:46 AM, Janine Hagemann <j.hagemann@phytec.de> wrote: > Add the ability to read the phy-handle node of the > gmac. Upon reading this handle the phy-id > can be stored based on the reg node in the DT. > > The phy-handle also needs to be stored and passed > to the phy to access any phy data that is available. > > Signed-off-by: Janine Hagemann <j.hagemann@phytec.de> > --- > v2: No changes You dropped my Acks from this series. Please correct and resend. -Joe > --- > drivers/net/designware.c | 11 ++++++++++- > drivers/net/designware.h | 1 + > 2 files changed, 11 insertions(+), 1 deletion(-) >
On 07/18/2018 03:46 AM, Janine Hagemann wrote: > Add the ability to read the phy-handle node of the > gmac. Upon reading this handle the phy-id > can be stored based on the reg node in the DT. > > The phy-handle also needs to be stored and passed > to the phy to access any phy data that is available. > > Signed-off-by: Janine Hagemann <j.hagemann@phytec.de> > --- > v2: No changes > --- > drivers/net/designware.c | 11 ++++++++++- > drivers/net/designware.h | 1 + > 2 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/designware.c b/drivers/net/designware.c > index cf12521..8cc7fb9 100644 > --- a/drivers/net/designware.c > +++ b/drivers/net/designware.c > @@ -467,7 +467,7 @@ static int dw_phy_init(struct dw_eth_dev *priv, void *dev) > { > struct phy_device *phydev; > int mask = 0xffffffff, ret; > - > + struct dw_eth_pdata *dw_pdata = dev_get_platdata(dev); > #ifdef CONFIG_PHY_ADDR > mask = 1 << CONFIG_PHY_ADDR; > #endif > @@ -486,6 +486,11 @@ static int dw_phy_init(struct dw_eth_dev *priv, void *dev) > } > phydev->advertising = phydev->supported; > > +#ifdef CONFIG_DM_ETH > + if (dw_pdata->phy_of_handle) > + dev_set_of_offset(phydev->dev, dw_pdata->phy_of_handle); > +#endif hence https://patchwork.ozlabs.org/cover/936380/ is merged you can't do this any more. Instead you need to setup phydev->node. [...]
diff --git a/drivers/net/designware.c b/drivers/net/designware.c index cf12521..8cc7fb9 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -467,7 +467,7 @@ static int dw_phy_init(struct dw_eth_dev *priv, void *dev) { struct phy_device *phydev; int mask = 0xffffffff, ret; - + struct dw_eth_pdata *dw_pdata = dev_get_platdata(dev); #ifdef CONFIG_PHY_ADDR mask = 1 << CONFIG_PHY_ADDR; #endif @@ -486,6 +486,11 @@ static int dw_phy_init(struct dw_eth_dev *priv, void *dev) } phydev->advertising = phydev->supported; +#ifdef CONFIG_DM_ETH + if (dw_pdata->phy_of_handle) + dev_set_of_offset(phydev->dev, dw_pdata->phy_of_handle); +#endif + priv->phydev = phydev; phy_config(phydev); @@ -786,6 +791,7 @@ int designware_eth_ofdata_to_platdata(struct udevice *dev) int reset_flags = GPIOD_IS_OUT; #endif int ret = 0; + int node = dev_of_offset(dev); pdata->iobase = dev_read_addr(dev); pdata->phy_interface = -1; @@ -797,6 +803,9 @@ int designware_eth_ofdata_to_platdata(struct udevice *dev) return -EINVAL; } + dw_pdata->phy_of_handle = fdtdec_lookup_phandle(gd->fdt_blob, node, + "phy-handle"); + pdata->max_speed = dev_read_u32_default(dev, "max-speed", 0); #ifdef CONFIG_DM_GPIO diff --git a/drivers/net/designware.h b/drivers/net/designware.h index dea12b7..a6b0443 100644 --- a/drivers/net/designware.h +++ b/drivers/net/designware.h @@ -255,6 +255,7 @@ extern const struct eth_ops designware_eth_ops; struct dw_eth_pdata { struct eth_pdata eth_pdata; u32 reset_delays[3]; + int phy_of_handle; }; int designware_eth_init(struct dw_eth_dev *priv, u8 *enetaddr);
Add the ability to read the phy-handle node of the gmac. Upon reading this handle the phy-id can be stored based on the reg node in the DT. The phy-handle also needs to be stored and passed to the phy to access any phy data that is available. Signed-off-by: Janine Hagemann <j.hagemann@phytec.de> --- v2: No changes --- drivers/net/designware.c | 11 ++++++++++- drivers/net/designware.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-)