summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2020-04-17 09:51:15 +0700
committerGitHub <[email protected]>2020-04-17 09:51:15 +0700
commit19e2eb66c0181581010d0e26f2a29bf52268ff73 (patch)
treeb61a5c3e8f123e2f22a63f3392c949ba10c4c5cd /src
parent9aa553ccc2e8977522202fa4e346a66a47c8e442 (diff)
parent3aaad8cd730d01a65065d9eb8b694221724151c3 (diff)
Merge pull request #350 from hathach/synopsys-msp430-dcd-disconnect-connect
Synopsys msp430 dcd disconnect connect
Diffstat (limited to 'src')
-rw-r--r--src/portable/espressif/esp32s2/dcd_esp32s2.c17
-rw-r--r--src/portable/sony/cxd56/dcd_cxd56.c12
-rw-r--r--src/portable/st/synopsys/dcd_synopsys.c21
-rw-r--r--src/portable/ti/msp430x5xx/dcd_msp430x5xx.c25
4 files changed, 59 insertions, 16 deletions
diff --git a/src/portable/espressif/esp32s2/dcd_esp32s2.c b/src/portable/espressif/esp32s2/dcd_esp32s2.c
index 126f3ea20..47c90fd13 100644
--- a/src/portable/espressif/esp32s2/dcd_esp32s2.c
+++ b/src/portable/espressif/esp32s2/dcd_esp32s2.c
@@ -190,9 +190,6 @@ void dcd_init(uint8_t rhport)
USB_ENUMDONEMSK_M |
USB_RESETDETMSK_M |
USB_DISCONNINTMSK_M;
-
- ESP_LOGV(TAG, "DCD init - Soft CONNECT");
- USB0.dctl &= ~USB_SFTDISCON_M; // Connect
}
void dcd_set_address(uint8_t rhport, uint8_t dev_addr)
@@ -216,18 +213,20 @@ void dcd_remote_wakeup(uint8_t rhport)
(void)rhport;
}
-// disconnect by disabling internal pull-up resistor on D+/D-
-void dcd_disconnect(uint8_t rhport)
-{
- USB0.dctl |= USB_SFTDISCON_M;
-}
-
// connect by enabling internal pull-up resistor on D+/D-
void dcd_connect(uint8_t rhport)
{
+ (void) rhport;
USB0.dctl &= ~USB_SFTDISCON_M;
}
+// disconnect by disabling internal pull-up resistor on D+/D-
+void dcd_disconnect(uint8_t rhport)
+{
+ (void) rhport;
+ USB0.dctl |= USB_SFTDISCON_M;
+}
+
/*------------------------------------------------------------------*/
/* DCD Endpoint port
*------------------------------------------------------------------*/
diff --git a/src/portable/sony/cxd56/dcd_cxd56.c b/src/portable/sony/cxd56/dcd_cxd56.c
index 320b7237e..57158838f 100644
--- a/src/portable/sony/cxd56/dcd_cxd56.c
+++ b/src/portable/sony/cxd56/dcd_cxd56.c
@@ -201,6 +201,18 @@ void dcd_remote_wakeup(uint8_t rhport)
DEV_WAKEUP(usbdev);
}
+#if 0 // TODO implement for Spresense
+void dcd_connect(uint8_t rhport)
+{
+ (void) rhport;
+}
+
+void dcd_disconnect(uint8_t rhport)
+{
+ (void) rhport;
+}
+#endif
+
//--------------------------------------------------------------------+
// Endpoint API
//--------------------------------------------------------------------+
diff --git a/src/portable/st/synopsys/dcd_synopsys.c b/src/portable/st/synopsys/dcd_synopsys.c
index dc752b37a..38c284c5a 100644
--- a/src/portable/st/synopsys/dcd_synopsys.c
+++ b/src/portable/st/synopsys/dcd_synopsys.c
@@ -209,10 +209,6 @@ void dcd_init (uint8_t rhport)
// Enable USB transceiver.
USB_OTG_FS->GCCFG |= USB_OTG_GCCFG_PWRDWN;
-
- // Soft Connect -> Enable pullup on D+/D-.
- // This step does not appear to be specified in the programmer's model.
- dev->DCTL &= ~USB_OTG_DCTL_SDIS;
}
void dcd_int_enable (uint8_t rhport)
@@ -250,6 +246,23 @@ void dcd_remote_wakeup(uint8_t rhport)
(void) rhport;
}
+void dcd_connect(uint8_t rhport)
+{
+ (void) rhport;
+ USB_OTG_DeviceTypeDef * dev = DEVICE_BASE;
+
+ dev->DCTL &= ~USB_OTG_DCTL_SDIS;
+}
+
+void dcd_disconnect(uint8_t rhport)
+{
+ (void) rhport;
+ USB_OTG_DeviceTypeDef * dev = DEVICE_BASE;
+
+ dev->DCTL |= USB_OTG_DCTL_SDIS;
+}
+
+
/*------------------------------------------------------------------*/
/* DCD Endpoint port
*------------------------------------------------------------------*/
diff --git a/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c b/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
index edccec33f..1512f0de4 100644
--- a/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
+++ b/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c
@@ -134,9 +134,6 @@ void dcd_init (uint8_t rhport)
// Enable reset and wait for it before continuing.
USBIE |= RSTRIE;
- // Enable pullup.
- USBCNF |= PUR_EN;
-
USBKEYPID = 0;
}
@@ -207,6 +204,28 @@ void dcd_remote_wakeup(uint8_t rhport)
(void) rhport;
}
+void dcd_connect(uint8_t rhport)
+{
+ dcd_int_disable(rhport);
+
+ USBKEYPID = USBKEY;
+ USBCNF |= PUR_EN; // Enable pullup.
+ USBKEYPID = 0;
+
+ dcd_int_enable(rhport);
+}
+
+void dcd_disconnect(uint8_t rhport)
+{
+ dcd_int_disable(rhport);
+
+ USBKEYPID = USBKEY;
+ USBCNF &= ~PUR_EN; // Disable pullup.
+ USBKEYPID = 0;
+
+ dcd_int_enable(rhport);
+}
+
/*------------------------------------------------------------------*/
/* DCD Endpoint port
*------------------------------------------------------------------*/