Hi, On Thu, Sep 25, 2014 at 03:21:47PM +0800, Huang Rui wrote: > This patch implemented a feature to dynamic switch to host or device > role under debugfs for some physical limitation that unable to > leverage connector A/B cables (ID pin) to change roles. > > The default role should be set as OTG mode. Then use below commands: > > [1] switch to host: > echo host > /sys/kernel/debug/dwc3.0.auto/mode > > [2] switch to device: > echo device > /sys/kernel/debug/dwc3.0.auto/mode > > [3] switch to otg (default mode): > echo otg > /sys/kernel/debug/dwc3.0.auto/mode thanks, but not thanks. This is not how things should be done. > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 6138c5d..7b50584 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -61,7 +61,7 @@ void dwc3_set_mode(struct dwc3 *dwc, u32 mode) > * dwc3_core_soft_reset - Issues core soft reset and PHY reset > * @dwc: pointer to our context structure > */ > -static int dwc3_core_soft_reset(struct dwc3 *dwc) > +int dwc3_core_soft_reset(struct dwc3 *dwc) this should not be exposed. > @@ -228,7 +228,7 @@ static int dwc3_alloc_event_buffers(struct dwc3 *dwc, unsigned length) > * > * Returns 0 on success otherwise negative errno. > */ > -static int dwc3_event_buffers_setup(struct dwc3 *dwc) > +int dwc3_event_buffers_setup(struct dwc3 *dwc) this should not be exposed. > diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h > index a1c7dc5..3a30f33 100644 > --- a/drivers/usb/dwc3/core.h > +++ b/drivers/usb/dwc3/core.h > @@ -643,6 +643,8 @@ struct dwc3_scratchpad_array { > * @maximum_speed: maximum speed requested (mainly for testing purposes) > * @revision: revision register contents > * @quirks: represents different SOCs hardware work-arounds and quirks > + * @has_gadget: true when gadget is initialized > + * @has_xhci: true when xhci is initialized you shouldn't need these. > diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c > index 9ac37fe..76384df 100644 > --- a/drivers/usb/dwc3/debugfs.c > +++ b/drivers/usb/dwc3/debugfs.c > @@ -32,6 +32,7 @@ > #include "gadget.h" > #include "io.h" > #include "debug.h" > +#include "drd.h" and debugfs is definitely *not* the way to get this going. What you need here is something to talk to usbcore and udc-core and orchestrate the mode change through usb_add_hcd()/usb_add_gadget_udc() and their counterparts. George Cherian is already working on a version of that. -- balbi
Attachment:
signature.asc
Description: Digital signature