/* Sends an LPM request to a device at a specified address and endpoint number. */
void USBHostLPMSend(uint32_t ui32Base, uint32_t ui32Address, uint32_t ui32Endpoint)
/* Sends an LPM request to a device at a specified address and endpoint number. */
void USBHostLPMSend(uint32_t ui32Base, uint32_t ui32Address, uint32_t ui32Endpoint)
{
    uint32_t ui32Reg;
    ASSERT(ui32Base == USB0_BASE);
    ASSERT(ui32Address < 127);
    HWREGB(ui32Base + USB_O_LPMFADDR) = ui32Address;
    ui32Reg = HWREGH(ui32Base + USB_O_LPMATTR) & ~USB_LPMATTR_ENDPT_M;
    ui32Reg |= (USBEPToIndex(ui32Endpoint) << USB_LPMATTR_ENDPT_S);
    HWREGH(ui32Base + USB_O_LPMATTR) = ui32Reg;
    HWREGB(ui32Base + USB_O_LPMCNTRL) |= USB_LPMCNTRL_TXLPM;
}