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 21 struct 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 34 struct device_node; 35 struct 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