> > I've encountered an odd situation where the CI Dual Role driver hard locks the > kernel on the Ouya (Tegra 3). > I was attempting to set up manual mode switching in the kernel, as the Ouya lacks > hardware support for the ID pin and no voltage output on that port. > I found that the kernel was hard locking whenever I had the dr_mode = "otg" set in > the devicetree. It seems Tegra doesn't support host mode using chipidea driver. The ci_hdrc_tegra.c only supports device mode. Thierry, could you confirm that? Peter > No further output was seen on the console, and sysreq does not respond. > It occurs both in module and builtin mode. > > I have however found a workaround. > By setting the dual role usb device to: > compatible = "nvidia,tegra30-ehci", "nvidia,tegra30-udc"; and setting the assigned > phy to: > dr_mode = "peripheral"; > I can achieve rudimentary live switching of roles. > The device defaults to host mode, as the ehci driver enumerates first. > By unbinding the tegra-ehci driver and binding the tegra-udc driver, I can switch to > gadget mode. > The reverse also works. > The PHY driver does not appear to care if it is always in peripheral mode. > > Thank you for your time, > Peter Geis