add dcd_get_microframe()

This commit is contained in:
hathach
2018-12-17 12:14:11 +07:00
parent 455da57f9d
commit 902697ca07
10 changed files with 58 additions and 23 deletions

View File

@@ -165,6 +165,13 @@ void dcd_set_address(uint8_t rhport, uint8_t dev_addr)
LPC_USB->DEVCMDSTAT |= dev_addr;
}
uint32_t dcd_get_microframe(uint8_t rhport)
{
(void) rhport;
return (LPC_USB->INFO & (TU_BIT(11) - 1)) << 3;
}
bool dcd_init(uint8_t rhport)
{
(void) rhport;

View File

@@ -227,6 +227,12 @@ void dcd_set_config(uint8_t rhport, uint8_t config_num)
sie_write(SIE_CMDCODE_CONFIGURE_DEVICE, 1, 1);
}
uint32_t dcd_get_microframe(uint8_t rhport)
{
(void) rhport;
return ((uint32_t) sie_read(SIE_CMDCODE_READ_FRAME_NUMBER)) << 3;
}
//--------------------------------------------------------------------+
// CONTROL HELPER
//--------------------------------------------------------------------+

View File

@@ -92,17 +92,6 @@ static dcd_data_t* const dcd_data_ptr[2] =
//--------------------------------------------------------------------+
// CONTROLLER API
//--------------------------------------------------------------------+
void dcd_set_address(uint8_t rhport, uint8_t dev_addr)
{
LPC_USB[rhport]->DEVICEADDR = (dev_addr << 25) | TU_BIT(24);
}
void dcd_set_config(uint8_t rhport, uint8_t config_num)
{
(void) rhport;
(void) config_num;
// nothing to do
}
/// follows LPC43xx User Manual 23.10.3
static void bus_reset(uint8_t rhport)
@@ -173,6 +162,23 @@ void dcd_int_disable(uint8_t rhport)
NVIC_DisableIRQ(rhport ? USB1_IRQn : USB0_IRQn);
}
void dcd_set_address(uint8_t rhport, uint8_t dev_addr)
{
LPC_USB[rhport]->DEVICEADDR = (dev_addr << 25) | TU_BIT(24);
}
void dcd_set_config(uint8_t rhport, uint8_t config_num)
{
(void) rhport;
(void) config_num;
// nothing to do
}
uint32_t dcd_get_microframe(uint8_t rhport)
{
return LPC_USB[rhport]->FRINDEX_D;
}
//--------------------------------------------------------------------+
// HELPER
//--------------------------------------------------------------------+