Exynos5420 has different registers with other exynos5 SoCs to control
usb device phy, so need separated function to enable exynos5420 usb
device phy.

Signed-off-by: Joonyoung Shim <jy0922.s...@samsung.com>
---
I used "usbdev" instead of "usbdrd" on function name because registers
name prefix is usbdev_.

 arch/arm/cpu/armv7/exynos/power.c | 28 ++++++++++++++++++++++++++--
 1 file changed, 26 insertions(+), 2 deletions(-)

diff --git a/arch/arm/cpu/armv7/exynos/power.c 
b/arch/arm/cpu/armv7/exynos/power.c
index 1520d64..1b12051 100644
--- a/arch/arm/cpu/armv7/exynos/power.c
+++ b/arch/arm/cpu/armv7/exynos/power.c
@@ -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)
-- 
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to