aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaewon Kim <jaewon02.kim@samsung.com>2015-03-12 06:11:13 -0400
committerKishon Vijay Abraham I <kishon@ti.com>2015-03-25 19:36:10 -0400
commit2be608561abfcceda4b35b71a0c1ec5088bb39b9 (patch)
tree78bebecf685019084e49f905d42ff577516209ed
parentd89a7f69d69409ffafad7affc1cc3085d2cd0dd8 (diff)
phy: exynos5-usbdrd: Add to support for Exynos5433 SoC
This patch adds driver data to support for Exynos5433 SoC. The Exynos5433 has one USB3.0 Host and USB3.0 DRD(Dual Role Device). Exynos5433 is simplar to Eyxnos7 but Exynos5433 have one more USB3.0 Host controller. Signed-off-by: Jaewon Kim <jaewon02.kim@samsung.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
-rw-r--r--Documentation/devicetree/bindings/phy/samsung-phy.txt3
-rw-r--r--drivers/phy/phy-exynos5-usbdrd.c10
-rw-r--r--include/linux/mfd/syscon/exynos5-pmu.h3
3 files changed, 15 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/phy/samsung-phy.txt b/Documentation/devicetree/bindings/phy/samsung-phy.txt
index 91e38cfe1f8f..60c6f2a633e0 100644
--- a/Documentation/devicetree/bindings/phy/samsung-phy.txt
+++ b/Documentation/devicetree/bindings/phy/samsung-phy.txt
@@ -128,6 +128,7 @@ Required properties:
128- compatible : Should be set to one of the following supported values: 128- compatible : Should be set to one of the following supported values:
129 - "samsung,exynos5250-usbdrd-phy" - for exynos5250 SoC, 129 - "samsung,exynos5250-usbdrd-phy" - for exynos5250 SoC,
130 - "samsung,exynos5420-usbdrd-phy" - for exynos5420 SoC. 130 - "samsung,exynos5420-usbdrd-phy" - for exynos5420 SoC.
131 - "samsung,exynos5433-usbdrd-phy" - for exynos5433 SoC.
131 - "samsung,exynos7-usbdrd-phy" - for exynos7 SoC. 132 - "samsung,exynos7-usbdrd-phy" - for exynos7 SoC.
132- reg : Register offset and length of USB DRD PHY register set; 133- reg : Register offset and length of USB DRD PHY register set;
133- clocks: Clock IDs array as required by the controller 134- clocks: Clock IDs array as required by the controller
@@ -139,7 +140,7 @@ Required properties:
139 PHY operations, associated by phy name. It is used to 140 PHY operations, associated by phy name. It is used to
140 determine bit values for clock settings register. 141 determine bit values for clock settings register.
141 For Exynos5420 this is given as 'sclk_usbphy30' in CMU. 142 For Exynos5420 this is given as 'sclk_usbphy30' in CMU.
142 - optional clocks: Exynos7 SoC has now following additional 143 - optional clocks: Exynos5433 & Exynos7 SoC has now following additional
143 gate clocks available: 144 gate clocks available:
144 - phy_pipe: for PIPE3 phy 145 - phy_pipe: for PIPE3 phy
145 - phy_utmi: for UTMI+ phy 146 - phy_utmi: for UTMI+ phy
diff --git a/drivers/phy/phy-exynos5-usbdrd.c b/drivers/phy/phy-exynos5-usbdrd.c
index 04374018425f..597e7dd3782a 100644
--- a/drivers/phy/phy-exynos5-usbdrd.c
+++ b/drivers/phy/phy-exynos5-usbdrd.c
@@ -624,6 +624,13 @@ static const struct exynos5_usbdrd_phy_drvdata exynos5250_usbdrd_phy = {
624 .has_common_clk_gate = true, 624 .has_common_clk_gate = true,
625}; 625};
626 626
627static const struct exynos5_usbdrd_phy_drvdata exynos5433_usbdrd_phy = {
628 .phy_cfg = phy_cfg_exynos5,
629 .pmu_offset_usbdrd0_phy = EXYNOS5_USBDRD_PHY_CONTROL,
630 .pmu_offset_usbdrd1_phy = EXYNOS5433_USBHOST30_PHY_CONTROL,
631 .has_common_clk_gate = false,
632};
633
627static const struct exynos5_usbdrd_phy_drvdata exynos7_usbdrd_phy = { 634static const struct exynos5_usbdrd_phy_drvdata exynos7_usbdrd_phy = {
628 .phy_cfg = phy_cfg_exynos5, 635 .phy_cfg = phy_cfg_exynos5,
629 .pmu_offset_usbdrd0_phy = EXYNOS5_USBDRD_PHY_CONTROL, 636 .pmu_offset_usbdrd0_phy = EXYNOS5_USBDRD_PHY_CONTROL,
@@ -638,6 +645,9 @@ static const struct of_device_id exynos5_usbdrd_phy_of_match[] = {
638 .compatible = "samsung,exynos5420-usbdrd-phy", 645 .compatible = "samsung,exynos5420-usbdrd-phy",
639 .data = &exynos5420_usbdrd_phy 646 .data = &exynos5420_usbdrd_phy
640 }, { 647 }, {
648 .compatible = "samsung,exynos5433-usbdrd-phy",
649 .data = &exynos5433_usbdrd_phy
650 }, {
641 .compatible = "samsung,exynos7-usbdrd-phy", 651 .compatible = "samsung,exynos7-usbdrd-phy",
642 .data = &exynos7_usbdrd_phy 652 .data = &exynos7_usbdrd_phy
643 }, 653 },
diff --git a/include/linux/mfd/syscon/exynos5-pmu.h b/include/linux/mfd/syscon/exynos5-pmu.h
index 00ef24bf6ede..9352adc95de6 100644
--- a/include/linux/mfd/syscon/exynos5-pmu.h
+++ b/include/linux/mfd/syscon/exynos5-pmu.h
@@ -36,6 +36,9 @@
36#define EXYNOS5420_MTCADC_PHY_CONTROL (0x724) 36#define EXYNOS5420_MTCADC_PHY_CONTROL (0x724)
37#define EXYNOS5420_DPTX_PHY_CONTROL (0x728) 37#define EXYNOS5420_DPTX_PHY_CONTROL (0x728)
38 38
39/* Exynos5433 specific register definitions */
40#define EXYNOS5433_USBHOST30_PHY_CONTROL (0x728)
41
39#define EXYNOS5_PHY_ENABLE BIT(0) 42#define EXYNOS5_PHY_ENABLE BIT(0)
40 43
41#define EXYNOS5_MIPI_PHY_S_RESETN BIT(1) 44#define EXYNOS5_MIPI_PHY_S_RESETN BIT(1)