I'm trying to use the chipidea driver in device mode on an AR9331 SOC board.
I've got it mostly working but can't figure out how to enable vbus_active.
Some details - the system supports both host & device modes, but not OTG.
The mode is selected at startup and there are no OTG registers exposed. Also
no ID & VBUS pins are available - vbus is considered active all the time
(when in device mode).
Here's the excerpt from the ci_hdrc_platform_data init I've got so far:

        ci_pdata.name = "ci_hdrc_ar933x";
        ci_pdata.capoffset = DEF_CAPOFFSET;
        ci_pdata.dr_mode = dr_mode;
        ci_pdata.flags = CI_HDRC_DUAL_ROLE_NOT_OTG;
        ci_pdata.vbus_extcon.edev = ERR_PTR(-ENODEV);
        ci_pdata.id_extcon.edev = ERR_PTR(-ENODEV);
        ci_pdata.itc_setting = 1;

        phy = usb_phy_generic_register();

        ath79_usb_register("ci_hdrc", -1,
                           AR933X_EHCI_BASE, AR933X_EHCI_SIZE,
                           ATH79_CPU_IRQ(3),
                           &ci_pdata, sizeof(ci_pdata));


Browsing the commit history and current code it seems that the way to go is
registering a (simulated) vbus_extcon device with ci_handle_vbus_change then
making the switch. It doesn't work for this particular system because it
doesn't have OTG registers and ci->is_otg is false. Any pointers how to set
vbus_active appreciated. It used to work around 3.11, but the code changed
considerably since then.

Regards,
Svet.


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to