MIPS: lantiq: Force the crossbar to big endian
authorJohn Crispin <blogic@openwrt.org>
Wed, 4 Nov 2015 12:14:15 +0000 (13:14 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 11 Nov 2015 07:38:23 +0000 (08:38 +0100)
Signed-off-by: John Crispin <blogic@openwrt.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/11450/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/lantiq/xway/reset.c

index 4b52ce6d38f81c0525b6e055bb99367e7c252e40..bc29bb349e94e227fc0b015544d588eddafe5a57 100644 (file)
 #define RCU_GFS_ADD2_XRX330    0x00AC
 #define RCU_GFS_ADD3_XRX330    0x0264
 
+/* xbar BE flag */
+#define RCU_AHB_ENDIAN          0x004C
+#define RCU_VR9_BE_AHB1S        0x00000008
+
 /* reboot bit */
 #define RCU_RD_GPHY0_XRX200    BIT(31)
 #define RCU_RD_SRST            BIT(30)
@@ -369,6 +373,10 @@ static int __init mips_reboot_setup(void)
            of_machine_is_compatible("lantiq,vr9"))
                ltq_usb_init();
 
+       if (of_machine_is_compatible("lantiq,vr9"))
+               ltq_rcu_w32(ltq_rcu_r32(RCU_AHB_ENDIAN) | RCU_VR9_BE_AHB1S,
+                           RCU_AHB_ENDIAN);
+
        _machine_restart = ltq_machine_restart;
        _machine_halt = ltq_machine_halt;
        pm_power_off = ltq_machine_power_off;