mirror of
https://github.com/hathach/tinyusb.git
synced 2025-03-28 05:37:15 +00:00
clean up code
This commit is contained in:
parent
530b0099a5
commit
ed1b670c55
@ -243,7 +243,7 @@ static void bus_reset(uint8_t rhport)
|
|||||||
usb_otg->GINTMSK |= USB_OTG_GINTMSK_OEPINT | USB_OTG_GINTMSK_IEPINT;
|
usb_otg->GINTMSK |= USB_OTG_GINTMSK_OEPINT | USB_OTG_GINTMSK_IEPINT;
|
||||||
}
|
}
|
||||||
|
|
||||||
// speed is native DCD speed
|
// Set turn-around timeout according to link speed
|
||||||
static void set_turnaround(USB_OTG_GlobalTypeDef * usb_otg, tusb_speed_t speed)
|
static void set_turnaround(USB_OTG_GlobalTypeDef * usb_otg, tusb_speed_t speed)
|
||||||
{
|
{
|
||||||
usb_otg->GUSBCFG &= ~USB_OTG_GUSBCFG_TRDT;
|
usb_otg->GUSBCFG &= ~USB_OTG_GUSBCFG_TRDT;
|
||||||
@ -368,47 +368,40 @@ void dcd_init (uint8_t rhport)
|
|||||||
#if TUD_OPT_HIGH_SPEED // TODO may pass parameter instead of using macro for HighSpeed
|
#if TUD_OPT_HIGH_SPEED // TODO may pass parameter instead of using macro for HighSpeed
|
||||||
if ( rhport == 1 )
|
if ( rhport == 1 )
|
||||||
{
|
{
|
||||||
|
// On selected MCUs HS port1 can be used with external PHY via ULPI interface
|
||||||
|
|
||||||
// deactivate internal PHY
|
// deactivate internal PHY
|
||||||
usb_otg->GCCFG &= ~USB_OTG_GCCFG_PWRDWN;
|
usb_otg->GCCFG &= ~USB_OTG_GCCFG_PWRDWN;
|
||||||
|
|
||||||
// TODO may pass parameter instead of using macro for HighSpeed
|
|
||||||
#if defined(USB_HS_PHYC)
|
|
||||||
// Highspeed with embedded UTMI PHYC
|
|
||||||
// Init The UTMI Interface
|
// Init The UTMI Interface
|
||||||
usb_otg->GUSBCFG &= ~(USB_OTG_GUSBCFG_TSDPS | USB_OTG_GUSBCFG_ULPIFSLS | USB_OTG_GUSBCFG_PHYSEL);
|
usb_otg->GUSBCFG &= ~(USB_OTG_GUSBCFG_TSDPS | USB_OTG_GUSBCFG_ULPIFSLS | USB_OTG_GUSBCFG_PHYSEL);
|
||||||
|
|
||||||
// Select vbus source
|
|
||||||
usb_otg->GUSBCFG &= ~(USB_OTG_GUSBCFG_ULPIEVBUSD | USB_OTG_GUSBCFG_ULPIEVBUSI);
|
|
||||||
|
|
||||||
// Select UTMI Interace
|
|
||||||
usb_otg->GUSBCFG &= ~USB_OTG_GUSBCFG_ULPI_UTMI_SEL;
|
|
||||||
usb_otg->GCCFG |= USB_OTG_GCCFG_PHYHSEN;
|
|
||||||
|
|
||||||
//Enables control of a High Speed USB PHY
|
|
||||||
USB_HS_PHYCInit();
|
|
||||||
|
|
||||||
// Disable external VBUS detection
|
|
||||||
usb_otg->GUSBCFG &= ~USB_OTG_GUSBCFG_ULPIEVBUSD;
|
|
||||||
|
|
||||||
# else// On selected MCUs HS port1 can be used with external PHY via ULPI interface
|
|
||||||
// Highspeed with external ULPI PHY
|
|
||||||
|
|
||||||
// Init ULPI Interface
|
|
||||||
usb_otg->GUSBCFG &= ~(USB_OTG_GUSBCFG_TSDPS | USB_OTG_GUSBCFG_ULPIFSLS | USB_OTG_GUSBCFG_PHYSEL);
|
|
||||||
|
|
||||||
// Select default internal VBUS Indicator and Drive for ULPI
|
// Select default internal VBUS Indicator and Drive for ULPI
|
||||||
usb_otg->GUSBCFG &= ~(USB_OTG_GUSBCFG_ULPIEVBUSD | USB_OTG_GUSBCFG_ULPIEVBUSI);
|
usb_otg->GUSBCFG &= ~(USB_OTG_GUSBCFG_ULPIEVBUSD | USB_OTG_GUSBCFG_ULPIEVBUSI);
|
||||||
|
|
||||||
|
#if defined(USB_HS_PHYC)
|
||||||
|
// Highspeed with embedded UTMI PHYC
|
||||||
|
|
||||||
|
// Select UTMI Interface
|
||||||
|
usb_otg->GUSBCFG &= ~USB_OTG_GUSBCFG_ULPI_UTMI_SEL;
|
||||||
|
usb_otg->GCCFG |= USB_OTG_GCCFG_PHYHSEN;
|
||||||
|
|
||||||
|
// Enables control of a High Speed USB PHY
|
||||||
|
USB_HS_PHYCInit();
|
||||||
|
|
||||||
|
// Disable external VBUS detection
|
||||||
|
usb_otg->GUSBCFG &= ~USB_OTG_GUSBCFG_ULPIEVBUSD;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Highspeed with external ULPI PHY
|
||||||
set_turnaround(usb_otg, TUSB_SPEED_HIGH);
|
set_turnaround(usb_otg, TUSB_SPEED_HIGH);
|
||||||
# endif
|
} else
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
set_turnaround(usb_otg, TUSB_SPEED_FULL);
|
|
||||||
|
|
||||||
// Enable internal PHY
|
// Enable internal PHY
|
||||||
usb_otg->GUSBCFG |= USB_OTG_GUSBCFG_PHYSEL;
|
usb_otg->GUSBCFG |= USB_OTG_GUSBCFG_PHYSEL;
|
||||||
|
|
||||||
|
set_turnaround(usb_otg, TUSB_SPEED_FULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reset core after selecting PHY
|
// Reset core after selecting PHY
|
||||||
@ -434,20 +427,17 @@ void dcd_init (uint8_t rhport)
|
|||||||
// (non zero-length packet), send STALL back and discard.
|
// (non zero-length packet), send STALL back and discard.
|
||||||
dev->DCFG |= USB_OTG_DCFG_NZLSOHSK;
|
dev->DCFG |= USB_OTG_DCFG_NZLSOHSK;
|
||||||
|
|
||||||
#if TUD_OPT_HIGH_SPEED
|
// Clear speed bits
|
||||||
|
dev->DCFG &= ~(3 << USB_OTG_DCFG_DSPD_Pos);
|
||||||
|
|
||||||
if ( rhport == 1 )
|
if ( rhport == 1 )
|
||||||
{
|
{
|
||||||
// high speed = 0x00
|
if ( !TUD_OPT_HIGH_SPEED ) dev->DCFG |= ((TUD_OPT_HIGH_SPEED ? DCD_HIGH_SPEED : DCD_FULL_SPEED_USE_HS) << USB_OTG_DCFG_DSPD_Pos);
|
||||||
dev->DCFG &= ~(3 << USB_OTG_DCFG_DSPD_Pos);
|
|
||||||
|
|
||||||
// Transceiver delay, necessary for some ULPI PHYs
|
|
||||||
//dev->DCFG |= (1 << 14);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
// full speed with internal PHY
|
// full speed = 0x03
|
||||||
dev->DCFG |= (3 << USB_OTG_DCFG_DSPD_Pos);
|
dev->DCFG |= (DCD_FULL_SPEED << USB_OTG_DCFG_DSPD_Pos);
|
||||||
|
|
||||||
// Enable internal USB transceiver.
|
// Enable internal USB transceiver.
|
||||||
usb_otg->GCCFG |= USB_OTG_GCCFG_PWRDWN;
|
usb_otg->GCCFG |= USB_OTG_GCCFG_PWRDWN;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user