[U-Boot] [PATCH] EXYNOS5: Add function to enable exynos5420 usbdev phy ctrl

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.shim@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)

On 21/01/15 13:51, Joonyoung Shim wrote:
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.shim@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)
applied to u-boot-samsung.
Thank, Minkyu Kang.
participants (2)
-
Joonyoung Shim
-
Minkyu Kang