forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.0 KiB
87 lines
2.0 KiB
/* SPDX-License-Identifier: GPL-2.0 */ |
|
/* |
|
* 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
|
|
|