|
@@ -157,6 +157,10 @@ static int sun4i_usb_phy_init(struct phy *_phy)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+ /* Enable USB 45 Ohm resistor calibration */
|
|
|
+ if (phy->index == 0)
|
|
|
+ sun4i_usb_phy_write(phy, PHY_RES45_CAL_EN, 0x01, 1);
|
|
|
+
|
|
|
/* Adjust PHY's magnitude and rate */
|
|
|
sun4i_usb_phy_write(phy, PHY_TX_AMPLITUDE_TUNE, 0x14, 5);
|
|
|
|
|
@@ -213,7 +217,7 @@ static struct phy *sun4i_usb_phy_xlate(struct device *dev,
|
|
|
{
|
|
|
struct sun4i_usb_phy_data *data = dev_get_drvdata(dev);
|
|
|
|
|
|
- if (WARN_ON(args->args[0] == 0 || args->args[0] >= data->num_phys))
|
|
|
+ if (args->args[0] >= data->num_phys)
|
|
|
return ERR_PTR(-ENODEV);
|
|
|
|
|
|
return data->phys[args->args[0]].phy;
|
|
@@ -255,8 +259,7 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
|
|
|
if (IS_ERR(data->base))
|
|
|
return PTR_ERR(data->base);
|
|
|
|
|
|
- /* Skip 0, 0 is the phy for otg which is not yet supported. */
|
|
|
- for (i = 1; i < data->num_phys; i++) {
|
|
|
+ for (i = 0; i < data->num_phys; i++) {
|
|
|
struct sun4i_usb_phy *phy = data->phys + i;
|
|
|
char name[16];
|
|
|
|