lots of ifxmips cleanups
[openwrt/svn-archive/archive.git] / target / linux / ifxmips / files / include / asm-mips / ifxmips / ifxmips_mii0.h
index 0402d725f5f14df73b3d2ff7c34c89cb24f28ef2..2f7e967ac59ad543765f721ce2326f7799f607a8 100644 (file)
-#ifndef IFXMIPS_SW_H
-#define IFXMIPS_SW_H
-
-
-
-/******************************************************************************
-**
-** FILE NAME    : ifxmips_sw.h
-** PROJECT      : IFXMips
-** MODULES             : ETH Interface (MII0)
-**
-** DATE         : 11 AUG 2005
-** AUTHOR       : Wu Qi Ming
-** DESCRIPTION  : ETH Interface (MII0) Driver Header File
-** COPYRIGHT    :      Copyright (c) 2006
-**                     Infineon Technologies AG
-**                     Am Campeon 1-12, 85579 Neubiberg, Germany
-**
-**    This program is free software; you can redistribute it and/or modify
-**    it under the terms of the GNU General Public License as published by
-**    the Free Software Foundation; either version 2 of the License, or
-**    (at your option) any later version.
-**
-** HISTORY
-** $Date        $Author         $Comment
-** 11 AUG 2005  Wu Qi Ming      Initiate Version
-** 23 OCT 2006  Xu Liang        Add GPL header.
-*******************************************************************************/
-
-
-#define SET_ETH_SPEED_AUTO   SIOCDEVPRIVATE
-#define SET_ETH_SPEED_10     SIOCDEVPRIVATE+1
-#define SET_ETH_SPEED_100    SIOCDEVPRIVATE+2
-#define SET_ETH_DUPLEX_AUTO  SIOCDEVPRIVATE+3
-#define SET_ETH_DUPLEX_HALF  SIOCDEVPRIVATE+4
-#define SET_ETH_DUPLEX_FULL  SIOCDEVPRIVATE+5
-#define SET_ETH_REG          SIOCDEVPRIVATE+6
-#define VLAN_TOOLS           SIOCDEVPRIVATE+7
-#define MAC_TABLE_TOOLS      SIOCDEVPRIVATE+8
-#define SET_VLAN_COS         SIOCDEVPRIVATE+9
-#define SET_DSCP_COS         SIOCDEVPRIVATE+10
-#define ENABLE_VLAN_CLASSIFICATION    SIOCDEVPRIVATE+11
-#define DISABLE_VLAN_CLASSIFICATION   SIOCDEVPRIVATE+12
-#define VLAN_CLASS_FIRST              SIOCDEVPRIVATE+13
-#define VLAN_CLASS_SECOND             SIOCDEVPRIVATE+14
-#define ENABLE_DSCP_CLASSIFICATION    SIOCDEVPRIVATE+15
-#define DISABLE_DSCP_CLASSIFICATION   SIOCDEVPRIVATE+16
-#define PASS_UNICAST_PACKETS          SIOCDEVPRIVATE+17
-#define FILTER_UNICAST_PACKETS        SIOCDEVPRIVATE+18
-#define KEEP_BROADCAST_PACKETS        SIOCDEVPRIVATE+19
-#define DROP_BROADCAST_PACKETS        SIOCDEVPRIVATE+20
-#define KEEP_MULTICAST_PACKETS        SIOCDEVPRIVATE+21
-#define DROP_MULTICAST_PACKETS        SIOCDEVPRIVATE+22
-
-
-/*===mac table commands==*/
-#define RESET_MAC_TABLE     0
-#define READ_MAC_ENTRY    1
-#define WRITE_MAC_ENTRY   2
-#define ADD_MAC_ENTRY     3
-
-/*====vlan commands===*/
-
-#define CHANGE_VLAN_CTRL     0
-#define READ_VLAN_ENTRY      1
-#define UPDATE_VLAN_ENTRY    2
-#define CLEAR_VLAN_ENTRY     3
-#define RESET_VLAN_TABLE     4
-#define ADD_VLAN_ENTRY       5
+#ifndef IFXMIPS_MII0_H
+#define IFXMIPS_MII0_H
 
 /*
-** MDIO constants.
-*/
-
-#define MDIO_BASE_STATUS_REG                0x1
-#define MDIO_BASE_CONTROL_REG               0x0
-#define MDIO_PHY_ID_HIGH_REG                0x2
-#define MDIO_PHY_ID_LOW_REG                 0x3
-#define MDIO_BC_NEGOTIATE                0x0200
-#define MDIO_BC_FULL_DUPLEX_MASK         0x0100
-#define MDIO_BC_AUTO_NEG_MASK            0x1000
-#define MDIO_BC_SPEED_SELECT_MASK        0x2000
-#define MDIO_STATUS_100_FD               0x4000
-#define MDIO_STATUS_100_HD               0x2000
-#define MDIO_STATUS_10_FD                0x1000
-#define MDIO_STATUS_10_HD                0x0800
-#define MDIO_STATUS_SPEED_DUPLEX_MASK   0x7800
-#define MDIO_ADVERTISMENT_REG               0x4
-#define MDIO_ADVERT_100_FD                0x100
-#define MDIO_ADVERT_100_HD                0x080
-#define MDIO_ADVERT_10_FD                 0x040
-#define MDIO_ADVERT_10_HD                 0x020
-#define MDIO_LINK_UP_MASK                   0x4
-#define MDIO_START                          0x1
-#define MDIO_READ                           0x2
-#define MDIO_WRITE                          0x1
-#define MDIO_PREAMBLE              0xfffffffful
-
-#define PHY_RESET                        0x8000
-#define AUTO_NEGOTIATION_ENABLE          0X1000
-#define AUTO_NEGOTIATION_COMPLETE          0x20
-#define RESTART_AUTO_NEGOTIATION          0X200
-
-
-/*ETOP_MDIO_CFG MASKS*/
-#define SMRST_MASK 0X2000
-#define PHYA1_MASK 0X1F00
-#define PHYA0_MASK 0XF8
-#define UMM1_MASK  0X4
-#define UMM0_MASK  0X2
-
-/*ETOP_MDIO_ACCESS MASKS*/
-#define MDIO_RA_MASK    0X80000000
-#define MDIO_RW_MASK    0X40000000
-
-
-/*ENET_MAC_CFG MASKS*/
-#define BP_MASK     1<<12
-#define CGEN_MASK   1<<11
-#define IFG_MASK    0x3F<<5
-#define IPAUS_MASK  1<<4
-#define EPAUS_MASK  1<<3
-#define DUPLEX_MASK 1<<2
-#define SPEED_MASK  0x2
-#define LINK_MASK   1
-
-/*ENETS_CoS_CFG MASKS*/
-#define VLAN_MASK    2
-#define DSCP_MASK    1
-
-/*ENET_CFG MASKS*/
-#define VL2_MASK     1<<29
-#define FTUC_MASK    1<<25
-#define DPBC_MASK    1<<24
-#define DPMC_MASK    1<<23
-
-#define PHY0_ADDR    0
-#define PHY1_ADDR    1
-#define P1M          0
-
-#define IFXMIPS_SW_REG32(reg_num) *((volatile u32*)(reg_num))
-
-#define OK 0;
-
-#ifdef CONFIG_CPU_LITTLE_ENDIAN
-typedef struct mac_table_entry{
-   u64 mac_address:48;
-   u64 p0:1;
-   u64 p1:1;
-   u64 p2:1;
-   u64 cr:1;
-   u64 ma_st:3;
-   u64 res:9;
-}_mac_table_entry;
-
-typedef struct IFX_Switch_VLanTableEntry{
-    u32 vlan_id:12;
-    u32 mp0:1;
-    u32 mp1:1;
-    u32 mp2:1;
-    u32 v:1;
-    u32 res:16;
-}_IFX_Switch_VLanTableEntry;
-
-typedef struct mac_table_req{
-    int cmd;
-    int index;
-    u32 data;
-    u64 entry_value;
-}_mac_table_req;
-
-#else //not CONFIG_CPU_LITTLE_ENDIAN
-typedef struct mac_table_entry{
-   u64 mac_address:48;
-   u64 p0:1;
-   u64 p1:1;
-   u64 p2:1;
-   u64 cr:1;
-   u64 ma_st:3;
-   u64 res:9;
-}_mac_table_entry;
-
-typedef struct IFX_Switch_VLanTableEntry{
-    u32 vlan_id:12;
-    u32 mp0:1;
-    u32 mp1:1;
-    u32 mp2:1;
-    u32 v:1;
-    u32 res:16;
-}_IFX_Switch_VLanTableEntry;
-
-
-typedef struct mac_table_req{
-    int cmd;
-    int index;
-    u32 data;
-    u64 entry_value;
-}_mac_table_req;
-
-#endif //CONFIG_CPU_LITTLE_ENDIAN
-
-typedef struct vlan_cos_req{
-    int pri;
-    int cos_value;
-}_vlan_cos_req;
-
-typedef struct dscp_cos_req{
-    int dscp;
-    int cos_value;
-}_dscp_cos_req;
-
-
-typedef struct vlan_req{
-    int cmd;
-    int index;
-    u32 data;
-    u32 entry_value;
-}_vlan_req;
-
-typedef struct data_req{
-    int index;
-    u32 value;
-}_data_req;
-
-enum duplex
-{
-   half,
-   full,
-   autoneg
-};
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ *
+ *   Copyright (C) 2007 John Crispin <blogic@openwrt.org> 
+ */
+
+#include <linux/netdevice.h>
 
 struct ifxmips_mii_priv {
     struct net_device_stats stats;
-    int rx_packetlen;
-    u8 *rx_packetdata;
-    int rx_status;
-    int tx_packetlen;
-#ifdef CONFIG_NET_HW_FLOWCONTROL
-    int fc_bit;
-#endif //CONFIG_NET_HW_FLOWCONTROL
-    u8 *tx_packetdata;
-    int tx_status;
     struct dma_device_info *dma_device;
     struct sk_buff *skb;
-    spinlock_t lock;
-    int mdio_phy_addr;
-    int current_speed;
-    int current_speed_selection;
-    int rx_queue_len;
-    int full_duplex;
-    enum duplex current_duplex;
 };
 
-#endif //IFXMIPS_SW_H
+struct ifxmips_mac {
+       unsigned char mac[6];
+};
+
+#endif