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
  24#define MV643XX_ETH_PHY_ADDR_DEFAULT    0
  25#define MV643XX_ETH_PHY_ADDR(x)         (0x80 | (x))
  26#define MV643XX_ETH_PHY_NONE            0xff
  27
  28struct mv643xx_eth_platform_data {
  29        /*
  30         * Pointer back to our parent instance, and our port number.
  31         */
  32        struct platform_device  *shared;
  33        int                     port_number;
  34
  35        /*
  36         * Whether a PHY is present, and if yes, at which address.
  37         */
  38        int                     phy_addr;
  39
  40        /*
  41         * Use this MAC address if it is valid, overriding the
  42         * address that is already in the hardware.
  43         */
  44        u8                      mac_addr[6];
  45
  46        /*
  47         * If speed is 0, autonegotiation is enabled.
  48         *   Valid values for speed: 0, SPEED_10, SPEED_100, SPEED_1000.
  49         *   Valid values for duplex: DUPLEX_HALF, DUPLEX_FULL.
  50         */
  51        int                     speed;
  52        int                     duplex;
  53
  54        /*
  55         * How many RX/TX queues to use.
  56         */
  57        int                     rx_queue_count;
  58        int                     tx_queue_count;
  59
  60        /*
  61         * Override default RX/TX queue sizes if nonzero.
  62         */
  63        int                     rx_queue_size;
  64        int                     tx_queue_size;
  65
  66        /*
  67         * Use on-chip SRAM for RX/TX descriptors if size is nonzero
  68         * and sufficient to contain all descriptors for the requested
  69         * ring sizes.
  70         */
  71        unsigned long           rx_sram_addr;
  72        int                     rx_sram_size;
  73        unsigned long           tx_sram_addr;
  74        int                     tx_sram_size;
  75};
  76
  77
  78#endif
  79