linux/include/linux/mv643xx_eth.h
<<
>>
Prefs
   1/*
   2 * MV-643XX ethernet platform device data definition file.
   3 */
   4
   5#ifndef __LINUX_MV643XX_ETH_H
   6#define __LINUX_MV643XX_ETH_H
   7
   8#include <linux/mbus.h>
   9
  10#define MV643XX_ETH_SHARED_NAME         "mv643xx_eth"
  11#define MV643XX_ETH_NAME                "mv643xx_eth_port"
  12#define MV643XX_ETH_SHARED_REGS         0x2000
  13#define MV643XX_ETH_SHARED_REGS_SIZE    0x2000
  14#define MV643XX_ETH_BAR_4               0x2220
  15#define MV643XX_ETH_SIZE_REG_4          0x2224
  16#define MV643XX_ETH_BASE_ADDR_ENABLE_REG        0x2290
  17
  18struct mv643xx_eth_shared_platform_data {
  19        struct mbus_dram_target_info    *dram;
  20        struct platform_device  *shared_smi;
  21        unsigned int            t_clk;
  22        /*
  23         * Max packet size for Tx IP/Layer 4 checksum, when set to 0, default
  24         * limit of 9KiB will be used.
  25         */
  26        int                     tx_csum_limit;
  27};
  28
  29#define MV643XX_ETH_PHY_ADDR_DEFAULT    0
  30#define MV643XX_ETH_PHY_ADDR(x)         (0x80 | (x))
  31#define MV643XX_ETH_PHY_NONE            0xff
  32
  33struct mv643xx_eth_platform_data {
  34        /*
  35         * Pointer back to our parent instance, and our port number.
  36         */
  37        struct platform_device  *shared;
  38        int                     port_number;
  39
  40        /*
  41         * Whether a PHY is present, and if yes, at which address.
  42         */
  43        int                     phy_addr;
  44
  45        /*
  46         * Use this MAC address if it is valid, overriding the
  47         * address that is already in the hardware.
  48         */
  49        u8                      mac_addr[6];
  50
  51        /*
  52         * If speed is 0, autonegotiation is enabled.
  53         *   Valid values for speed: 0, SPEED_10, SPEED_100, SPEED_1000.
  54         *   Valid values for duplex: DUPLEX_HALF, DUPLEX_FULL.
  55         */
  56        int                     speed;
  57        int                     duplex;
  58
  59        /*
  60         * How many RX/TX queues to use.
  61         */
  62        int                     rx_queue_count;
  63        int                     tx_queue_count;
  64
  65        /*
  66         * Override default RX/TX queue sizes if nonzero.
  67         */
  68        int                     rx_queue_size;
  69        int                     tx_queue_size;
  70
  71        /*
  72         * Use on-chip SRAM for RX/TX descriptors if size is nonzero
  73         * and sufficient to contain all descriptors for the requested
  74         * ring sizes.
  75         */
  76        unsigned long           rx_sram_addr;
  77        int                     rx_sram_size;
  78        unsigned long           tx_sram_addr;
  79        int                     tx_sram_size;
  80};
  81
  82
  83#endif
  84