diff options
author | John Crispin <blogic@openwrt.org> | 2013-01-19 03:54:25 -0500 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2013-02-16 18:15:17 -0500 |
commit | d0c550dc36881fda171ec8ad3dcc67491ad968eb (patch) | |
tree | 2d086dea11edbdd0eb1bc5c1819147445cd6f126 | |
parent | 740c606e8e79c3e3800afbc32b4e6123da403d6c (diff) |
MIPS: lantiq: add GPHY clock gate bits
Explicitly enable the clock gate of the internal GPHYs found on xrx200.
Signed-off-by: John Crispin <blogic@openwrt.org>
Patchwork: http://patchwork.linux-mips.org/patch/4816/
-rw-r--r-- | arch/mips/lantiq/xway/reset.c | 9 | ||||
-rw-r--r-- | arch/mips/lantiq/xway/sysctrl.c | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/mips/lantiq/xway/reset.c b/arch/mips/lantiq/xway/reset.c index 544dbb7fb421..1fa0f175357e 100644 --- a/arch/mips/lantiq/xway/reset.c +++ b/arch/mips/lantiq/xway/reset.c | |||
@@ -78,10 +78,19 @@ static struct ltq_xrx200_gphy_reset { | |||
78 | /* reset and boot a gphy. these phys only exist on xrx200 SoC */ | 78 | /* reset and boot a gphy. these phys only exist on xrx200 SoC */ |
79 | int xrx200_gphy_boot(struct device *dev, unsigned int id, dma_addr_t dev_addr) | 79 | int xrx200_gphy_boot(struct device *dev, unsigned int id, dma_addr_t dev_addr) |
80 | { | 80 | { |
81 | struct clk *clk; | ||
82 | |||
81 | if (!of_device_is_compatible(ltq_rcu_np, "lantiq,rcu-xrx200")) { | 83 | if (!of_device_is_compatible(ltq_rcu_np, "lantiq,rcu-xrx200")) { |
82 | dev_err(dev, "this SoC has no GPHY\n"); | 84 | dev_err(dev, "this SoC has no GPHY\n"); |
83 | return -EINVAL; | 85 | return -EINVAL; |
84 | } | 86 | } |
87 | |||
88 | clk = clk_get_sys("1f203000.rcu", "gphy"); | ||
89 | if (IS_ERR(clk)) | ||
90 | return PTR_ERR(clk); | ||
91 | |||
92 | clk_enable(clk); | ||
93 | |||
85 | if (id > 1) { | 94 | if (id > 1) { |
86 | dev_err(dev, "%u is an invalid gphy id\n", id); | 95 | dev_err(dev, "%u is an invalid gphy id\n", id); |
87 | return -EINVAL; | 96 | return -EINVAL; |
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c index 3390fcd6ee56..c24924fe087d 100644 --- a/arch/mips/lantiq/xway/sysctrl.c +++ b/arch/mips/lantiq/xway/sysctrl.c | |||
@@ -376,6 +376,7 @@ void __init ltq_soc_init(void) | |||
376 | PMU_SWITCH | PMU_PPE_DPLUS | PMU_PPE_DPLUM | | 376 | PMU_SWITCH | PMU_PPE_DPLUS | PMU_PPE_DPLUM | |
377 | PMU_PPE_EMA | PMU_PPE_TC | PMU_PPE_SLL01 | | 377 | PMU_PPE_EMA | PMU_PPE_TC | PMU_PPE_SLL01 | |
378 | PMU_PPE_QSB | PMU_PPE_TOP); | 378 | PMU_PPE_QSB | PMU_PPE_TOP); |
379 | clkdev_add_pmu("1f203000.rcu", "gphy", 0, PMU_GPHY); | ||
379 | } else if (of_machine_is_compatible("lantiq,ar9")) { | 380 | } else if (of_machine_is_compatible("lantiq,ar9")) { |
380 | clkdev_add_static(ltq_ar9_cpu_hz(), ltq_ar9_fpi_hz(), | 381 | clkdev_add_static(ltq_ar9_cpu_hz(), ltq_ar9_fpi_hz(), |
381 | ltq_ar9_fpi_hz(), CLOCK_250M); | 382 | ltq_ar9_fpi_hz(), CLOCK_250M); |