Commit f2521ce9 authored by Mike Frysinger's avatar Mike Frysinger

Blackfin: new dynamic bfin read/write mmr helpers

These are useful when working with C structs of MMRs as the appropriate
size is selected based on the given argument.
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent 222f6eb6
......@@ -50,6 +50,23 @@
#define bfin_write16(addr, val) _bfin_writeX(addr, val, 16, w)
#define bfin_write32(addr, val) _bfin_writeX(addr, val, 32, )
#define bfin_read(addr) \
({ \
sizeof(*(addr)) == 1 ? bfin_read8(addr) : \
sizeof(*(addr)) == 2 ? bfin_read16(addr) : \
sizeof(*(addr)) == 4 ? bfin_read32(addr) : \
({ BUG(); 0; }); \
})
#define bfin_write(addr, val) \
({ \
switch (sizeof(*(addr))) { \
case 1: bfin_write8(addr, val); break; \
case 2: bfin_write16(addr, val); break; \
case 4: bfin_write32(addr, val); break; \
default: BUG(); \
} \
})
#endif /* __ASSEMBLY__ */
/**************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment