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 20 struct mv643xx_eth_shared_platform_data { 21 struct mbus_dram_target_info *dram; 22 struct platform_device *shared_smi; 23 unsigned int t_clk; 24 /* 25 * Max packet size for Tx IP/Layer 4 checksum, when set to 0, default 26 * limit of 9KiB will be used. 27 */ 28 int tx_csum_limit; 29 }; 30 31 #define MV643XX_ETH_PHY_ADDR_DEFAULT 0 32 #define MV643XX_ETH_PHY_ADDR(x) (0x80 | (x)) 33 #define MV643XX_ETH_PHY_NONE 0xff 34 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 47 /* 48 * Use this MAC address if it is valid, overriding the 49 * address that is already in the hardware. 50 */ 51 u8 mac_addr[6]; 52 53 /* 54 * If speed is 0, autonegotiation is enabled. 55 * Valid values for speed: 0, SPEED_10, SPEED_100, SPEED_1000. 56 * Valid values for duplex: DUPLEX_HALF, DUPLEX_FULL. 57 */ 58 int speed; 59 int duplex; 60 61 /* 62 * How many RX/TX queues to use. 63 */ 64 int rx_queue_count; 65 int tx_queue_count; 66 67 /* 68 * Override default RX/TX queue sizes if nonzero. 69 */ 70 int rx_queue_size; 71 int tx_queue_size; 72 73 /* 74 * Use on-chip SRAM for RX/TX descriptors if size is nonzero 75 * and sufficient to contain all descriptors for the requested 76 * ring sizes. 77 */ 78 unsigned long rx_sram_addr; 79 int rx_sram_size; 80 unsigned long tx_sram_addr; 81 int tx_sram_size; 82 }; 83 84 85 #endif 86