summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2020-08-01 20:14:58 +0700
committerhathach <[email protected]>2020-08-01 20:14:58 +0700
commitacde49ccc97466f603dc7face7ab70ea10d38ee3 (patch)
tree39faa19822bd0a3fee11bf3d6e05aa3157f70fe4 /src
parent310797a58073dbd6d56eb4c85afd354949ce6630 (diff)
enable pull-up in dcd_init() instead of usbd
Diffstat (limited to 'src')
-rw-r--r--src/device/usbd.c1
-rw-r--r--src/portable/dialog/da146xx/dcd_da146xx.c4
-rw-r--r--src/portable/espressif/esp32s2/dcd_esp32s2.c4
-rw-r--r--src/portable/microchip/samg/dcd_samg.c3
-rw-r--r--src/portable/nxp/lpc17_40/dcd_lpc17_40.c2
-rw-r--r--src/portable/nxp/transdimension/dcd_transdimension.c3
-rw-r--r--src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c4
-rw-r--r--src/portable/st/synopsys/dcd_synopsys.c2
-rw-r--r--src/portable/ti/msp430x5xx/dcd_msp430x5xx.c3
9 files changed, 16 insertions, 10 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 9faa3549f..0cecd7958 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -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;
diff --git a/src/portable/dialog/da146xx/dcd_da146xx.c b/src/portable/dialog/da146xx/dcd_da146xx.c
index 3a3459b7d..602836e3a 100644
--- a/src/portable/dialog/da146xx/dcd_da146xx.c
+++ b/src/portable/dialog/da146xx/dcd_da146xx.c
@@ -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)
diff --git a/src/portable/espressif/esp32s2/dcd_esp32s2.c b/src/portable/espressif/esp32s2/dcd_esp32s2.c
index 755e06701..58d92e728 100644
--- a/src/portable/espressif/esp32s2/dcd_esp32s2.c
+++ b/src/portable/espressif/esp32s2/dcd_esp32s2.c
@@ -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)
diff --git a/src/portable/microchip/samg/dcd_samg.c b/src/portable/microchip/samg/dcd_samg.c
index 4a8ed53f3..2b64df50b 100644
--- a/src/portable/microchip/samg/dcd_samg.c
+++ b/src/portable/microchip/samg/dcd_samg.c
@@ -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
diff --git a/src/portable/nxp/lpc17_40/dcd_lpc17_40.c b/src/portable/nxp/lpc17_40/dcd_lpc17_40.c
index f7a59a808..39c5e6638 100644
--- a/src/portable/nxp/lpc17_40/dcd_lpc17_40.c
+++ b/src/portable/nxp/lpc17_40/dcd_lpc17_40.c
@@ -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);
}
diff --git a/src/portable/nxp/transdimension/dcd_transdimension.c b/src/portable/nxp/transdimension/dcd_transdimension.c
index 46751cf5d..755e7635e 100644
--- a/src/portable/nxp/transdimension/dcd_transdimension.c
+++ b/src/portable/nxp/transdimension/dcd_transdimension.c
@@ -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)
diff --git a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
index da184abe7..32179874e 100644
--- a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
+++ b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
@@ -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.
diff --git a/src/portable/st/synopsys/dcd_synopsys.c b/src/portable/st/synopsys/dcd_synopsys.c
index f4430f582..a284c0384 100644
--- a/src/portable/st/synopsys/dcd_synopsys.c
+++ b/src/portable/st/synopsys/dcd_synopsys.c
@@ -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)
diff --git a/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c b/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
index 8672050f0..b6951efef 100644
--- a/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
+++ b/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
@@ -134,6 +134,9 @@ void dcd_init (uint8_t rhport)
// Enable reset and wait for it before continuing.
USBIE |= RSTRIE;
+ // Enable pullup.
+ USBCNF |= PUR_EN;
+
USBKEYPID = 0;
}