Merge pull request #478 from hathach/move-dcdconnect-to-dcdinit
Move pull-up enabling to dcd_init() instead of usbd
This commit is contained in:
		| @@ -339,7 +339,6 @@ bool tud_init (void) | ||||
|  | ||||
|   // Init device controller driver | ||||
|   dcd_init(TUD_OPT_RHPORT); | ||||
|   tud_connect(); | ||||
|   dcd_int_enable(TUD_OPT_RHPORT); | ||||
|  | ||||
|   return true; | ||||
|   | ||||
| @@ -555,10 +555,10 @@ static void handle_ep0_nak(void) | ||||
|  *------------------------------------------------------------------*/ | ||||
| void dcd_init(uint8_t rhport) | ||||
| { | ||||
|   (void)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); | ||||
|  | ||||
|   dcd_connect(rhport); | ||||
| } | ||||
|  | ||||
| void dcd_int_enable(uint8_t rhport) | ||||
|   | ||||
| @@ -165,8 +165,6 @@ static void enum_done_processing(void) | ||||
|  *------------------------------------------------------------------*/ | ||||
| void dcd_init(uint8_t rhport) | ||||
| { | ||||
|   (void)rhport; | ||||
|  | ||||
|   ESP_LOGV(TAG, "DCD init - Start"); | ||||
|  | ||||
|   // A. Disconnect | ||||
| @@ -204,6 +202,8 @@ void dcd_init(uint8_t rhport) | ||||
|                  USB_ENUMDONEMSK_M | | ||||
|                  USB_RESETDETMSK_M | | ||||
|                  USB_DISCONNINTMSK_M; // host most only | ||||
|  | ||||
|   dcd_connect(rhport); | ||||
| } | ||||
|  | ||||
| void dcd_set_address(uint8_t rhport, uint8_t dev_addr) | ||||
|   | ||||
| @@ -154,9 +154,8 @@ static void bus_reset(void) | ||||
| // Initialize controller to device mode | ||||
| void dcd_init (uint8_t rhport) | ||||
| { | ||||
|   (void) rhport; | ||||
|  | ||||
|   tu_memclr(_dcd_xfer, sizeof(_dcd_xfer)); | ||||
|   dcd_connect(rhport); | ||||
| } | ||||
|  | ||||
| // Enable device interrupt | ||||
|   | ||||
| @@ -181,6 +181,8 @@ void dcd_init(uint8_t rhport) | ||||
|   LPC_USB->UDCAH = (uint32_t) _dcd.udca; | ||||
|   LPC_USB->DMAIntEn = (DMA_INT_END_OF_XFER_MASK /*| DMA_INT_NEW_DD_REQUEST_MASK*/ | DMA_INT_ERROR_MASK); | ||||
|  | ||||
|   dcd_connect(rhport); | ||||
|  | ||||
|   // Clear pending IRQ | ||||
|   NVIC_ClearPendingIRQ(USB_IRQn); | ||||
| } | ||||
|   | ||||
| @@ -345,7 +345,8 @@ void dcd_init(uint8_t rhport) | ||||
|   dcd_reg->USBSTS  = dcd_reg->USBSTS; | ||||
|   dcd_reg->USBINTR = INTR_USB | INTR_ERROR | INTR_PORT_CHANGE | INTR_RESET | INTR_SUSPEND /*| INTR_SOF*/; | ||||
|  | ||||
|   dcd_reg->USBCMD &= ~0x00FF0000; // Interrupt Threshold Interval = 0 | ||||
|   dcd_reg->USBCMD &= ~0x00FF0000;     // Interrupt Threshold Interval = 0 | ||||
|   dcd_reg->USBCMD |= USBCMD_RUN_STOP; // Connect | ||||
| } | ||||
|  | ||||
| void dcd_int_enable(uint8_t rhport) | ||||
|   | ||||
| @@ -205,7 +205,6 @@ static inline void reg16_clear_bits(__IO uint16_t *reg, uint16_t mask) { | ||||
|  | ||||
| void dcd_init (uint8_t rhport) | ||||
| { | ||||
|   (void)rhport; | ||||
|   /* Clocks should already be enabled */ | ||||
|   /* Use __HAL_RCC_USB_CLK_ENABLE(); to enable the clocks before calling this function */ | ||||
|  | ||||
| @@ -244,7 +243,8 @@ void dcd_init (uint8_t rhport) | ||||
|   USB->CNTR |= USB_CNTR_RESETM | (USE_SOF ? USB_CNTR_SOFM : 0) | USB_CNTR_ESOFM | USB_CNTR_CTRM | USB_CNTR_SUSPM | USB_CNTR_WKUPM; | ||||
|   dcd_handle_bus_reset(); | ||||
|    | ||||
|   // Data-line pull-up is left disconnected. | ||||
|   // Enable pull-up if supported | ||||
|   if ( dcd_connect ) dcd_connect(rhport); | ||||
| } | ||||
|  | ||||
| // Define only on MCU with internal pull-up. BSP can define on MCU without internal PU. | ||||
|   | ||||
| @@ -453,6 +453,8 @@ void dcd_init (uint8_t rhport) | ||||
|  | ||||
|   // Enable global interrupt | ||||
|   usb_otg->GAHBCFG |= USB_OTG_GAHBCFG_GINT; | ||||
|  | ||||
|   dcd_connect(rhport); | ||||
| } | ||||
|  | ||||
| void dcd_int_enable (uint8_t rhport) | ||||
|   | ||||
| @@ -133,6 +133,9 @@ void dcd_init (uint8_t rhport) | ||||
|   // Enable reset and wait for it before continuing. | ||||
|   USBIE |= RSTRIE; | ||||
|  | ||||
|   // Enable pullup. | ||||
|   USBCNF |= PUR_EN; | ||||
|  | ||||
|   USBKEYPID = 0; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Ha Thach
					Ha Thach