MIPS: lantiq: reboot gphy on restart
authorJohn Crispin <blogic@openwrt.org>
Thu, 7 Aug 2014 16:55:57 +0000 (18:55 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 24 Nov 2014 06:45:17 +0000 (07:45 +0100)
A reboot sometimes lead to a none working phy. An explicit reboot fixes the
problem.

Signed-off-by: John Crispin <blogic@openwrt.org>
Patchwork: http://patchwork.linux-mips.org/patch/8044/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/lantiq/xway/reset.c

index a1e06b78e15ae3a02b728a8adea867eed8cbc577..fe68f9ae47c1487afde62c2bddcf1d5a94ff758a 100644 (file)
@@ -176,8 +176,15 @@ void ltq_rst_init(void)
 
 static void ltq_machine_restart(char *command)
 {
+       u32 val = ltq_rcu_r32(RCU_RST_REQ);
+
+       if (of_device_is_compatible(ltq_rcu_np, "lantiq,rcu-xrx200"))
+               val |= RCU_RD_GPHY1_XRX200 | RCU_RD_GPHY0_XRX200;
+
+       val |= RCU_RD_SRST;
+
        local_irq_disable();
-       ltq_rcu_w32(ltq_rcu_r32(RCU_RST_REQ) | RCU_RD_SRST, RCU_RST_REQ);
+       ltq_rcu_w32(val, RCU_RST_REQ);
        unreachable();
 }