Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990/* 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>#include <linux/phy.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; phy_interface_t interface;
/* * 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