- rk3288_cru_set_soft_reset(RK3288_SOFT_RST_USBHOST0_H, true);
- rk3288_cru_set_soft_reset(RK3288_SOFT_RST_USBHOST0PHY, true);
- rk3288_cru_set_soft_reset(RK3288_SOFT_RST_USBHOST0C, true);
- rk3288_cru_set_soft_reset(RK3288_SOFT_RST_USB_HOST0, true);
- udelay(5);
+ struct rkehci_platform_data *usbpdata = pdata;
+ struct reset_control *rst_host0_h, *rst_host0_p,
+ *rst_host0_c , *rst_host0;
+
+ rst_host0_h = devm_reset_control_get(usbpdata->dev, "ehci_ahb");
+ rst_host0_p = devm_reset_control_get(usbpdata->dev, "ehci_phy");
+ rst_host0_c = devm_reset_control_get(usbpdata->dev, "ehci_controller");
+ rst_host0 = devm_reset_control_get(usbpdata->dev, "ehci");
+ if (IS_ERR(rst_host0_h) || IS_ERR(rst_host0_p) ||
+ IS_ERR(rst_host0_c) || IS_ERR(rst_host0)) {
+ dev_err(usbpdata->dev, "Fail to get reset control from dts\n");
+ return;
+ }