Hi Alex, At current chipidea driver, we have not implemented struct usb_otg, so when udc calls otg_set_peripheral, it will fail. (udc_start at drivers/usb/chipidea/udc.c). In fact, if both host and device use chipidea driver, we do not need to call otg_set_peripheral at all at current chipidea framework. To fix it, a better solution is to add otg.c to implement struct usb_otg, but we also need to consider qualcomm (msm)'s driver, which also uses chipidea, but has its own host and otg driver. What's your opinion? Best regards, Peter Chen MAD Linux BSP Team Freescale Semiconductor Ltd. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html