#ifndef _BGMAC_H
#define _BGMAC_H
#include <linux/netdevice.h>
#include "unimac.h"
#define BGMAC_DEV_CTL …
#define BGMAC_DC_TSM …
#define BGMAC_DC_CFCO …
#define BGMAC_DC_RLSS …
#define BGMAC_DC_MROR …
#define BGMAC_DC_FCM_MASK …
#define BGMAC_DC_FCM_SHIFT …
#define BGMAC_DC_NAE …
#define BGMAC_DC_TF …
#define BGMAC_DC_RDS_MASK …
#define BGMAC_DC_RDS_SHIFT …
#define BGMAC_DC_TDS_MASK …
#define BGMAC_DC_TDS_SHIFT …
#define BGMAC_DEV_STATUS …
#define BGMAC_DS_RBF …
#define BGMAC_DS_RDF …
#define BGMAC_DS_RIF …
#define BGMAC_DS_TBF …
#define BGMAC_DS_TDF …
#define BGMAC_DS_TIF …
#define BGMAC_DS_PO …
#define BGMAC_DS_MM_MASK …
#define BGMAC_DS_MM_SHIFT …
#define BGMAC_BIST_STATUS …
#define BGMAC_INT_STATUS …
#define BGMAC_IS_MRO …
#define BGMAC_IS_MTO …
#define BGMAC_IS_TFD …
#define BGMAC_IS_LS …
#define BGMAC_IS_MDIO …
#define BGMAC_IS_MR …
#define BGMAC_IS_MT …
#define BGMAC_IS_TO …
#define BGMAC_IS_DESC_ERR …
#define BGMAC_IS_DATA_ERR …
#define BGMAC_IS_DESC_PROT_ERR …
#define BGMAC_IS_RX_DESC_UNDERF …
#define BGMAC_IS_RX_F_OVERF …
#define BGMAC_IS_TX_F_UNDERF …
#define BGMAC_IS_RX …
#define BGMAC_IS_TX0 …
#define BGMAC_IS_TX1 …
#define BGMAC_IS_TX2 …
#define BGMAC_IS_TX3 …
#define BGMAC_IS_TX_MASK …
#define BGMAC_IS_INTMASK …
#define BGMAC_IS_ERRMASK …
#define BGMAC_INT_MASK …
#define BGMAC_GP_TIMER …
#define BGMAC_INT_RECV_LAZY …
#define BGMAC_IRL_TO_MASK …
#define BGMAC_IRL_FC_MASK …
#define BGMAC_IRL_FC_SHIFT …
#define BGMAC_FLOW_CTL_THRESH …
#define BGMAC_WRRTHRESH …
#define BGMAC_GMAC_IDLE_CNT_THRESH …
#define BGMAC_PHY_ACCESS …
#define BGMAC_PA_DATA_MASK …
#define BGMAC_PA_ADDR_MASK …
#define BGMAC_PA_ADDR_SHIFT …
#define BGMAC_PA_REG_MASK …
#define BGMAC_PA_REG_SHIFT …
#define BGMAC_PA_WRITE …
#define BGMAC_PA_START …
#define BGMAC_PHY_CNTL …
#define BGMAC_PC_EPA_MASK …
#define BGMAC_PC_MCT_MASK …
#define BGMAC_PC_MCT_SHIFT …
#define BGMAC_PC_MTE …
#define BGMAC_TXQ_CTL …
#define BGMAC_TXQ_CTL_DBT_MASK …
#define BGMAC_TXQ_CTL_DBT_SHIFT …
#define BGMAC_RXQ_CTL …
#define BGMAC_RXQ_CTL_DBT_MASK …
#define BGMAC_RXQ_CTL_DBT_SHIFT …
#define BGMAC_RXQ_CTL_PTE …
#define BGMAC_RXQ_CTL_MDP_MASK …
#define BGMAC_RXQ_CTL_MDP_SHIFT …
#define BGMAC_GPIO_SELECT …
#define BGMAC_GPIO_OUTPUT_EN …
#define BGMAC_BCMA_CLKCTLST_MISC_PLL_REQ …
#define BGMAC_BCMA_CLKCTLST_MISC_PLL_ST …
#define BGMAC_HW_WAR …
#define BGMAC_PWR_CTL …
#define BGMAC_DMA_BASE0 …
#define BGMAC_DMA_BASE1 …
#define BGMAC_DMA_BASE2 …
#define BGMAC_DMA_BASE3 …
#define BGMAC_TX_GOOD_OCTETS …
#define BGMAC_TX_GOOD_OCTETS_HIGH …
#define BGMAC_TX_GOOD_PKTS …
#define BGMAC_TX_OCTETS …
#define BGMAC_TX_OCTETS_HIGH …
#define BGMAC_TX_PKTS …
#define BGMAC_TX_BROADCAST_PKTS …
#define BGMAC_TX_MULTICAST_PKTS …
#define BGMAC_TX_LEN_64 …
#define BGMAC_TX_LEN_65_TO_127 …
#define BGMAC_TX_LEN_128_TO_255 …
#define BGMAC_TX_LEN_256_TO_511 …
#define BGMAC_TX_LEN_512_TO_1023 …
#define BGMAC_TX_LEN_1024_TO_1522 …
#define BGMAC_TX_LEN_1523_TO_2047 …
#define BGMAC_TX_LEN_2048_TO_4095 …
#define BGMAC_TX_LEN_4096_TO_8191 …
#define BGMAC_TX_LEN_8192_TO_MAX …
#define BGMAC_TX_JABBER_PKTS …
#define BGMAC_TX_OVERSIZE_PKTS …
#define BGMAC_TX_FRAGMENT_PKTS …
#define BGMAC_TX_UNDERRUNS …
#define BGMAC_TX_TOTAL_COLS …
#define BGMAC_TX_SINGLE_COLS …
#define BGMAC_TX_MULTIPLE_COLS …
#define BGMAC_TX_EXCESSIVE_COLS …
#define BGMAC_TX_LATE_COLS …
#define BGMAC_TX_DEFERED …
#define BGMAC_TX_CARRIER_LOST …
#define BGMAC_TX_PAUSE_PKTS …
#define BGMAC_TX_UNI_PKTS …
#define BGMAC_TX_Q0_PKTS …
#define BGMAC_TX_Q0_OCTETS …
#define BGMAC_TX_Q0_OCTETS_HIGH …
#define BGMAC_TX_Q1_PKTS …
#define BGMAC_TX_Q1_OCTETS …
#define BGMAC_TX_Q1_OCTETS_HIGH …
#define BGMAC_TX_Q2_PKTS …
#define BGMAC_TX_Q2_OCTETS …
#define BGMAC_TX_Q2_OCTETS_HIGH …
#define BGMAC_TX_Q3_PKTS …
#define BGMAC_TX_Q3_OCTETS …
#define BGMAC_TX_Q3_OCTETS_HIGH …
#define BGMAC_RX_GOOD_OCTETS …
#define BGMAC_RX_GOOD_OCTETS_HIGH …
#define BGMAC_RX_GOOD_PKTS …
#define BGMAC_RX_OCTETS …
#define BGMAC_RX_OCTETS_HIGH …
#define BGMAC_RX_PKTS …
#define BGMAC_RX_BROADCAST_PKTS …
#define BGMAC_RX_MULTICAST_PKTS …
#define BGMAC_RX_LEN_64 …
#define BGMAC_RX_LEN_65_TO_127 …
#define BGMAC_RX_LEN_128_TO_255 …
#define BGMAC_RX_LEN_256_TO_511 …
#define BGMAC_RX_LEN_512_TO_1023 …
#define BGMAC_RX_LEN_1024_TO_1522 …
#define BGMAC_RX_LEN_1523_TO_2047 …
#define BGMAC_RX_LEN_2048_TO_4095 …
#define BGMAC_RX_LEN_4096_TO_8191 …
#define BGMAC_RX_LEN_8192_TO_MAX …
#define BGMAC_RX_JABBER_PKTS …
#define BGMAC_RX_OVERSIZE_PKTS …
#define BGMAC_RX_FRAGMENT_PKTS …
#define BGMAC_RX_MISSED_PKTS …
#define BGMAC_RX_CRC_ALIGN_ERRS …
#define BGMAC_RX_UNDERSIZE …
#define BGMAC_RX_CRC_ERRS …
#define BGMAC_RX_ALIGN_ERRS …
#define BGMAC_RX_SYMBOL_ERRS …
#define BGMAC_RX_PAUSE_PKTS …
#define BGMAC_RX_NONPAUSE_PKTS …
#define BGMAC_RX_SACHANGES …
#define BGMAC_RX_UNI_PKTS …
#define BGMAC_UNIMAC …
#define BGMAC_BCMA_IOCTL_SW_CLKEN …
#define BGMAC_BCMA_IOCTL_SW_RESET …
#define BGMAC_CLK_EN …
#define BGMAC_RESERVED_0 …
#define BGMAC_SOURCE_SYNC_MODE_EN …
#define BGMAC_DEST_SYNC_MODE_EN …
#define BGMAC_TX_CLK_OUT_INVERT_EN …
#define BGMAC_DIRECT_GMII_MODE …
#define BGMAC_CLK_250_SEL …
#define BGMAC_AWCACHE …
#define BGMAC_RESERVED_1 …
#define BGMAC_ARCACHE …
#define BGMAC_AWUSER …
#define BGMAC_ARUSER …
#define BGMAC_RESERVED …
#define BGMAC_BCMA_IOST_ATTACHED …
#define BGMAC_NUM_MIB_TX_REGS …
#define BGMAC_NUM_MIB_RX_REGS …
#define BGMAC_DMA_TX_CTL …
#define BGMAC_DMA_TX_ENABLE …
#define BGMAC_DMA_TX_SUSPEND …
#define BGMAC_DMA_TX_LOOPBACK …
#define BGMAC_DMA_TX_FLUSH …
#define BGMAC_DMA_TX_MR_MASK …
#define BGMAC_DMA_TX_MR_SHIFT …
#define BGMAC_DMA_TX_MR_1 …
#define BGMAC_DMA_TX_MR_2 …
#define BGMAC_DMA_TX_PARITY_DISABLE …
#define BGMAC_DMA_TX_ADDREXT_MASK …
#define BGMAC_DMA_TX_ADDREXT_SHIFT …
#define BGMAC_DMA_TX_BL_MASK …
#define BGMAC_DMA_TX_BL_SHIFT …
#define BGMAC_DMA_TX_BL_16 …
#define BGMAC_DMA_TX_BL_32 …
#define BGMAC_DMA_TX_BL_64 …
#define BGMAC_DMA_TX_BL_128 …
#define BGMAC_DMA_TX_BL_256 …
#define BGMAC_DMA_TX_BL_512 …
#define BGMAC_DMA_TX_BL_1024 …
#define BGMAC_DMA_TX_PC_MASK …
#define BGMAC_DMA_TX_PC_SHIFT …
#define BGMAC_DMA_TX_PC_0 …
#define BGMAC_DMA_TX_PC_4 …
#define BGMAC_DMA_TX_PC_8 …
#define BGMAC_DMA_TX_PC_16 …
#define BGMAC_DMA_TX_PT_MASK …
#define BGMAC_DMA_TX_PT_SHIFT …
#define BGMAC_DMA_TX_PT_1 …
#define BGMAC_DMA_TX_PT_2 …
#define BGMAC_DMA_TX_PT_4 …
#define BGMAC_DMA_TX_PT_8 …
#define BGMAC_DMA_TX_INDEX …
#define BGMAC_DMA_TX_RINGLO …
#define BGMAC_DMA_TX_RINGHI …
#define BGMAC_DMA_TX_STATUS …
#define BGMAC_DMA_TX_STATDPTR …
#define BGMAC_DMA_TX_STAT …
#define BGMAC_DMA_TX_STAT_DISABLED …
#define BGMAC_DMA_TX_STAT_ACTIVE …
#define BGMAC_DMA_TX_STAT_IDLEWAIT …
#define BGMAC_DMA_TX_STAT_STOPPED …
#define BGMAC_DMA_TX_STAT_SUSP …
#define BGMAC_DMA_TX_ERROR …
#define BGMAC_DMA_TX_ERRDPTR …
#define BGMAC_DMA_TX_ERR …
#define BGMAC_DMA_TX_ERR_NOERR …
#define BGMAC_DMA_TX_ERR_PROT …
#define BGMAC_DMA_TX_ERR_UNDERRUN …
#define BGMAC_DMA_TX_ERR_TRANSFER …
#define BGMAC_DMA_TX_ERR_DESCREAD …
#define BGMAC_DMA_TX_ERR_CORE …
#define BGMAC_DMA_RX_CTL …
#define BGMAC_DMA_RX_ENABLE …
#define BGMAC_DMA_RX_FRAME_OFFSET_MASK …
#define BGMAC_DMA_RX_FRAME_OFFSET_SHIFT …
#define BGMAC_DMA_RX_DIRECT_FIFO …
#define BGMAC_DMA_RX_OVERFLOW_CONT …
#define BGMAC_DMA_RX_PARITY_DISABLE …
#define BGMAC_DMA_RX_MR_MASK …
#define BGMAC_DMA_RX_MR_SHIFT …
#define BGMAC_DMA_TX_MR_1 …
#define BGMAC_DMA_TX_MR_2 …
#define BGMAC_DMA_RX_ADDREXT_MASK …
#define BGMAC_DMA_RX_ADDREXT_SHIFT …
#define BGMAC_DMA_RX_BL_MASK …
#define BGMAC_DMA_RX_BL_SHIFT …
#define BGMAC_DMA_RX_BL_16 …
#define BGMAC_DMA_RX_BL_32 …
#define BGMAC_DMA_RX_BL_64 …
#define BGMAC_DMA_RX_BL_128 …
#define BGMAC_DMA_RX_BL_256 …
#define BGMAC_DMA_RX_BL_512 …
#define BGMAC_DMA_RX_BL_1024 …
#define BGMAC_DMA_RX_PC_MASK …
#define BGMAC_DMA_RX_PC_SHIFT …
#define BGMAC_DMA_RX_PC_0 …
#define BGMAC_DMA_RX_PC_4 …
#define BGMAC_DMA_RX_PC_8 …
#define BGMAC_DMA_RX_PC_16 …
#define BGMAC_DMA_RX_PT_MASK …
#define BGMAC_DMA_RX_PT_SHIFT …
#define BGMAC_DMA_RX_PT_1 …
#define BGMAC_DMA_RX_PT_2 …
#define BGMAC_DMA_RX_PT_4 …
#define BGMAC_DMA_RX_PT_8 …
#define BGMAC_DMA_RX_INDEX …
#define BGMAC_DMA_RX_RINGLO …
#define BGMAC_DMA_RX_RINGHI …
#define BGMAC_DMA_RX_STATUS …
#define BGMAC_DMA_RX_STATDPTR …
#define BGMAC_DMA_RX_STAT …
#define BGMAC_DMA_RX_STAT_DISABLED …
#define BGMAC_DMA_RX_STAT_ACTIVE …
#define BGMAC_DMA_RX_STAT_IDLEWAIT …
#define BGMAC_DMA_RX_STAT_STOPPED …
#define BGMAC_DMA_RX_STAT_SUSP …
#define BGMAC_DMA_RX_ERROR …
#define BGMAC_DMA_RX_ERRDPTR …
#define BGMAC_DMA_RX_ERR …
#define BGMAC_DMA_RX_ERR_NOERR …
#define BGMAC_DMA_RX_ERR_PROT …
#define BGMAC_DMA_RX_ERR_UNDERRUN …
#define BGMAC_DMA_RX_ERR_TRANSFER …
#define BGMAC_DMA_RX_ERR_DESCREAD …
#define BGMAC_DMA_RX_ERR_CORE …
#define BGMAC_DESC_CTL0_EOT …
#define BGMAC_DESC_CTL0_IOC …
#define BGMAC_DESC_CTL0_EOF …
#define BGMAC_DESC_CTL0_SOF …
#define BGMAC_DESC_CTL1_LEN …
#define BGMAC_PHY_NOREGS …
#define BGMAC_PHY_MASK …
#define BGMAC_MAX_TX_RINGS …
#define BGMAC_MAX_RX_RINGS …
#define BGMAC_TX_RING_SLOTS …
#define BGMAC_RX_RING_SLOTS …
#define BGMAC_RX_HEADER_LEN …
#define BGMAC_RX_FRAME_OFFSET …
#define BGMAC_RX_BUF_OFFSET …
#define BGMAC_RX_MAX_FRAME_SIZE …
#define BGMAC_RX_BUF_SIZE …
#define BGMAC_RX_ALLOC_SIZE …
#define BGMAC_BFL_ENETROBO …
#define BGMAC_BFL_ENETADM …
#define BGMAC_BFL_ENETVLAN …
#define BGMAC_CHIPCTL_1_IF_TYPE_MASK …
#define BGMAC_CHIPCTL_1_IF_TYPE_RMII …
#define BGMAC_CHIPCTL_1_IF_TYPE_MII …
#define BGMAC_CHIPCTL_1_IF_TYPE_RGMII …
#define BGMAC_CHIPCTL_1_SW_TYPE_MASK …
#define BGMAC_CHIPCTL_1_SW_TYPE_EPHY …
#define BGMAC_CHIPCTL_1_SW_TYPE_EPHYMII …
#define BGMAC_CHIPCTL_1_SW_TYPE_EPHYRMII …
#define BGMAC_CHIPCTL_1_SW_TYPE_RGMII …
#define BGMAC_CHIPCTL_1_RXC_DLL_BYPASS …
#define BGMAC_CHIPCTL_4_IF_TYPE_MASK …
#define BGMAC_CHIPCTL_4_IF_TYPE_RMII …
#define BGMAC_CHIPCTL_4_IF_TYPE_MII …
#define BGMAC_CHIPCTL_4_IF_TYPE_RGMII …
#define BGMAC_CHIPCTL_4_SW_TYPE_MASK …
#define BGMAC_CHIPCTL_4_SW_TYPE_EPHY …
#define BGMAC_CHIPCTL_4_SW_TYPE_EPHYMII …
#define BGMAC_CHIPCTL_4_SW_TYPE_EPHYRMII …
#define BGMAC_CHIPCTL_4_SW_TYPE_RGMII …
#define BGMAC_CHIPCTL_7_IF_TYPE_MASK …
#define BGMAC_CHIPCTL_7_IF_TYPE_RMII …
#define BGMAC_CHIPCTL_7_IF_TYPE_MII …
#define BGMAC_CHIPCTL_7_IF_TYPE_RGMII …
#define ETHER_MAX_LEN …
#define BGMAC_FEAT_TX_MASK_SETUP …
#define BGMAC_FEAT_RX_MASK_SETUP …
#define BGMAC_FEAT_IOST_ATTACHED …
#define BGMAC_FEAT_NO_RESET …
#define BGMAC_FEAT_MISC_PLL_REQ …
#define BGMAC_FEAT_SW_TYPE_PHY …
#define BGMAC_FEAT_SW_TYPE_EPHYRMII …
#define BGMAC_FEAT_SW_TYPE_RGMII …
#define BGMAC_FEAT_CMN_PHY_CTL …
#define BGMAC_FEAT_FLW_CTRL1 …
#define BGMAC_FEAT_FLW_CTRL2 …
#define BGMAC_FEAT_SET_RXQ_CLK …
#define BGMAC_FEAT_CLKCTLST …
#define BGMAC_FEAT_NO_CLR_MIB …
#define BGMAC_FEAT_FORCE_SPEED_2500 …
#define BGMAC_FEAT_CMDCFG_SR_REV4 …
#define BGMAC_FEAT_IRQ_ID_OOB_6 …
#define BGMAC_FEAT_CC4_IF_SW_TYPE …
#define BGMAC_FEAT_CC4_IF_SW_TYPE_RGMII …
#define BGMAC_FEAT_CC7_IF_TYPE_RGMII …
#define BGMAC_FEAT_IDM_MASK …
struct bgmac_slot_info { … };
struct bgmac_dma_desc { … } __packed;
enum bgmac_dma_ring_type { … };
struct bgmac_dma_ring { … };
struct bgmac_rx_header { … };
struct bgmac { … };
struct bgmac *bgmac_alloc(struct device *dev);
int bgmac_enet_probe(struct bgmac *bgmac);
void bgmac_enet_remove(struct bgmac *bgmac);
void bgmac_adjust_link(struct net_device *net_dev);
int bgmac_phy_connect_direct(struct bgmac *bgmac);
int bgmac_enet_suspend(struct bgmac *bgmac);
int bgmac_enet_resume(struct bgmac *bgmac);
struct mii_bus *bcma_mdio_mii_register(struct bgmac *bgmac);
void bcma_mdio_mii_unregister(struct mii_bus *mii_bus);
static inline u32 bgmac_read(struct bgmac *bgmac, u16 offset)
{ … }
static inline void bgmac_write(struct bgmac *bgmac, u16 offset, u32 value)
{ … }
static inline u32 bgmac_umac_read(struct bgmac *bgmac, u16 offset)
{ … }
static inline void bgmac_umac_write(struct bgmac *bgmac, u16 offset, u32 value)
{ … }
static inline u32 bgmac_idm_read(struct bgmac *bgmac, u16 offset)
{ … }
static inline void bgmac_idm_write(struct bgmac *bgmac, u16 offset, u32 value)
{ … }
static inline bool bgmac_clk_enabled(struct bgmac *bgmac)
{ … }
static inline void bgmac_clk_enable(struct bgmac *bgmac, u32 flags)
{ … }
static inline void bgmac_cco_ctl_maskset(struct bgmac *bgmac, u32 offset,
u32 mask, u32 set)
{ … }
static inline u32 bgmac_get_bus_clock(struct bgmac *bgmac)
{ … }
static inline void bgmac_cmn_maskset32(struct bgmac *bgmac, u16 offset,
u32 mask, u32 set)
{ … }
static inline void bgmac_maskset(struct bgmac *bgmac, u16 offset, u32 mask,
u32 set)
{ … }
static inline void bgmac_mask(struct bgmac *bgmac, u16 offset, u32 mask)
{ … }
static inline void bgmac_set(struct bgmac *bgmac, u16 offset, u32 set)
{ … }
static inline void bgmac_umac_maskset(struct bgmac *bgmac, u16 offset, u32 mask, u32 set)
{ … }
static inline int bgmac_phy_connect(struct bgmac *bgmac)
{ … }
#endif