Example #1
0
int s5p_usb_phy_resume(struct platform_device *pdev, int type)
{
	int ret = 0;

	if (exynos_usb_phy_clock_enable(pdev))
		return 0;

	mutex_lock(&phy_lock);
	if (usb_phy_control.flags)
		goto done;

	if (type == S5P_USB_PHY_HOST) {
		if (soc_is_exynos4210() ||
			soc_is_exynos4212() ||
			soc_is_exynos4412())
			ret = exynos4_usb_phy1_resume(pdev);
		else
			ret = exynos5_usb_phy_host_resume(pdev);
	}
done:
	if (!strcmp(pdev->name, "s5p-ehci"))
		set_bit(HOST_PHY_EHCI, &usb_phy_control.flags);
	else if (!strcmp(pdev->name, "s5p-ohci"))
		set_bit(HOST_PHY_OHCI, &usb_phy_control.flags);

	mutex_unlock(&phy_lock);
	exynos_usb_phy_clock_disable(pdev);

	return ret;
}
Example #2
0
int s5p_usb_phy_resume(struct platform_device *pdev, int type)
{
	if (type == S5P_USB_PHY_HOST)
		return exynos4_usb_phy1_resume(pdev);

	return -EINVAL;
}
int s5p_usb_phy_resume(struct platform_device *pdev, int type)
{
    int ret = 0;
#ifdef CONFIG_USB_OHCI_S5P
    u32 phyclk;
#endif
    if (exynos_usb_phy_clock_enable(pdev))
        return 0;

    mutex_lock(&phy_lock);

    if (usb_phy_control.flags)
        goto done;

    if (type == S5P_USB_PHY_HOST) {
        if (soc_is_exynos4210() ||
                soc_is_exynos4212() ||
                soc_is_exynos4412()) {
#ifdef CONFIG_USB_OHCI_S5P
            phyclk = readl(EXYNOS4_PHYCLK);
            phyclk |= PHY1_COMMON_ON_N;
            writel(phyclk, EXYNOS4_PHYCLK);
#endif
            ret = exynos4_usb_phy1_resume(pdev);
        } else
            ret = exynos5_usb_phy_host_resume(pdev);
    }
done:
    if (!strcmp(pdev->name, "s5p-ehci"))
        set_bit(HOST_PHY_EHCI, &usb_phy_control.flags);
    else if (!strcmp(pdev->name, "s5p-ohci"))
        set_bit(HOST_PHY_OHCI, &usb_phy_control.flags);

    mutex_unlock(&phy_lock);
    exynos_usb_phy_clock_disable(pdev);

    return ret;
}