Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetoot...
[cascardo/linux.git] / drivers / phy / phy-sun4i-usb.c
index 61ebea4..fb02a67 100644 (file)
@@ -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];
 
@@ -295,7 +298,7 @@ static int sun4i_usb_phy_probe(struct platform_device *pdev)
                                return PTR_ERR(phy->pmu);
                }
 
-               phy->phy = devm_phy_create(dev, NULL, &sun4i_usb_phy_ops, NULL);
+               phy->phy = devm_phy_create(dev, NULL, &sun4i_usb_phy_ops);
                if (IS_ERR(phy->phy)) {
                        dev_err(dev, "failed to create PHY %d\n", i);
                        return PTR_ERR(phy->phy);
@@ -325,7 +328,6 @@ static struct platform_driver sun4i_usb_phy_driver = {
        .driver = {
                .of_match_table = sun4i_usb_phy_of_match,
                .name  = "sun4i-usb-phy",
-               .owner = THIS_MODULE,
        }
 };
 module_platform_driver(sun4i_usb_phy_driver);