test: dm_mdio: add a 2nd register to the emulated PHY
authorAlex Marginean <alexandru.marginean@nxp.com>
Fri, 12 Jul 2019 07:13:52 +0000 (10:13 +0300)
committerJoe Hershberger <joe.hershberger@ni.com>
Thu, 18 Jul 2019 21:37:13 +0000 (16:37 -0500)
This 2nd register is used by the follow-up MDIO MUX test.

Signed-off-by: Alex Marginean <alexm.osslist@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
drivers/net/mdio_sandbox.c
test/dm/mdio.c

index 07515e078c2ab10ce4b5d13e38fb9c6052bf3bc5..df053f5381422aeb692d5ef6c64590d345be365e 100644 (file)
@@ -9,11 +9,11 @@
 #include <miiphy.h>
 
 #define SANDBOX_PHY_ADDR       5
-#define SANDBOX_PHY_REG                0
+#define SANDBOX_PHY_REG_CNT    2
 
 struct mdio_sandbox_priv {
        int enabled;
-       u16 reg;
+       u16 reg[SANDBOX_PHY_REG_CNT];
 };
 
 static int mdio_sandbox_read(struct udevice *dev, int addr, int devad, int reg)
@@ -27,10 +27,10 @@ static int mdio_sandbox_read(struct udevice *dev, int addr, int devad, int reg)
                return -ENODEV;
        if (devad != MDIO_DEVAD_NONE)
                return -ENODEV;
-       if (reg != SANDBOX_PHY_REG)
+       if (reg < 0 || reg > SANDBOX_PHY_REG_CNT)
                return -ENODEV;
 
-       return priv->reg;
+       return priv->reg[reg];
 }
 
 static int mdio_sandbox_write(struct udevice *dev, int addr, int devad, int reg,
@@ -45,10 +45,10 @@ static int mdio_sandbox_write(struct udevice *dev, int addr, int devad, int reg,
                return -ENODEV;
        if (devad != MDIO_DEVAD_NONE)
                return -ENODEV;
-       if (reg != SANDBOX_PHY_REG)
+       if (reg < 0 || reg > SANDBOX_PHY_REG_CNT)
                return -ENODEV;
 
-       priv->reg = val;
+       priv->reg[reg] = val;
 
        return 0;
 }
@@ -56,8 +56,10 @@ static int mdio_sandbox_write(struct udevice *dev, int addr, int devad, int reg,
 static int mdio_sandbox_reset(struct udevice *dev)
 {
        struct mdio_sandbox_priv *priv = dev_get_priv(dev);
+       int i;
 
-       priv->reg = 0;
+       for (i = 0; i < SANDBOX_PHY_REG_CNT; i++)
+               priv->reg[i] = 0;
 
        return 0;
 }
index 5b66255f7d45b4f82cb2c74bb2ebf88fdb10e851..dc229aed6d00d16ea198263a8acbac9c6765fd04 100644 (file)
@@ -13,6 +13,9 @@
 
 /* macros copied over from mdio_sandbox.c */
 #define SANDBOX_PHY_ADDR       5
+#define SANDBOX_PHY_REG_CNT    2
+
+/* test using 1st register, 0 */
 #define SANDBOX_PHY_REG                0
 
 #define TEST_REG_VALUE         0xabcd