Merge branch 'master' of git://git.denx.de/u-boot
[platform/kernel/u-boot.git] / arch / arm / cpu / armv7 / exynos / power.c
index 1520d64..1b12051 100644 (file)
@@ -102,10 +102,34 @@ static void exynos5_set_usbdrd_phy_ctrl(unsigned int enable)
        }
 }
 
+static void exynos5420_set_usbdev_phy_ctrl(unsigned int enable)
+{
+       struct exynos5420_power *power =
+               (struct exynos5420_power *)samsung_get_base_power();
+
+       if (enable) {
+               /* Enabling USBDEV_PHY */
+               setbits_le32(&power->usbdev_phy_control,
+                               POWER_USB_DRD_PHY_CTRL_EN);
+               setbits_le32(&power->usbdev1_phy_control,
+                               POWER_USB_DRD_PHY_CTRL_EN);
+       } else {
+               /* Disabling USBDEV_PHY */
+               clrbits_le32(&power->usbdev_phy_control,
+                               POWER_USB_DRD_PHY_CTRL_EN);
+               clrbits_le32(&power->usbdev1_phy_control,
+                               POWER_USB_DRD_PHY_CTRL_EN);
+       }
+}
+
 void set_usbdrd_phy_ctrl(unsigned int enable)
 {
-       if (cpu_is_exynos5())
-               exynos5_set_usbdrd_phy_ctrl(enable);
+       if (cpu_is_exynos5()) {
+               if (proid_is_exynos5420() || proid_is_exynos5800())
+                       exynos5420_set_usbdev_phy_ctrl(enable);
+               else
+                       exynos5_set_usbdrd_phy_ctrl(enable);
+       }
 }
 
 static void exynos5_dp_phy_control(unsigned int enable)