On Fri, Sep 08, 2017 at 04:00:20PM +0200, Andrew Lunn wrote:
> > > > +static int mdio_mux_syscon_switch_fn(int current_child, int 
> > > > desired_child,
> > > > +                                    void *data)
> > > > +{
> > > > +       struct stmmac_priv *priv = data;
> > > > +       struct sunxi_priv_data *gmac = priv->plat->bsp_priv;
> > > > +       u32 reg, val;
> > > > +       int ret = 0;
> > > > +       bool need_reset = false;
> > > > +
> > > > +       if (current_child ^ desired_child) {
> > > > +               regmap_read(gmac->regmap, SYSCON_EMAC_REG, &reg);
> > > > +               switch (desired_child) {
> > > > +               case DWMAC_sUN8I_MDIO_MUX_INTERNAL_ID:
> > > > +                       dev_info(priv->device, "Switch mux to internal 
> > > > PHY");
> > > > +                       val = (reg & ~H3_EPHY_MUX_MASK) | 
> > > > H3_EPHY_SELECT;
> > > > +                       if (gmac->use_internal_phy)
> > > > +                               need_reset = true;
> > > > +                       break;
> > > 
> > > This i don't get. Why do you need use_internal_phy? Isn't that
> > > implicit from DWMAC_sUN8I_MDIO_MUX_INTERNAL_ID? Is it even possible to
> > > use an external PHY on the internal MDIO bus?
> > > 
> > 
> > On my H3 box with external PHY, the MDIO mux library first select (for scan 
> > ?) the internal MDIO.
> > Without use_internal_phy usage, this board will launch a reset to use the 
> > internal MDIO... and this reset timeout/fail.
> 
> Do you know why the reset times out/fails?
> 

Because there are nothing connected to it.
I got also reset timeout on integrated MDIO when the integrated PHY is not 
powered.

Reply via email to