Hi, On 09/06/16 15:34, Sergei Shtylyov wrote: > On 6/9/2016 10:53 AM, Roger Quadros wrote: > >> It provides APIs for the following tasks >> >> - Registering an OTG/dual-role capable controller >> - Registering Host and Gadget controllers to OTG core >> - Providing inputs to and kicking the OTG state machine >> >> Provide a dual-role device (DRD) state machine. >> DRD mode is a reduced functionality OTG mode. In this mode >> we don't support SRP, HNP and dynamic role-swap. >> >> In DRD operation, the controller mode (Host or Peripheral) >> is decided based on the ID pin status. Once a cable plug (Type-A >> or Type-B) is attached the controller selects the state >> and doesn't change till the cable in unplugged and a different >> cable type is inserted. >> >> As we don't need most of the complex OTG states and OTG timers >> we implement a lean DRD state machine in usb-otg.c. >> The DRD state machine is only interested in 2 hardware inputs >> 'id' and 'b_sess_vld'. >> >> Signed-off-by: Roger Quadros <rogerq@xxxxxx> > <snip> > [...] >> +/** >> + * usb_otg_register_gadget - Register the gadget controller to OTG core >> + * @gadget: gadget controller > > We call that USB device controller (UDC). I'm not sure what you meant here... > And what about the 2nd arg, 'ops'? There are 2 data structures representing the Device controller. struct usb_gadget - represents a usb slave device struct usb_udc -struct usb_udc - describes one usb device controller usb_udc is for private use only. usb_otg_register_gadget() takes struct usb_gadget as argument. Do you want me to refer to struct usb_gadget as UDC? What is wrong with calling it gadget controller? -- cheers, -roger -- 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