Blame view
drivers/net/bcm-sf2-eth.h
1.34 KB
d41ce506b Initial Release, ... |
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 |
/* * Copyright 2014-2017 Broadcom. * * SPDX-License-Identifier: GPL-2.0+ */ #ifndef _BCM_SF2_ETH_H_ #define _BCM_SF2_ETH_H_ #include <phy.h> #define RX_BUF_SIZE 2048 /* RX_BUF_NUM must be power of 2 */ #define RX_BUF_NUM 32 #define TX_BUF_SIZE 2048 /* TX_BUF_NUM must be power of 2 */ #define TX_BUF_NUM 2 /* Support 2 Ethernet ports now */ #define BCM_ETH_MAX_PORT_NUM 2 enum { MAC_DMA_TX = 1, MAC_DMA_RX = 2 }; struct eth_dma { void *tx_desc_aligned; void *rx_desc_aligned; uint8_t *tx_buf; uint8_t *rx_buf; int cur_tx_index; int cur_rx_index; int (*tx_packet)(struct eth_dma *dma, void *packet, int length); bool (*check_tx_done)(struct eth_dma *dma); int (*check_rx_done)(struct eth_dma *dma, uint8_t *buf); int (*enable_dma)(struct eth_dma *dma, int dir); int (*disable_dma)(struct eth_dma *dma, int dir); }; struct eth_info { struct eth_dma dma; phy_interface_t phy_interface; struct phy_device *port[BCM_ETH_MAX_PORT_NUM]; int port_num; int (*miiphy_read)(struct mii_dev *bus, int phyaddr, int devad, int reg); int (*miiphy_write)(struct mii_dev *bus, int phyaddr, int devad, int reg, u16 value); int (*mac_init)(struct eth_device *dev); int (*enable_mac)(void); int (*disable_mac)(void); int (*set_mac_addr)(unsigned char *mac); int (*set_mac_speed)(int speed, int duplex); }; #endif /* _BCM_SF2_ETH_H_ */ |