]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/net/phy/mv88e61xx.h
mv88e61xx: refactor PHY and SWITCH level-code
[karo-tx-uboot.git] / drivers / net / phy / mv88e61xx.h
index 57762b686175f1810184ee2dd2c8caf0591d4026..55ded7e03232b11df7f9f0901a71d07212c9de16 100644 (file)
 #include <miiphy.h>
 
 #define MV88E61XX_CPU_PORT             0x5
-#define MV88E61XX_MAX_PORTS_NUM                0x6
 
 #define MV88E61XX_PHY_TIMEOUT          100000
 
-#define MV88E61XX_PRT_STS_REG          0x1
+/* port dev-addr (= port + 0x10) */
+#define MV88E61XX_PRT_OFST             0x10
+/* port registers */
+#define MV88E61XX_PCS_CTRL_REG         0x1
 #define MV88E61XX_PRT_CTRL_REG         0x4
 #define MV88E61XX_PRT_VMAP_REG         0x6
 #define MV88E61XX_PRT_VID_REG          0x7
+#define MV88E61XX_RGMII_TIMECTRL_REG   0x1A
 
-#define MV88E61XX_PRT_OFST             0x10
+/* global registers dev-addr */
+#define MV88E61XX_GLBREG_DEVADR        0x1B
+/* global registers */
+#define MV88E61XX_SGSR                 0x00
+#define MV88E61XX_SGCR                 0x04
+
+/* global 2 registers dev-addr */
+#define MV88E61XX_GLB2REG_DEVADR       0x1C
+/* global 2 registers */
 #define MV88E61XX_PHY_CMD              0x18
 #define MV88E61XX_PHY_DATA             0x19
-#define MV88E61XX_RGMII_TIMECTRL_REG   0x1A
-#define MV88E61XX_GLB2REG_DEVADR       0x1C
+/* global 2 phy commands */
+#define MV88E61XX_PHY_WRITE_CMD                0x9400
+#define MV88E61XX_PHY_READ_CMD         0x9800
 
 #define MV88E61XX_BUSY_OFST            15
 #define MV88E61XX_MODE_OFST            12
-#define MV88E61XX_OP_OFST                      10
+#define MV88E61XX_OP_OFST              10
 #define MV88E61XX_ADDR_OFST            5
 
 #ifdef CONFIG_MV88E61XX_MULTICHIP_ADRMODE
 static int mv88e61xx_busychk_multic(char *name, u32 devaddr);
-static void mv88e61xx_wr_phy(char *name, u32 phy_adr, u32 reg_ofs, u16 data);
-static void mv88e61xx_rd_phy(char *name, u32 phy_adr, u32 reg_ofs, u16 * data);
-#define WR_PHY mv88e61xx_wr_phy
-#define RD_PHY mv88e61xx_rd_phy
+static void mv88e61xx_switch_write(char *name, u32 phy_adr,
+       u32 reg_ofs, u16 data);
+static void mv88e61xx_switch_read(char *name, u32 phy_adr,
+       u32 reg_ofs, u16 *data);
+#define wr_switch_reg mv88e61xx_switch_write
+#define rd_switch_reg mv88e61xx_switch_read
 #else
-#define WR_PHY miiphy_write
-#define RD_PHY miiphy_read
+/* switch appears a s simple PHY and can thus use miiphy */
+#define wr_switch_reg miiphy_write
+#define rd_switch_reg miiphy_read
 #endif /* CONFIG_MV88E61XX_MULTICHIP_ADRMODE */
 
 #endif /* _MV88E61XX_H */