I'm not entirely sure what the version of the board is; on the back it says 700-28036 REV A, SCH-28036 REV D, (c) 2015 Freescale.
Ok, it looks like usb_host_board_init sets PTD8. However, it only does so for EHCI (high speed), and I was using KHCI (full speed).
/*"0" stands for USB_CONTROLLER_KHCI_0 */
if (0 == controller_id)
{
}
/*"2" stands for USB_CONTROLLER_EHCI_0 */
else if (2 ==controller_id)
{
/*configure the id pin */
/* Enable clock gating to all ports E*/
CLOCK_SYS_EnablePortClock(4);
PORT_HAL_SetMuxMode(PORTE,10UL,kPortMuxAlt7);
PORT_HAL_SetPullMode(PORTE,10UL,kPortPullUp);
PORT_HAL_SetPullCmd(PORTE,10UL,true);
/* Source the Ubus. Set PTD8 to high */
/* Enable clock gating to all ports D*/
CLOCK_SYS_EnablePortClock(3);
GPIO_DRV_Init(NULL, usbvbushostenablePin);
GPIO_DRV_WritePinOutput(kGpioUsbVbus, 1);
}
else
Once I started using USB_CONTROLLER_EHCI_0, it turns on the USB power and works correctly.