aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2013-01-19 03:54:25 -0500
committerJohn Crispin <blogic@openwrt.org>2013-02-16 18:15:17 -0500
commitd0c550dc36881fda171ec8ad3dcc67491ad968eb (patch)
tree2d086dea11edbdd0eb1bc5c1819147445cd6f126 /arch/mips
parent740c606e8e79c3e3800afbc32b4e6123da403d6c (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/
Diffstat (limited to 'arch/mips')
-rw-r--r--arch/mips/lantiq/xway/reset.c9
-rw-r--r--arch/mips/lantiq/xway/sysctrl.c1
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 */
79int xrx200_gphy_boot(struct device *dev, unsigned int id, dma_addr_t dev_addr) 79int 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);