There are some peripheral(e.g dwc otg) whose registers can be configured to work in either little or big endian mode. Therefor macros like out_be32, in_be32, out_le32 and in_le32 have been added to support such peripherals. Signed-off-by: Pratyush Anand <pratyush.anand@xxxxxx> --- arch/arm/include/asm/io.h | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h index 815efa2..32282b4 100644 --- a/arch/arm/include/asm/io.h +++ b/arch/arm/include/asm/io.h @@ -297,6 +297,14 @@ extern int valid_mmap_phys_addr_range(unsigned long pfn, size_t size); extern int devmem_is_allowed(unsigned long pfn); #endif +/* Big Endian */ +#define out_be32(a, v) writel(__cpu_to_be32(v), a) +#define in_be32(a) __be32_to_cpu(readl(a)) + +/* Little endian */ +#define out_le32(a, v) writel(__cpu_to_le32(v), a) +#define in_le32(a) __le32_to_cpu(readl(a)) + /* * Convert a physical pointer to a virtual kernel pointer for /dev/mem * access -- 1.7.2.2 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html