I'm working with the custom board, that has imx283, and USB0 circuit same as iMX28 EVK, except that USB0_ID signal is router to a different pin of the micro-controller. On the EVK (288) it goes to PINID_AUART1_RTS, but there are no such pin on the 283 series. So it is router to the PINID_PWM2.
I changed pin mapping in the mx28evk_pins.c to this:
.name = "usb0_id",
.id = PINID_GPMI_RDY0,
.fun = PIN_FUN3,
.data = 1,
.pull = 1,
.pullup = 1,
Then I rebuild the kernel, and tried to make USB0-OTG work as a device, using g_serial module, with no luck. It simply didn't worked, not a sign of any USB activity on Host (my PC) or Device (imx283) side. I also tried PINID_PWM2/PIN_FUN2 with same results.
USB-OTG in a device mode works just fine, on imx28-EVK, when I use same kernel with USB0_ID pin mapped to PINID_AUART1_RTS.
Does anybody know if there are other places/definitions that needs to be changed, when moving USB0_ID functionality to a different pin?
I've spent couple days reviewing USB source code, trying to find a hard-coded reference to this pin, IRQ/DMA setup that could be affected by moving the pin, and haven't found anything.