mirror of
https://github.com/apache/nuttx.git
synced 2026-06-05 07:12:54 +08:00
SAMV7 Ethernet+USB Updates
This commit is contained in:
@@ -1041,7 +1041,7 @@ static int sam_buffer_allocate(struct sam_emac_s *priv)
|
||||
priv->xfrq[0].txdesc = priv->attr->tx0desc;
|
||||
priv->xfrq[0].ntxbuffers = priv->attr->ntxbuffers;
|
||||
priv->xfrq[0].rxdesc = priv->attr->rx0desc;
|
||||
priv->xfrq[0].nrxbuffers = priv->attr->rtxbuffers;
|
||||
priv->xfrq[0].nrxbuffers = priv->attr->nrxbuffers;
|
||||
|
||||
priv->xfrq[0].txbuffer = priv->attr->tx0buffer;
|
||||
priv->xfrq[0].txbufsize = EMAC_TX_UNITSIZE;
|
||||
@@ -1602,7 +1602,7 @@ static int sam_recvframe(struct sam_emac_s *priv, int qid)
|
||||
{
|
||||
if (rxndx == priv->xfrq[qid].rxndx)
|
||||
{
|
||||
nllvdbg("ERROR: No EOF (Invalid of buffers too small)\n");
|
||||
nllvdbg("ERROR: No EOF (Invalid or buffers too small)\n");
|
||||
do
|
||||
{
|
||||
/* Give ownership back to the EMAC */
|
||||
@@ -1624,6 +1624,7 @@ static int sam_recvframe(struct sam_emac_s *priv, int qid)
|
||||
}
|
||||
}
|
||||
while (rxndx != priv->xfrq[qid].rxndx);
|
||||
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
|
||||
@@ -4209,7 +4209,7 @@ static int sam_pullup(FAR struct usbdev_s *dev, bool enable)
|
||||
{
|
||||
/* DETACH=1: USBHS is detached, UTMI transceiver is suspended. */
|
||||
|
||||
regval = sam_getreg(SAM_USBHS_DEVCTRL);
|
||||
regval = sam_getreg(SAM_USBHS_DEVCTRL);
|
||||
regval |= USBHS_DEVCTRL_DETACH;
|
||||
sam_putreg(regval, SAM_USBHS_DEVCTRL);
|
||||
|
||||
@@ -4533,13 +4533,20 @@ static void sam_hw_shutdown(struct sam_usbdev_s *priv)
|
||||
|
||||
sam_putreg(USBHS_DEVINT_ALL, SAM_USBHS_DEVICR);
|
||||
|
||||
/* Disconnect the device */
|
||||
/* DETACH=1: USBHS is detached, UTMI transceiver is suspended. */
|
||||
|
||||
sam_pullup(&priv->usbdev, false);
|
||||
regval = sam_getreg(SAM_USBHS_DEVCTRL);
|
||||
regval |= USBHS_DEVCTRL_DETACH;
|
||||
sam_putreg(regval, SAM_USBHS_DEVCTRL);
|
||||
|
||||
/* Freeze clocking */
|
||||
|
||||
regval = sam_getreg(SAM_USBHS_CTRL);
|
||||
regval |= USBHS_CTRL_FRZCLK;
|
||||
sam_putreg(regval, SAM_USBHS_CTRL);
|
||||
|
||||
/* Disable USB hardware */
|
||||
|
||||
regval = sam_getreg(SAM_USBHS_CTRL);
|
||||
regval &= ~USBHS_CTRL_USBE;
|
||||
sam_putreg(regval, SAM_USBHS_CTRL);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user