]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/usb/gadget/udc/atmel_usba_udc.h
usb: gadget: atmel_usba: use endian agnostic IO on ARM
[karo-tx-linux.git] / drivers / usb / gadget / udc / atmel_usba_udc.h
index 085749a649e1608bfe49b8c083497536f3a2ebc2..ea448a3447670f5e9017841cf76efcdb9909b724 100644 (file)
         | USBA_BF(name, value))
 
 /* Register access macros */
+#ifdef CONFIG_AVR32
+#define usba_io_readl  __raw_readl
+#define usba_io_writel __raw_writel
+#define usba_io_writew __raw_writew
+#else
+#define usba_io_readl  readl_relaxed
+#define usba_io_writel writel_relaxed
+#define usba_io_writew writew_relaxed
+#endif
+
 #define usba_readl(udc, reg)                                   \
-       __raw_readl((udc)->regs + USBA_##reg)
+       usba_io_readl((udc)->regs + USBA_##reg)
 #define usba_writel(udc, reg, value)                           \
-       __raw_writel((value), (udc)->regs + USBA_##reg)
+       usba_io_writel((value), (udc)->regs + USBA_##reg)
 #define usba_ep_readl(ep, reg)                                 \
-       __raw_readl((ep)->ep_regs + USBA_EPT_##reg)
+       usba_io_readl((ep)->ep_regs + USBA_EPT_##reg)
 #define usba_ep_writel(ep, reg, value)                         \
-       __raw_writel((value), (ep)->ep_regs + USBA_EPT_##reg)
+       usba_io_writel((value), (ep)->ep_regs + USBA_EPT_##reg)
 #define usba_dma_readl(ep, reg)                                        \
-       __raw_readl((ep)->dma_regs + USBA_DMA_##reg)
+       usba_io_readl((ep)->dma_regs + USBA_DMA_##reg)
 #define usba_dma_writel(ep, reg, value)                                \
-       __raw_writel((value), (ep)->dma_regs + USBA_DMA_##reg)
+       usba_io_writel((value), (ep)->dma_regs + USBA_DMA_##reg)
 
 /* Calculate base address for a given endpoint or DMA controller */
 #define USBA_EPT_BASE(x)       (0x100 + (x) * 0x20)