Several small fixes for ar8216 driver (patch by Jonas Gorski)
[openwrt/staging/florian.git] / target / linux / generic-2.6 / files / drivers / net / phy / ar8216.h
index e0f0452cb8c3ac84ac73e5b24d78d161d4280232..c1b8fdbd8cfe5bcea4859cf3ae6e417eaf108cf5 100644 (file)
 #define AR8216_NUM_VLANS       16
 
 #define AR8216_REG_CTRL                        0x0000
+#define   AR8216_CTRL_REVISION         BITS(0, 8)
+#define   AR8216_CTRL_REVISION_S       0
+#define   AR8216_CTRL_VERSION          BITS(8, 8)
+#define   AR8216_CTRL_VERSION_S                8
 #define   AR8216_CTRL_RESET            BIT(31)
 
+#define AR8216_REG_GLOBAL_CTRL         0x0030
+#define   AR8216_GCTRL_MTU             BITS(0, 10)
+
 #define AR8216_REG_VTU                 0x0040
 #define   AR8216_VTU_OP                        BITS(0, 3)
 #define   AR8216_VTU_OP_NOOP           0x0
 #define   AR8216_ATU_ACTIVE            BIT(3)
 #define   AR8216_ATU_PORT_NUM          BITS(8, 4)
 #define   AR8216_ATU_FULL_VIO          BIT(12)
-#define   AR8216_ATU_ADDR4             BIT(16, 8)
-#define   AR8216_ATU_ADDR5             BIT(24, 8)
+#define   AR8216_ATU_ADDR4             BITS(16, 8)
+#define   AR8216_ATU_ADDR5             BITS(24, 8)
 
 #define AR8216_REG_ATU_DATA            0x0054
-#define   AR8216_ATU_ADDR3             BIT(0, 8)
-#define   AR8216_ATU_ADDR2             BIT(8, 8)
-#define   AR8216_ATU_ADDR1             BIT(16, 8)
-#define   AR8216_ATU_ADDR0             BIT(24, 8)
+#define   AR8216_ATU_ADDR3             BITS(0, 8)
+#define   AR8216_ATU_ADDR2             BITS(8, 8)
+#define   AR8216_ATU_ADDR1             BITS(16, 8)
+#define   AR8216_ATU_ADDR0             BITS(24, 8)
 
-#define AR8216_PORT_OFFSET(_i)         (0x0100 * (i + 1))
+#define AR8216_PORT_OFFSET(_i)         (0x0100 * (_i + 1))
 #define AR8216_REG_PORT_STATUS(_i)     (AR8216_PORT_OFFSET(_i) + 0x0000)
-#define   AR8216_PORT_STATUS_SPEED     BIT(0)
-#define   AR8216_PORT_STATUS_SPEED_ERR BIT(1)
+#define   AR8216_PORT_STATUS_SPEED     BITS(0,2)
+#define   AR8216_PORT_STATUS_SPEED_S   0
 #define   AR8216_PORT_STATUS_TXMAC     BIT(2)
 #define   AR8216_PORT_STATUS_RXMAC     BIT(3)
 #define   AR8216_PORT_STATUS_TXFLOW    BIT(4)
 #define AR8216_REG_PORT_RATE(_i)       (AR8216_PORT_OFFSET(_i) + 0x000c)
 #define AR8216_REG_PORT_PRIO(_i)       (AR8216_PORT_OFFSET(_i) + 0x0010)
 
+/* port speed */
+enum {
+        AR8216_PORT_SPEED_10M = 0,
+        AR8216_PORT_SPEED_100M = 1,
+        AR8216_PORT_SPEED_1000M = 2,
+        AR8216_PORT_SPEED_ERR = 3,
+};
+
 /* ingress 802.1q mode */
 enum {
        AR8216_IN_PORT_ONLY = 0,