On Thu, Mar 31, 2016 at 3:09 PM, Krzysztof Kozlowski <k.kozlow...@samsung.com> wrote: > On Wed, Mar 30, 2016 at 4:41 AM, Mark Brown <broo...@kernel.org> wrote: >> Since we changed to do formatting in the bus we now skip all the format >> parsing that the core does for its data marshalling code. This means >> that we skip the DT parsing it does which breaks some systems, we need >> to add an explict call in the MMIO code to do this. >> >> Reported-by: Alexander Stein <alexander.st...@systec-electronic.com> >> Signed-off-by: Mark Brown <broo...@kernel.org> > > This breaks my syscon reboot handler (Exynos4412, Trats2): > ############### > -sh-4.1# reboot > Rebooting. > [ 37.056210] reboot: Restarting system > [ 38.058649] Unable to restart system > [ 39.060987] Reboot failed -- System halted > ############### > > I added a printk before switch and: > config->val_format_endian: REGMAP_ENDIAN_DEFAULT > regmap_get_val_endian(): REGMAP_ENDIAN_BIG, >
... and the big-endian is coming from the last return in regmap_get_val_endian() (/* Use this if no other value was found */). I don't have endian property in DTS for the syscon device so it always ended with default which in the regmap_mmio_gen_context() was mapped to little endian. Now default is big endian. I guess the big/little endian property should be required in that case. Best regards, Krzysztof