1c4a6a2abSLennert Buytenhek /* 2c4a6a2abSLennert Buytenhek * MV-643XX ethernet platform device data definition file. 3c4a6a2abSLennert Buytenhek */ 4fa3959f4SLennert Buytenhek 5c4a6a2abSLennert Buytenhek #ifndef __LINUX_MV643XX_ETH_H 6c4a6a2abSLennert Buytenhek #define __LINUX_MV643XX_ETH_H 7c4a6a2abSLennert Buytenhek 8*f2ce825dSLennert Buytenhek #include <linux/mbus.h> 9*f2ce825dSLennert Buytenhek 10c4a6a2abSLennert Buytenhek #define MV643XX_ETH_SHARED_NAME "mv643xx_eth_shared" 11c4a6a2abSLennert Buytenhek #define MV643XX_ETH_NAME "mv643xx_eth" 12c4a6a2abSLennert Buytenhek #define MV643XX_ETH_SHARED_REGS 0x2000 13c4a6a2abSLennert Buytenhek #define MV643XX_ETH_SHARED_REGS_SIZE 0x2000 143077d78aSDale Farnsworth #define MV643XX_ETH_BAR_4 0x2220 153077d78aSDale Farnsworth #define MV643XX_ETH_SIZE_REG_4 0x2224 163077d78aSDale Farnsworth #define MV643XX_ETH_BASE_ADDR_ENABLE_REG 0x2290 17c4a6a2abSLennert Buytenhek 18*f2ce825dSLennert Buytenhek struct mv643xx_eth_shared_platform_data { 19*f2ce825dSLennert Buytenhek struct mbus_dram_target_info *dram; 20*f2ce825dSLennert Buytenhek }; 21*f2ce825dSLennert Buytenhek 22c4a6a2abSLennert Buytenhek struct mv643xx_eth_platform_data { 23fa3959f4SLennert Buytenhek struct platform_device *shared; 24c4a6a2abSLennert Buytenhek int port_number; 25fa3959f4SLennert Buytenhek 26c4a6a2abSLennert Buytenhek u16 force_phy_addr; /* force override if phy_addr == 0 */ 27c4a6a2abSLennert Buytenhek u16 phy_addr; 28c4a6a2abSLennert Buytenhek 29c4a6a2abSLennert Buytenhek /* If speed is 0, then speed and duplex are autonegotiated. */ 30c4a6a2abSLennert Buytenhek int speed; /* 0, SPEED_10, SPEED_100, SPEED_1000 */ 31c4a6a2abSLennert Buytenhek int duplex; /* DUPLEX_HALF or DUPLEX_FULL */ 32c4a6a2abSLennert Buytenhek 33c4a6a2abSLennert Buytenhek /* non-zero values of the following fields override defaults */ 34c4a6a2abSLennert Buytenhek u32 tx_queue_size; 35c4a6a2abSLennert Buytenhek u32 rx_queue_size; 36c4a6a2abSLennert Buytenhek u32 tx_sram_addr; 37c4a6a2abSLennert Buytenhek u32 tx_sram_size; 38c4a6a2abSLennert Buytenhek u32 rx_sram_addr; 39c4a6a2abSLennert Buytenhek u32 rx_sram_size; 40c4a6a2abSLennert Buytenhek u8 mac_addr[6]; /* mac address if non-zero*/ 41c4a6a2abSLennert Buytenhek }; 42c4a6a2abSLennert Buytenhek 43c4a6a2abSLennert Buytenhek #endif /* __LINUX_MV643XX_ETH_H */ 44