On Fri, Oct 14, 2016 at 10:17:32AM +0100, Paul Burton wrote: > Commit 10b6ea0959de ("MIPS: Malta: Use syscon-reboot driver to reboot") > converted the Malta board to use the generic syscon-reboot driver to > handle reboots, but incorrectly used the value 0x4d rather than 0x42 as > the magic to write to the reboot register. > > I also incorrectly believed that syscon/regmap would default to native > endianness, but this isn't the case. Force this by specifying with a > native-endian property in the devicetree. > > Signed-off-by: Paul Burton <paul.burton@xxxxxxxxxx> > Fixes: 10b6ea0959de ("MIPS: Malta: Use syscon-reboot driver to reboot") > Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx> > Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> > Cc: linux-mips@xxxxxxxxxxxxxx > --- > Hi Guenter, > > Apologies for that! Hopefully this fixes it up for you. I've tested QEMU > in both endiannesses & it now works for me, as well as real hardware. > Fixes the problem if applied together with 'mfd: syscon: Support native-endian regmaps'. Both patches are needed. Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx> Thanks, Guenter > Hi Ralf, > > Apologies for the brokenness! Feel free to apply this as a fixup if it's > not too late, otherwise it would be great to get into mainline ASAP. > --- > arch/mips/boot/dts/mti/malta.dts | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/mips/boot/dts/mti/malta.dts b/arch/mips/boot/dts/mti/malta.dts > index 85468bf..48f696a 100644 > --- a/arch/mips/boot/dts/mti/malta.dts > +++ b/arch/mips/boot/dts/mti/malta.dts > @@ -94,12 +94,13 @@ > fpga_regs: system-controller@1f000000 { > compatible = "mti,malta-fpga", "syscon", "simple-mfd"; > reg = <0x1f000000 0x1000>; > + native-endian; > > reboot { > compatible = "syscon-reboot"; > regmap = <&fpga_regs>; > offset = <0x500>; > - mask = <0x4d>; > + mask = <0x42>; > }; > }; >