Commit 1b635f0f authored by Tomasz Figa's avatar Tomasz Figa Committed by Felipe Balbi

usb: phy: samsung: Add support for USB 2.0 PHY on Exynos 4x12

This patch adds driver data for Exynos 4x12 USB 2.0 PHY.
Signed-off-by: default avatarTomasz Figa <t.figa@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 84035f09
...@@ -241,6 +241,7 @@ ...@@ -241,6 +241,7 @@
enum samsung_cpu_type { enum samsung_cpu_type {
TYPE_S3C64XX, TYPE_S3C64XX,
TYPE_EXYNOS4210, TYPE_EXYNOS4210,
TYPE_EXYNOS4X12,
TYPE_EXYNOS5250, TYPE_EXYNOS5250,
}; };
......
...@@ -177,6 +177,7 @@ static void samsung_usb2phy_enable(struct samsung_usbphy *sphy) ...@@ -177,6 +177,7 @@ static void samsung_usb2phy_enable(struct samsung_usbphy *sphy)
rstcon |= RSTCON_SWRST; rstcon |= RSTCON_SWRST;
break; break;
case TYPE_EXYNOS4210: case TYPE_EXYNOS4210:
case TYPE_EXYNOS4X12:
phypwr &= ~PHYPWR_NORMAL_MASK_PHY0; phypwr &= ~PHYPWR_NORMAL_MASK_PHY0;
rstcon |= RSTCON_SWRST; rstcon |= RSTCON_SWRST;
default: default:
...@@ -240,6 +241,7 @@ static void samsung_usb2phy_disable(struct samsung_usbphy *sphy) ...@@ -240,6 +241,7 @@ static void samsung_usb2phy_disable(struct samsung_usbphy *sphy)
phypwr |= PHYPWR_NORMAL_MASK; phypwr |= PHYPWR_NORMAL_MASK;
break; break;
case TYPE_EXYNOS4210: case TYPE_EXYNOS4210:
case TYPE_EXYNOS4X12:
phypwr |= PHYPWR_NORMAL_MASK_PHY0; phypwr |= PHYPWR_NORMAL_MASK_PHY0;
default: default:
break; break;
...@@ -451,6 +453,16 @@ static const struct samsung_usbphy_drvdata usb2phy_exynos4 = { ...@@ -451,6 +453,16 @@ static const struct samsung_usbphy_drvdata usb2phy_exynos4 = {
.phy_disable = samsung_usb2phy_disable, .phy_disable = samsung_usb2phy_disable,
}; };
static const struct samsung_usbphy_drvdata usb2phy_exynos4x12 = {
.cpu_type = TYPE_EXYNOS4X12,
.devphy_en_mask = EXYNOS_USBPHY_ENABLE,
.hostphy_en_mask = EXYNOS_USBPHY_ENABLE,
.rate_to_clksel = samsung_usbphy_rate_to_clksel_4x12,
.set_isolation = samsung_usbphy_set_isolation_4210,
.phy_enable = samsung_usb2phy_enable,
.phy_disable = samsung_usb2phy_disable,
};
static struct samsung_usbphy_drvdata usb2phy_exynos5 = { static struct samsung_usbphy_drvdata usb2phy_exynos5 = {
.cpu_type = TYPE_EXYNOS5250, .cpu_type = TYPE_EXYNOS5250,
.hostphy_en_mask = EXYNOS_USBPHY_ENABLE, .hostphy_en_mask = EXYNOS_USBPHY_ENABLE,
...@@ -469,6 +481,9 @@ static const struct of_device_id samsung_usbphy_dt_match[] = { ...@@ -469,6 +481,9 @@ static const struct of_device_id samsung_usbphy_dt_match[] = {
}, { }, {
.compatible = "samsung,exynos4210-usb2phy", .compatible = "samsung,exynos4210-usb2phy",
.data = &usb2phy_exynos4, .data = &usb2phy_exynos4,
}, {
.compatible = "samsung,exynos4x12-usb2phy",
.data = &usb2phy_exynos4x12,
}, { }, {
.compatible = "samsung,exynos5250-usb2phy", .compatible = "samsung,exynos5250-usb2phy",
.data = &usb2phy_exynos5 .data = &usb2phy_exynos5
...@@ -485,6 +500,9 @@ static struct platform_device_id samsung_usbphy_driver_ids[] = { ...@@ -485,6 +500,9 @@ static struct platform_device_id samsung_usbphy_driver_ids[] = {
}, { }, {
.name = "exynos4210-usb2phy", .name = "exynos4210-usb2phy",
.driver_data = (unsigned long)&usb2phy_exynos4, .driver_data = (unsigned long)&usb2phy_exynos4,
}, {
.name = "exynos4x12-usb2phy",
.driver_data = (unsigned long)&usb2phy_exynos4x12,
}, { }, {
.name = "exynos5250-usb2phy", .name = "exynos5250-usb2phy",
.driver_data = (unsigned long)&usb2phy_exynos5, .driver_data = (unsigned long)&usb2phy_exynos5,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment