Blame view

kernel/linux-imx6_3.14.28/include/linux/mv643xx_eth.h 1.92 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
  /*
   * MV-643XX ethernet platform device data definition file.
   */
  
  #ifndef __LINUX_MV643XX_ETH_H
  #define __LINUX_MV643XX_ETH_H
  
  #include <linux/mbus.h>
  #include <linux/if_ether.h>
  
  #define MV643XX_ETH_SHARED_NAME		"mv643xx_eth"
  #define MV643XX_ETH_NAME		"mv643xx_eth_port"
  #define MV643XX_ETH_SHARED_REGS		0x2000
  #define MV643XX_ETH_SHARED_REGS_SIZE	0x2000
  #define MV643XX_ETH_BAR_4		0x2220
  #define MV643XX_ETH_SIZE_REG_4		0x2224
  #define MV643XX_ETH_BASE_ADDR_ENABLE_REG	0x2290
  
  #define MV643XX_TX_CSUM_DEFAULT_LIMIT	0
  
  struct mv643xx_eth_shared_platform_data {
  	struct mbus_dram_target_info	*dram;
  	/*
  	 * Max packet size for Tx IP/Layer 4 checksum, when set to 0, default
  	 * limit of 9KiB will be used.
  	 */
  	int			tx_csum_limit;
  };
  
  #define MV643XX_ETH_PHY_ADDR_DEFAULT	0
  #define MV643XX_ETH_PHY_ADDR(x)		(0x80 | (x))
  #define MV643XX_ETH_PHY_NONE		0xff
  
  struct device_node;
  struct mv643xx_eth_platform_data {
  	/*
  	 * Pointer back to our parent instance, and our port number.
  	 */
  	struct platform_device	*shared;
  	int			port_number;
  
  	/*
  	 * Whether a PHY is present, and if yes, at which address.
  	 */
  	int			phy_addr;
  	struct device_node	*phy_node;
  
  	/*
  	 * Use this MAC address if it is valid, overriding the
  	 * address that is already in the hardware.
  	 */
  	u8			mac_addr[ETH_ALEN];
  
  	/*
  	 * If speed is 0, autonegotiation is enabled.
  	 *   Valid values for speed: 0, SPEED_10, SPEED_100, SPEED_1000.
  	 *   Valid values for duplex: DUPLEX_HALF, DUPLEX_FULL.
  	 */
  	int			speed;
  	int			duplex;
  
  	/*
  	 * How many RX/TX queues to use.
  	 */
  	int			rx_queue_count;
  	int			tx_queue_count;
  
  	/*
  	 * Override default RX/TX queue sizes if nonzero.
  	 */
  	int			rx_queue_size;
  	int			tx_queue_size;
  
  	/*
  	 * Use on-chip SRAM for RX/TX descriptors if size is nonzero
  	 * and sufficient to contain all descriptors for the requested
  	 * ring sizes.
  	 */
  	unsigned long		rx_sram_addr;
  	int			rx_sram_size;
  	unsigned long		tx_sram_addr;
  	int			tx_sram_size;
  };
  
  
  #endif