Open network device.
167 {
171
172
174
175
177 &usb_cfg0 ) ) != 0 )
178 goto err_usb_cfg0_read;
181 usb_cfg0 ) ) != 0 )
182 goto err_usb_cfg0_write;
183
184
186 DBGC ( smscusb,
"LAN78XX %p could not open: %s\n",
188 goto err_open;
189 }
190
191
195 goto err_int_ep_ctl;
196
197
200 goto err_bulk_in_dly;
201
202
207 goto err_mac_cr;
208
209
214 goto err_rfe_ctl;
215
216
220 goto err_fct_rx_ctl;
221
222
225 goto err_fct_tx_ctl;
226
227
232 goto err_mac_rx;
233
234
237 goto err_mac_tx;
238
239
242 goto err_set_address;
243
244
247 goto err_set_filter;
248
249
255 goto err_mii_open;
256
257 return 0;
258
259 err_mii_open:
260 err_set_filter:
261 err_set_address:
262 err_mac_tx:
263 err_mac_rx:
264 err_fct_tx_ctl:
265 err_fct_rx_ctl:
266 err_rfe_ctl:
267 err_mac_cr:
268 err_bulk_in_dly:
269 err_int_ep_ctl:
271 err_open:
272 err_usb_cfg0_write:
273 err_usb_cfg0_read:
276}
static int lan78xx_reset(struct smscusb_device *smscusb)
Reset device.
#define LAN78XX_MAC_CR_ASD
Auto speed.
#define LAN78XX_FCT_RX_CTL_EN
FCT RX enable.
#define LAN78XX_MAC_CR_ADP
Duplex polarity.
#define LAN78XX_PHY_INTR_ANEG_ERR
PHY interrupt: auto-negotiation failure.
#define LAN78XX_INT_EP_CTL_PHY_EN
PHY interrupt.
#define LAN78XX_USB_CFG0_BIR
Bulk IN use NAK.
#define LAN78XX_MAC_TX
MAC transmit register.
#define LAN78XX_ADDR_FILT_BASE
MAC address perfect filter register base.
#define LAN78XX_BULK_IN_DLY
Bulk IN delay register.
#define LAN78XX_PHY_INTR_LINK
PHY interrupt: link state change.
#define LAN78XX_MAC_RX_MAX_SIZE_DEFAULT
#define LAN78XX_MAC_RX
MAC receive register.
#define LAN78XX_MAC_RX_EN
RX enable.
#define LAN78XX_FCT_TX_CTL
FIFO controller TX FIFO control register.
#define LAN78XX_USB_CFG0
USB configuration register 0.
#define LAN78XX_RFE_CTL
Receive filtering engine control register.
#define LAN78XX_FCT_RX_CTL_BAD
Store bad frames.
#define LAN78XX_RFE_CTL_AM
Accept multicast.
#define LAN78XX_MII_PHY_INTR_MASK
PHY interrupt mask MII register.
#define LAN78XX_MAC_RX_FCS
FCS stripping.
#define LAN78XX_RFE_CTL_AB
Accept broadcast.
#define LAN78XX_RFE_CTL_AU
Accept unicast.
#define LAN78XX_RX_ADDR_BASE
MAC receive address register base.
#define LAN78XX_FCT_RX_CTL
FIFO controller RX FIFO control register.
#define LAN78XX_INT_EP_CTL
Interrupt endpoint control register.
#define LAN78XX_BULK_IN_DLY_SET(ticks)
Delay / 16.7ns.
#define LAN78XX_INT_EP_CTL_RDFO_EN
RX FIFO overflow.
#define LAN78XX_MAC_CR
MAC control register.
#define LAN78XX_MAC_TX_EN
TX enable.
#define LAN78XX_FCT_TX_CTL_EN
FCT TX enable.
#define LAN78XX_PHY_INTR_ANEG_DONE
PHY interrupt: auto-negotiation complete.
#define LAN78XX_MAC_CR_ADD
Auto duplex.
#define LAN78XX_PHY_INTR_ENABLE
PHY interrupt: global enable.
int smscusb_set_address(struct smscusb_device *smscusb, unsigned int addr_base)
Set receive address.
int smscusb_set_filter(struct smscusb_device *smscusb, unsigned int filt_base)
Set receive filter.
int smscusb_mii_open(struct smscusb_device *smscusb, unsigned int phy_mask, unsigned int intrs)
Enable PHY interrupts and update link status.
char * strerror(int errno)
Retrieve string representation of error number.
uint32_t int_sts
Interrupt status.
struct usbnet_device usbnet
USB network device.
int usbnet_open(struct usbnet_device *usbnet)
Open USB network device.
void usbnet_close(struct usbnet_device *usbnet)
Close USB network device.