diff mbox

net: stmmac: Handle possible fixed-link with need_mdio_ids

Message ID 20170825144208.24503-1-clabbe.montjoie@gmail.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Corentin Labbe Aug. 25, 2017, 2:42 p.m. UTC
In case of fixed link, there are no mdio node.
This patch add a test for fixed-link for bypassing MDIO node register.

Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
 drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andrew Lunn Aug. 25, 2017, 4:28 p.m. UTC | #1
On Fri, Aug 25, 2017 at 04:42:08PM +0200, Corentin Labbe wrote:
> In case of fixed link, there are no mdio node.
> This patch add a test for fixed-link for bypassing MDIO node register.

The two are not mutually exclusive. E.g.
vf610-zii-dev.dtsi/vf610-zii-dev-rev-b.dts.  It has a fixed-link on
the FEC ethernet controller, and an Ethernet switch on the MDIO bus.

If anybody ever wants to use a switch with the stmmac, this will be
required.

	Andrew
Florian Fainelli Aug. 25, 2017, 4:45 p.m. UTC | #2
On 08/25/2017 09:28 AM, Andrew Lunn wrote:
> On Fri, Aug 25, 2017 at 04:42:08PM +0200, Corentin Labbe wrote:
>> In case of fixed link, there are no mdio node.
>> This patch add a test for fixed-link for bypassing MDIO node register.
> 
> The two are not mutually exclusive. E.g.
> vf610-zii-dev.dtsi/vf610-zii-dev-rev-b.dts.  It has a fixed-link on
> the FEC ethernet controller, and an Ethernet switch on the MDIO bus.
> 
> If anybody ever wants to use a switch with the stmmac, this will be
> required.

This is already done in the Lamobo R1 DTS file so it would be nice not
to break this use case:

&gmac {
        pinctrl-names = "default";
        pinctrl-0 = <&gmac_pins_rgmii_a>;
        phy-mode = "rgmii";
        phy-supply = <&reg_gmac_3v3>;
        status = "okay";

        fixed-link {
                speed = <1000>;
                full-duplex;
        };

        mdio {
                compatible = "snps,dwmac-mdio";
                #address-cells = <1>;
                #size-cells = <0>;

                switch: ethernet-switch@1e {
                        compatible = "brcm,bcm53125";
                        reg = <30>;
                        #address-cells = <1>;
                        #size-cells = <0>;


> 
> 	Andrew
>
Corentin Labbe Aug. 26, 2017, 7:27 a.m. UTC | #3
On Fri, Aug 25, 2017 at 09:45:23AM -0700, Florian Fainelli wrote:
> On 08/25/2017 09:28 AM, Andrew Lunn wrote:
> > On Fri, Aug 25, 2017 at 04:42:08PM +0200, Corentin Labbe wrote:
> >> In case of fixed link, there are no mdio node.
> >> This patch add a test for fixed-link for bypassing MDIO node register.
> > 
> > The two are not mutually exclusive. E.g.
> > vf610-zii-dev.dtsi/vf610-zii-dev-rev-b.dts.  It has a fixed-link on
> > the FEC ethernet controller, and an Ethernet switch on the MDIO bus.
> > 
> > If anybody ever wants to use a switch with the stmmac, this will be
> > required.
> 
> This is already done in the Lamobo R1 DTS file so it would be nice not
> to break this use case:
> 
> &gmac {
>         pinctrl-names = "default";
>         pinctrl-0 = <&gmac_pins_rgmii_a>;
>         phy-mode = "rgmii";
>         phy-supply = <&reg_gmac_3v3>;
>         status = "okay";
> 
>         fixed-link {
>                 speed = <1000>;
>                 full-duplex;
>         };
> 
>         mdio {
>                 compatible = "snps,dwmac-mdio";
>                 #address-cells = <1>;
>                 #size-cells = <0>;
> 
>                 switch: ethernet-switch@1e {
>                         compatible = "brcm,bcm53125";
>                         reg = <30>;
>                         #address-cells = <1>;
>                         #size-cells = <0>;
> 
> 
> > 
> > 	Andrew
> > 
> 

Sorry, I have made a bad commit message.
This commit only change behaviour for nodes that match need_mdio_ids.
The behaviour for snps,dwmac-mdio does not change as it is handled in follow up of the "ifthenelse"
I will resent it with correct commit message.

Regards
diff mbox

Patch

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
index a366b3747eeb..e1be5735365b 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -332,7 +332,7 @@  static int stmmac_dt_phy(struct plat_stmmacenet_data *plat,
 		mdio = false;
 	}
 
-	if (of_match_node(need_mdio_ids, np)) {
+	if (of_match_node(need_mdio_ids, np) && !of_phy_is_fixed_link(np)) {
 		plat->mdio_node = of_get_child_by_name(np, "mdio");
 	} else {
 		/**