With all the infrastructure in place, implement access to the external
MDIO bus on the 6390 family.

Signed-off-by: Andrew Lunn <[email protected]>
---
 drivers/net/dsa/mv88e6xxx/global2.c   | 8 ++++++++
 drivers/net/dsa/mv88e6xxx/mv88e6xxx.h | 1 +
 2 files changed, 9 insertions(+)

diff --git a/drivers/net/dsa/mv88e6xxx/global2.c 
b/drivers/net/dsa/mv88e6xxx/global2.c
index 1f9a12a1fad9..353e26bea3c3 100644
--- a/drivers/net/dsa/mv88e6xxx/global2.c
+++ b/drivers/net/dsa/mv88e6xxx/global2.c
@@ -506,8 +506,12 @@ int mv88e6xxx_g2_smi_phy_read(struct mv88e6xxx_chip *chip,
                              int addr, int reg, u16 *val)
 {
        u16 cmd = GLOBAL2_SMI_PHY_CMD_OP_22_READ_DATA | (addr << 5) | reg;
+       struct mv88e6xxx_mdio_bus *mdio_bus = bus->priv;
        int err;
 
+       if (mdio_bus->external)
+               cmd |= GLOBAL2_SMI_PHY_CMD_EXTERNAL;
+
        err = mv88e6xxx_g2_smi_phy_wait(chip);
        if (err)
                return err;
@@ -524,8 +528,12 @@ int mv88e6xxx_g2_smi_phy_write(struct mv88e6xxx_chip *chip,
                               int addr, int reg, u16 val)
 {
        u16 cmd = GLOBAL2_SMI_PHY_CMD_OP_22_WRITE_DATA | (addr << 5) | reg;
+       struct mv88e6xxx_mdio_bus *mdio_bus = bus->priv;
        int err;
 
+       if (mdio_bus->external)
+               cmd |= GLOBAL2_SMI_PHY_CMD_EXTERNAL;
+
        err = mv88e6xxx_g2_smi_phy_wait(chip);
        if (err)
                return err;
diff --git a/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h 
b/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h
index 7d24add45e74..572d585dc1e2 100644
--- a/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h
+++ b/drivers/net/dsa/mv88e6xxx/mv88e6xxx.h
@@ -387,6 +387,7 @@
 #define GLOBAL2_PTP_AVB_DATA   0x17
 #define GLOBAL2_SMI_PHY_CMD                    0x18
 #define GLOBAL2_SMI_PHY_CMD_BUSY               BIT(15)
+#define GLOBAL2_SMI_PHY_CMD_EXTERNAL           BIT(13)
 #define GLOBAL2_SMI_PHY_CMD_MODE_22            BIT(12)
 #define GLOBAL2_SMI_PHY_CMD_OP_22_WRITE_DATA   ((0x1 << 10) | \
                                                 GLOBAL2_SMI_PHY_CMD_MODE_22 | \
-- 
2.11.0

Reply via email to