summaryrefslogtreecommitdiff
path: root/src/portable/nxp
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2021-08-24 12:28:41 +0700
committerGitHub <[email protected]>2021-08-24 12:28:41 +0700
commit9c3fdb8135f33dd3a1c8dfddaf8300e7416bd7af (patch)
tree42af87c301f9af724fb37c048310efa891ce6206 /src/portable/nxp
parentfc2ffed5c60513338188a36b66187b6b0ed35f93 (diff)
parent5d152503ee6c31c7cf3ad2dfeb9ac38c70c42bd4 (diff)
Merge pull request #1043 from hathach/more-host-improvement
More host improvement
Diffstat (limited to 'src/portable/nxp')
-rw-r--r--src/portable/nxp/transdimension/common_transdimension.h2
-rw-r--r--src/portable/nxp/transdimension/hcd_transdimension.c26
2 files changed, 10 insertions, 18 deletions
diff --git a/src/portable/nxp/transdimension/common_transdimension.h b/src/portable/nxp/transdimension/common_transdimension.h
index 7b94dac34..69074de41 100644
--- a/src/portable/nxp/transdimension/common_transdimension.h
+++ b/src/portable/nxp/transdimension/common_transdimension.h
@@ -127,7 +127,7 @@ typedef struct
__I uint32_t ENDPTSTAT; ///< Endpoint Status
__IO uint32_t ENDPTCOMPLETE; ///< Endpoint Complete
__IO uint32_t ENDPTCTRL[8]; ///< Endpoint Control 0 - 7
-} dcd_registers_t;
+} dcd_registers_t, hcd_registers_t;
#ifdef __cplusplus
}
diff --git a/src/portable/nxp/transdimension/hcd_transdimension.c b/src/portable/nxp/transdimension/hcd_transdimension.c
index db447ef23..d216f0728 100644
--- a/src/portable/nxp/transdimension/hcd_transdimension.c
+++ b/src/portable/nxp/transdimension/hcd_transdimension.c
@@ -43,7 +43,7 @@
#include "common/tusb_common.h"
#include "common_transdimension.h"
-#include "portable/ehci/hcd_ehci.h"
+#include "portable/ehci/ehci_api.h"
//--------------------------------------------------------------------+
// MACRO CONSTANT TYPEDEF
@@ -82,26 +82,26 @@ typedef struct
bool hcd_init(uint8_t rhport)
{
- dcd_registers_t* dcd_reg = (dcd_registers_t*) _hcd_controller[rhport].regs_base;
+ hcd_registers_t* hcd_reg = (hcd_registers_t*) _hcd_controller[rhport].regs_base;
// Reset controller
- dcd_reg->USBCMD |= USBCMD_RESET;
- while( dcd_reg->USBCMD & USBCMD_RESET ) {}
+ hcd_reg->USBCMD |= USBCMD_RESET;
+ while( hcd_reg->USBCMD & USBCMD_RESET ) {}
// Set mode to device, must be set immediately after reset
#if CFG_TUSB_MCU == OPT_MCU_LPC18XX || CFG_TUSB_MCU == OPT_MCU_LPC43XX
// LPC18XX/43XX need to set VBUS Power Select to HIGH
// RHPORT1 is fullspeed only (need external PHY for Highspeed)
- dcd_reg->USBMODE = USBMODE_CM_HOST | USBMODE_VBUS_POWER_SELECT;
- if (rhport == 1) dcd_reg->PORTSC1 |= PORTSC1_FORCE_FULL_SPEED;
+ hcd_reg->USBMODE = USBMODE_CM_HOST | USBMODE_VBUS_POWER_SELECT;
+ if (rhport == 1) hcd_reg->PORTSC1 |= PORTSC1_FORCE_FULL_SPEED;
#else
- dcd_reg->USBMODE = USBMODE_CM_HOST;
+ hcd_reg->USBMODE = USBMODE_CM_HOST;
#endif
// FIXME force full speed, still have issue with Highspeed enumeration
- dcd_reg->PORTSC1 |= PORTSC1_FORCE_FULL_SPEED;
+ hcd_reg->PORTSC1 |= PORTSC1_FORCE_FULL_SPEED;
- return hcd_ehci_init(rhport);
+ return ehci_init(rhport, (uint32_t) &hcd_reg->CAPLENGTH, (uint32_t) &hcd_reg->USBCMD);
}
void hcd_int_enable(uint8_t rhport)
@@ -114,12 +114,4 @@ void hcd_int_disable(uint8_t rhport)
NVIC_DisableIRQ(_hcd_controller[rhport].irqnum);
}
-uint32_t hcd_ehci_register_addr(uint8_t rhport)
-{
- dcd_registers_t* hcd_reg = (dcd_registers_t*) _hcd_controller[rhport].regs_base;
-
- // EHCI USBCMD has same address within dcd_register_t
- return (uint32_t) &hcd_reg->USBCMD;
-}
-
#endif