SAMV7 Ethernet+USB Updates

This commit is contained in:
Gregory Nutt
2015-03-27 10:47:03 -06:00
parent 459bf9e885
commit 66670c1738
3 changed files with 34 additions and 12 deletions
+3 -2
View File
@@ -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;
}
+11 -4
View File
@@ -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);