include/linux/mv643xx_eth.h
changeset 0 aa628870c1d3
equal deleted inserted replaced
-1:000000000000 0:aa628870c1d3
       
     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 struct 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 
       
    28 struct 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