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
  18#define MV643XX_TX_CSUM_DEFAULT_LIMIT   0
  19
  20struct mv643xx_eth_shared_platform_data {
  21        struct mbus_dram_target_info    *dram;
  22        struct platform_device  *shared_smi;
  23        /*
  24         * Max packet size for Tx IP/Layer 4 checksum, when set to 0, default
  25         * limit of 9KiB will be used.
  26         */
  27        int                     tx_csum_limit;
  28};
  29
  30#define MV643XX_ETH_PHY_ADDR_DEFAULT    0
  31#define MV643XX_ETH_PHY_ADDR(x)         (0x80 | (x))
  32#define MV643XX_ETH_PHY_NONE            0xff
  33
  34struct mv643xx_eth_platform_data {
  35        /*
  36         * Pointer back to our parent instance, and our port number.
  37         */
  38        struct platform_device  *shared;
  39        int                     port_number;
  40
  41        /*
  42         * Whether a PHY is present, and if yes, at which address.
  43         */
  44        int                     phy_addr;
  45
  46        /*
  47         * Use this MAC address if it is valid, overriding the
  48         * address that is already in the hardware.
  49         */
  50        u8                      mac_addr[6];
  51
  52        /*
  53         * If speed is 0, autonegotiation is enabled.
  54         *   Valid values for speed: 0, SPEED_10, SPEED_100, SPEED_1000.
  55         *   Valid values for duplex: DUPLEX_HALF, DUPLEX_FULL.
  56         */
  57        int                     speed;
  58        int                     duplex;
  59
  60        /*
  61         * How many RX/TX queues to use.
  62         */
  63        int                     rx_queue_count;
  64        int                     tx_queue_count;
  65
  66        /*
  67         * Override default RX/TX queue sizes if nonzero.
  68         */
  69        int                     rx_queue_size;
  70        int                     tx_queue_size;
  71
  72        /*
  73         * Use on-chip SRAM for RX/TX descriptors if size is nonzero
  74         * and sufficient to contain all descriptors for the requested
  75         * ring sizes.
  76         */
  77        unsigned long           rx_sram_addr;
  78        int                     rx_sram_size;
  79        unsigned long           tx_sram_addr;
  80        int                     tx_sram_size;
  81};
  82
  83
  84#endif
  85
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.