Hi Roger > >> > >> Here, we should be checking if user needs to disable any OTG > >> features. So, > >> > >> if (dev->of_node) > >> of_usb_update_otg_caps(dev->of_node, &otg->caps); > >> > >> Do you agree? > >> This means we need to change otg->caps from 'struct usb_otg_caps > *caps;' > >> to 'struct usb_otg_caps caps;' so that we can modify the local copy > >> instead of the one passed by the OTG controller. > > > > Why can't modify the one from OTG controller directly? > > > > There are 2 things. > 1) OTG features supported by hardware. This is the controller's config- > >otg_caps > 2) OTG features needed by system designer. This can be a subset of (1). Let's make things simple, we only need this subnet, which can be set by controller driver in config->otg_caps before pass (its address) to OTG core. So controller driver should get the capability of HW(+SW) and user config by whatever approach, then set its config->otg_caps. Li Jun -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html