Message ID | 20230612092355.87937-16-brgl@bgdev.pl (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | arm64: qcom: sa8775p-ride: enable the first ethernet port | expand |
On Mon, Jun 12, 2023 at 11:23:44AM +0200, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > On sa8775p-ride we need to enable the power supply for the external PHY. Is this for the external phy? It doesn't seem like it from the board schematic I have... the regulator never makes it out of the black box that is the SIP/SOM if I'm reading right. My (poor) understanding was this was for the serdes phy that's doing the conversion to SGMII before hitting the board... good chance I'm wrong though. > > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > --- > drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > index 2f6b9b419601..21f329d2f7eb 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > @@ -8,6 +8,7 @@ > #include <linux/phy.h> > #include <linux/phy/phy.h> > #include <linux/property.h> > +#include <linux/regulator/consumer.h> > > #include "stmmac.h" > #include "stmmac_platform.h" > @@ -692,6 +693,10 @@ static int qcom_ethqos_probe(struct platform_device *pdev) > if (ret) > goto out_config_dt; > > + ret = devm_regulator_get_enable_optional(dev, "phy"); > + if (ret < 0 && ret != -ENODEV) > + goto out_config_dt; > + > ethqos->serdes_phy = devm_phy_optional_get(dev, "serdes"); > if (IS_ERR(ethqos->serdes_phy)) { > ret = PTR_ERR(ethqos->serdes_phy); > -- > 2.39.2 >
On Mon, Jun 12, 2023 at 11:06 PM Andrew Halaney <ahalaney@redhat.com> wrote: > > On Mon, Jun 12, 2023 at 11:23:44AM +0200, Bartosz Golaszewski wrote: > > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > > > On sa8775p-ride we need to enable the power supply for the external PHY. > > Is this for the external phy? It doesn't seem like it from the board > schematic I have... the regulator never makes it out of the black box that > is the SIP/SOM if I'm reading right. > > My (poor) understanding was this was for the serdes phy that's doing the > conversion to SGMII before hitting the board... good chance I'm wrong > though. > No, you're right. In which case I think the regulator calls should be moved into the serdes driver instead as phy-supply is defined as the supply of the external PHY in stmmac bindings. Bart > > > > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > --- > > drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > > index 2f6b9b419601..21f329d2f7eb 100644 > > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c > > @@ -8,6 +8,7 @@ > > #include <linux/phy.h> > > #include <linux/phy/phy.h> > > #include <linux/property.h> > > +#include <linux/regulator/consumer.h> > > > > #include "stmmac.h" > > #include "stmmac_platform.h" > > @@ -692,6 +693,10 @@ static int qcom_ethqos_probe(struct platform_device *pdev) > > if (ret) > > goto out_config_dt; > > > > + ret = devm_regulator_get_enable_optional(dev, "phy"); > > + if (ret < 0 && ret != -ENODEV) > > + goto out_config_dt; > > + > > ethqos->serdes_phy = devm_phy_optional_get(dev, "serdes"); > > if (IS_ERR(ethqos->serdes_phy)) { > > ret = PTR_ERR(ethqos->serdes_phy); > > -- > > 2.39.2 > > >
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c index 2f6b9b419601..21f329d2f7eb 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c @@ -8,6 +8,7 @@ #include <linux/phy.h> #include <linux/phy/phy.h> #include <linux/property.h> +#include <linux/regulator/consumer.h> #include "stmmac.h" #include "stmmac_platform.h" @@ -692,6 +693,10 @@ static int qcom_ethqos_probe(struct platform_device *pdev) if (ret) goto out_config_dt; + ret = devm_regulator_get_enable_optional(dev, "phy"); + if (ret < 0 && ret != -ENODEV) + goto out_config_dt; + ethqos->serdes_phy = devm_phy_optional_get(dev, "serdes"); if (IS_ERR(ethqos->serdes_phy)) { ret = PTR_ERR(ethqos->serdes_phy);