Skip to content
  • Simon Arlott's avatar
    regmap-mmio: Use native endianness for read/write · 29bb45f2
    Simon Arlott authored
    
    
    The regmap API has an endianness setting for formatting reads and writes.
    This can be set by the usual DT "little-endian" and "big-endian" properties.
    To work properly the associated regmap_bus needs to read/write in native
    endian.
    
    The "syscon" DT device binding creates an mmio-based regmap_bus which
    performs all reads/writes as little-endian. These values are then converted
    again by regmap, which means that all of the MIPS BCM boards (which are
    big-endian) have been declared as "little-endian" to get regmap to convert
    them back to big-endian.
    
    Modify regmap-mmio to use the native-endian functions __raw_read*() and
    __raw_write*() instead of the little-endian functions read*() and
    write*().
    
    Modify the big-endian MIPS BCM boards to use what will now be the correct
    endianness instead of pretending that the devices are little-endian.
    
    Signed-off-by: default avatarSimon Arlott <simon@fire.lp0.eu>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    29bb45f2