.. | .. |
---|
115 | 115 | clk_disable_unprepare(glue->main); |
---|
116 | 116 | } |
---|
117 | 117 | |
---|
118 | | -static int musb_usb_role_sx_set(struct device *dev, enum usb_role role) |
---|
| 118 | +static int mtk_otg_switch_set(struct mtk_glue *glue, enum usb_role role) |
---|
119 | 119 | { |
---|
120 | | - struct mtk_glue *glue = dev_get_drvdata(dev); |
---|
121 | 120 | struct musb *musb = glue->musb; |
---|
122 | 121 | u8 devctl = readb(musb->mregs + MUSB_DEVCTL); |
---|
123 | 122 | enum usb_role new_role; |
---|
.. | .. |
---|
168 | 167 | return 0; |
---|
169 | 168 | } |
---|
170 | 169 | |
---|
171 | | -static enum usb_role musb_usb_role_sx_get(struct device *dev) |
---|
| 170 | +static int musb_usb_role_sx_set(struct usb_role_switch *sw, enum usb_role role) |
---|
172 | 171 | { |
---|
173 | | - struct mtk_glue *glue = dev_get_drvdata(dev); |
---|
| 172 | + return mtk_otg_switch_set(usb_role_switch_get_drvdata(sw), role); |
---|
| 173 | +} |
---|
| 174 | + |
---|
| 175 | +static enum usb_role musb_usb_role_sx_get(struct usb_role_switch *sw) |
---|
| 176 | +{ |
---|
| 177 | + struct mtk_glue *glue = usb_role_switch_get_drvdata(sw); |
---|
174 | 178 | |
---|
175 | 179 | return glue->role; |
---|
176 | 180 | } |
---|
.. | .. |
---|
181 | 185 | |
---|
182 | 186 | role_sx_desc.set = musb_usb_role_sx_set; |
---|
183 | 187 | role_sx_desc.get = musb_usb_role_sx_get; |
---|
| 188 | + role_sx_desc.fwnode = dev_fwnode(glue->dev); |
---|
| 189 | + role_sx_desc.driver_data = glue; |
---|
184 | 190 | glue->role_sw = usb_role_switch_register(glue->dev, &role_sx_desc); |
---|
185 | 191 | |
---|
186 | 192 | return PTR_ERR_OR_ZERO(glue->role_sw); |
---|
.. | .. |
---|
293 | 299 | return -EINVAL; |
---|
294 | 300 | } |
---|
295 | 301 | |
---|
296 | | - glue->role = new_role; |
---|
297 | | - musb_usb_role_sx_set(dev, glue->role); |
---|
| 302 | + mtk_otg_switch_set(glue, new_role); |
---|
298 | 303 | return 0; |
---|
299 | 304 | } |
---|
300 | 305 | |
---|
.. | .. |
---|
449 | 454 | struct platform_device_info pinfo; |
---|
450 | 455 | struct device *dev = &pdev->dev; |
---|
451 | 456 | struct device_node *np = dev->of_node; |
---|
452 | | - int ret = -ENOMEM; |
---|
| 457 | + int ret; |
---|
453 | 458 | |
---|
454 | 459 | glue = devm_kzalloc(dev, sizeof(*glue), GFP_KERNEL); |
---|
455 | 460 | if (!glue) |
---|
.. | .. |
---|
513 | 518 | |
---|
514 | 519 | glue->xceiv = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2); |
---|
515 | 520 | if (IS_ERR(glue->xceiv)) { |
---|
516 | | - dev_err(dev, "fail to getting usb-phy %d\n", ret); |
---|
517 | 521 | ret = PTR_ERR(glue->xceiv); |
---|
| 522 | + dev_err(dev, "fail to getting usb-phy %d\n", ret); |
---|
518 | 523 | goto err_unregister_usb_phy; |
---|
519 | 524 | } |
---|
520 | 525 | |
---|