diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2015-08-27 12:13:12 +0200 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2015-08-27 12:13:12 +0200 |
commit | 96983515657bfd532f4d2599df16c9d756de17ea (patch) | |
tree | 48a6fa2b58ac65adca0649acf599b2ca8c925fd8 /include | |
parent | powerpc/powernv: Enable LEDS support (diff) | |
parent | powerpc/t1023rdb/dts: set ifc nand chip select from 2 to 1 (diff) | |
download | linux-96983515657bfd532f4d2599df16c9d756de17ea.tar.xz linux-96983515657bfd532f4d2599df16c9d756de17ea.zip |
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next
Freescale updates from Scott:
"Highlights include 32-bit memcpy/memset optimizations, checksum
optimizations, 85xx config fragments and updates, device tree updates,
e6500 fixes for non-SMP, and misc cleanup and minor fixes."
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fsl_ifc.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/include/linux/fsl_ifc.h b/include/linux/fsl_ifc.h index bf0321eabbda..0023088b253b 100644 --- a/include/linux/fsl_ifc.h +++ b/include/linux/fsl_ifc.h @@ -841,9 +841,59 @@ struct fsl_ifc_ctrl { u32 nand_stat; wait_queue_head_t nand_wait; + bool little_endian; }; extern struct fsl_ifc_ctrl *fsl_ifc_ctrl_dev; +static inline u32 ifc_in32(void __iomem *addr) +{ + u32 val; + + if (fsl_ifc_ctrl_dev->little_endian) + val = ioread32(addr); + else + val = ioread32be(addr); + + return val; +} + +static inline u16 ifc_in16(void __iomem *addr) +{ + u16 val; + + if (fsl_ifc_ctrl_dev->little_endian) + val = ioread16(addr); + else + val = ioread16be(addr); + + return val; +} + +static inline u8 ifc_in8(void __iomem *addr) +{ + return ioread8(addr); +} + +static inline void ifc_out32(u32 val, void __iomem *addr) +{ + if (fsl_ifc_ctrl_dev->little_endian) + iowrite32(val, addr); + else + iowrite32be(val, addr); +} + +static inline void ifc_out16(u16 val, void __iomem *addr) +{ + if (fsl_ifc_ctrl_dev->little_endian) + iowrite16(val, addr); + else + iowrite16be(val, addr); +} + +static inline void ifc_out8(u8 val, void __iomem *addr) +{ + iowrite8(val, addr); +} #endif /* __ASM_FSL_IFC_H */ |