On Wed, 2019-04-10 at 13:24 +0300, Heikki Krogerus wrote: > On Wed, Apr 03, 2019 at 10:09:14AM +0800, Chunfeng Yun wrote: > > +static int ssusb_role_sw_register(struct otg_switch_mtk *otg_sx) > > +{ > > + struct usb_role_switch_desc role_sx_desc = { 0 }; > > + struct ssusb_mtk *ssusb = > > + container_of(otg_sx, struct ssusb_mtk, otg_switch); > > + > > + if (!otg_sx->role_sw_used) > > + return 0; > > + > > + role_sx_desc.set = ssusb_role_sw_set; > > + role_sx_desc.get = ssusb_role_sw_get; > > role_sw_desc.fwnode = dev_fwnode(ssusb->dev); Ok, thanks > > > + otg_sx->role_sw = usb_role_switch_register(ssusb->dev, &role_sx_desc); > > + > > + return PTR_ERR_OR_ZERO(otg_sx->role_sw); > > +} > > thanks, >