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#include <linux/if_ether.h>
  10
  11#define MV643XX_ETH_SHARED_NAME         "mv643xx_eth"
  12#define MV643XX_ETH_NAME                "mv643xx_eth_port"
  13#define MV643XX_ETH_SHARED_REGS         0x2000
  14#define MV643XX_ETH_SHARED_REGS_SIZE    0x2000
  15#define MV643XX_ETH_BAR_4               0x2220
  16#define MV643XX_ETH_SIZE_REG_4          0x2224
  17#define MV643XX_ETH_BASE_ADDR_ENABLE_REG        0x2290
  18
  19#define MV643XX_TX_CSUM_DEFAULT_LIMIT   0
  20
  21struct mv643xx_eth_shared_platform_data {
  22        struct mbus_dram_target_info    *dram;
  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 device_node;
  35struct mv643xx_eth_platform_data {
  36        /*
  37         * Pointer back to our parent instance, and our port number.
  38         */
  39        struct platform_device  *shared;
  40        int                     port_number;
  41
  42        /*
  43         * Whether a PHY is present, and if yes, at which address.
  44         */
  45        int                     phy_addr;
  46        struct device_node      *phy_node;
  47
  48        /*
  49         * Use this MAC address if it is valid, overriding the
  50         * address that is already in the hardware.
  51         */
  52        u8                      mac_addr[ETH_ALEN];
  53
  54        /*
  55         * If speed is 0, autonegotiation is enabled.
  56         *   Valid values for speed: 0, SPEED_10, SPEED_100, SPEED_1000.
  57         *   Valid values for duplex: DUPLEX_HALF, DUPLEX_FULL.
  58         */
  59        int                     speed;
  60        int                     duplex;
  61
  62        /*
  63         * How many RX/TX queues to use.
  64         */
  65        int                     rx_queue_count;
  66        int                     tx_queue_count;
  67
  68        /*
  69         * Override default RX/TX queue sizes if nonzero.
  70         */
  71        int                     rx_queue_size;
  72        int                     tx_queue_size;
  73
  74        /*
  75         * Use on-chip SRAM for RX/TX descriptors if size is nonzero
  76         * and sufficient to contain all descriptors for the requested
  77         * ring sizes.
  78         */
  79        unsigned long           rx_sram_addr;
  80        int                     rx_sram_size;
  81        unsigned long           tx_sram_addr;
  82        int                     tx_sram_size;
  83};
  84
  85
  86#endif
  87