diff mbox

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

Message ID 1421815892-13160-1-git-send-email-jy0922.shim@samsung.com
State Accepted
Delegated to: Minkyu Kang
Headers show

Commit Message

Joonyoung Shim Jan. 21, 2015, 4:51 a.m. UTC
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(-)

Comments

Minkyu Kang Feb. 13, 2015, 8:25 a.m. UTC | #1
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.
diff mbox

Patch

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)