forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 297b60346df8beafee954a0fd7c2d64f33f3b9bc
kernel/drivers/usb/musb/mediatek.c
....@@ -115,9 +115,8 @@
115115 clk_disable_unprepare(glue->main);
116116 }
117117
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)
119119 {
120
- struct mtk_glue *glue = dev_get_drvdata(dev);
121120 struct musb *musb = glue->musb;
122121 u8 devctl = readb(musb->mregs + MUSB_DEVCTL);
123122 enum usb_role new_role;
....@@ -168,9 +167,14 @@
168167 return 0;
169168 }
170169
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)
172171 {
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);
174178
175179 return glue->role;
176180 }
....@@ -181,6 +185,8 @@
181185
182186 role_sx_desc.set = musb_usb_role_sx_set;
183187 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;
184190 glue->role_sw = usb_role_switch_register(glue->dev, &role_sx_desc);
185191
186192 return PTR_ERR_OR_ZERO(glue->role_sw);
....@@ -293,8 +299,7 @@
293299 return -EINVAL;
294300 }
295301
296
- glue->role = new_role;
297
- musb_usb_role_sx_set(dev, glue->role);
302
+ mtk_otg_switch_set(glue, new_role);
298303 return 0;
299304 }
300305
....@@ -449,7 +454,7 @@
449454 struct platform_device_info pinfo;
450455 struct device *dev = &pdev->dev;
451456 struct device_node *np = dev->of_node;
452
- int ret = -ENOMEM;
457
+ int ret;
453458
454459 glue = devm_kzalloc(dev, sizeof(*glue), GFP_KERNEL);
455460 if (!glue)
....@@ -513,8 +518,8 @@
513518
514519 glue->xceiv = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
515520 if (IS_ERR(glue->xceiv)) {
516
- dev_err(dev, "fail to getting usb-phy %d\n", ret);
517521 ret = PTR_ERR(glue->xceiv);
522
+ dev_err(dev, "fail to getting usb-phy %d\n", ret);
518523 goto err_unregister_usb_phy;
519524 }
520525