diff options
author | Jaewon Kim <jaewon02.kim@samsung.com> | 2015-03-12 06:11:13 -0400 |
---|---|---|
committer | Kishon Vijay Abraham I <kishon@ti.com> | 2015-03-25 19:36:10 -0400 |
commit | 2be608561abfcceda4b35b71a0c1ec5088bb39b9 (patch) | |
tree | 78bebecf685019084e49f905d42ff577516209ed | |
parent | d89a7f69d69409ffafad7affc1cc3085d2cd0dd8 (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.txt | 3 | ||||
-rw-r--r-- | drivers/phy/phy-exynos5-usbdrd.c | 10 | ||||
-rw-r--r-- | include/linux/mfd/syscon/exynos5-pmu.h | 3 |
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 | ||
627 | static 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 | |||
627 | static const struct exynos5_usbdrd_phy_drvdata exynos7_usbdrd_phy = { | 634 | static 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) |