Ver Fonte

Merge pull request #1019 from kasjer/kasjer/da1469x-fix-no-vbus-startup

da1469x: Fix no VBUS startup
Ha Thach há 4 anos atrás
pai
commit
89e4586653
1 ficheiros alterados com 10 adições e 28 exclusões
  1. 10 28
      src/portable/dialog/da146xx/dcd_da146xx.c

+ 10 - 28
src/portable/dialog/da146xx/dcd_da146xx.c

@@ -258,33 +258,6 @@ static const tusb_desc_endpoint_t ep0IN_desc =
 
 #define XFER_CTL_BASE(_ep, _dir) &_dcd.xfer_status[_ep][_dir]
 
-// Function could be called when VBUS change was detected.
-void tusb_vbus_changed(bool present)
-{
-  if (present != _dcd.vbus_present)
-  {
-    _dcd.vbus_present = present;
-    if (present)
-    {
-      USB->USB_MCTRL_REG = USB_USB_MCTRL_REG_USBEN_Msk;
-      USB->USB_NFSR_REG = 0;
-      USB->USB_FAR_REG = 0x80;
-      USB->USB_NFSR_REG = NFSR_NODE_RESET;
-      USB->USB_TXMSK_REG = 0;
-      USB->USB_RXMSK_REG = 0;
-
-      USB->USB_MAMSK_REG = USB_USB_MAMSK_REG_USB_M_INTR_Msk |
-                           USB_USB_MAMSK_REG_USB_M_ALT_Msk |
-                           USB_USB_MAMSK_REG_USB_M_WARN_Msk;
-      USB->USB_ALTMSK_REG = USB_USB_ALTMSK_REG_USB_M_RESET_Msk;
-    }
-    else
-    {
-      USB->USB_MCTRL_REG = 0;
-    }
-  }
-}
-
 static void fill_tx_fifo(xfer_ctl_t * xfer)
 {
   int left_to_send;
@@ -763,7 +736,16 @@ static void handle_ep0_nak(void)
 void dcd_init(uint8_t rhport)
 {
   USB->USB_MCTRL_REG = USB_USB_MCTRL_REG_USBEN_Msk;
-  tusb_vbus_changed((CRG_TOP->ANA_STATUS_REG & CRG_TOP_ANA_STATUS_REG_VBUS_AVAILABLE_Msk) != 0);
+  USB->USB_NFSR_REG = 0;
+  USB->USB_FAR_REG = 0x80;
+  USB->USB_NFSR_REG = NFSR_NODE_RESET;
+  USB->USB_TXMSK_REG = 0;
+  USB->USB_RXMSK_REG = 0;
+
+  USB->USB_MAMSK_REG = USB_USB_MAMSK_REG_USB_M_INTR_Msk |
+                       USB_USB_MAMSK_REG_USB_M_ALT_Msk |
+                       USB_USB_MAMSK_REG_USB_M_WARN_Msk;
+  USB->USB_ALTMSK_REG = USB_USB_ALTMSK_REG_USB_M_RESET_Msk;
 
   dcd_connect(rhport);
 }