Lines Matching +full:8 +full:- +full:port
1 /* SPDX-License-Identifier: GPL-2.0 */
3 * linux/include/asm-m68k/raw_io.h
5 * 10/20/00 RZ: - created from bits of io.h and ide.h to cleanup namespace
43 #define raw_outb(val,port) out_8((port),(val)) argument
44 #define raw_outw(val,port) out_be16((port),(val)) argument
45 #define raw_outl(val,port) out_be32((port),(val)) argument
51 * Atari ROM port (cartridge port) ISA adapter, used for the EtherNEC NE2000
53 * The ISA adapter connects address lines A9-A13 to ISA address lines A0-A4,
56 * Data lines D8-D15 are connected to ISA data lines D0-D7 for reading.
57 * For writes, address lines A1-A8 are latched to ISA data lines D0-D7
58 * (meaning the bit pattern on A1-A8 can be read back as byte).
67 * chipset - 16 bit words are read straight off the ROM port while 16 bit
70 * asserted as A1-A8 address pattern). The high byte is then written to the
76 ({ u16 __v = (*(__force const volatile u16 *) (addr)); __v >>= 8; __v; })
88 __w = ((*(__force volatile u16 *) ((_addr | 0x10000) + ((__v >> 8)<<1)))); })
91 __w = ((*(__force volatile u16 *) ((_addr & 0xFFFF0000UL) + ((__v >> 8)<<1)))); \
97 #define raw_rom_outb(val, port) rom_out_8((port), (val)) argument
98 #define raw_rom_outw(val, port) rom_out_be16((port), (val)) argument
101 static inline void raw_insb(const volatile u8 __iomem *port, u8 *buf, in raw_insb() argument
107 *buf++ = in_8(port); in raw_insb()
110 static inline void raw_outsb(volatile u8 __iomem *port, const u8 *buf, in raw_outsb() argument
116 tmp = (nr & 15) - 1; in raw_outsb()
120 : "a" (port), "0" (buf), in raw_outsb()
124 tmp = (nr >> 4) - 1; in raw_outsb()
145 : "a" (port), "0" (buf), in raw_outsb()
150 static inline void raw_insw(volatile const u16 __iomem *port, u16 *buf, unsigned int nr) in raw_insw() argument
155 tmp = (nr & 15) - 1; in raw_insw()
159 : "a" (port), "0" (buf), in raw_insw()
163 tmp = (nr >> 4) - 1; in raw_insw()
184 : "a" (port), "0" (buf), in raw_insw()
189 static inline void raw_outsw(volatile u16 __iomem *port, const u16 *buf, in raw_outsw() argument
195 tmp = (nr & 15) - 1; in raw_outsw()
199 : "a" (port), "0" (buf), in raw_outsw()
203 tmp = (nr >> 4) - 1; in raw_outsw()
224 : "a" (port), "0" (buf), in raw_outsw()
229 static inline void raw_insl(const volatile u32 __iomem *port, u32 *buf, unsigned int nr) in raw_insl() argument
234 tmp = (nr & 15) - 1; in raw_insl()
238 : "a" (port), "0" (buf), in raw_insl()
242 tmp = (nr >> 4) - 1; in raw_insl()
263 : "a" (port), "0" (buf), in raw_insl()
268 static inline void raw_outsl(volatile u32 __iomem *port, const u32 *buf, in raw_outsl() argument
274 tmp = (nr & 15) - 1; in raw_outsl()
278 : "a" (port), "0" (buf), in raw_outsl()
282 tmp = (nr >> 4) - 1; in raw_outsl()
303 : "a" (port), "0" (buf), in raw_outsl()
309 static inline void raw_insw_swapw(const volatile u16 __iomem *port, u16 *buf, in raw_insw_swapw() argument
312 if ((nr) % 8) in raw_insw_swapw()
319 "rolw #8,%/d0\n\t" in raw_insw_swapw()
323 : "g" (port), "g" (buf), "g" (nr) in raw_insw_swapw()
333 "rolw #8,%/d0\n\t" in raw_insw_swapw()
336 "rolw #8,%/d0\n\t" in raw_insw_swapw()
339 "rolw #8,%/d0\n\t" in raw_insw_swapw()
342 "rolw #8,%/d0\n\t" in raw_insw_swapw()
345 "rolw #8,%/d0\n\t" in raw_insw_swapw()
348 "rolw #8,%/d0\n\t" in raw_insw_swapw()
351 "rolw #8,%/d0\n\t" in raw_insw_swapw()
354 "rolw #8,%/d0\n\t" in raw_insw_swapw()
358 : "g" (port), "g" (buf), "g" (nr) in raw_insw_swapw()
362 static inline void raw_outsw_swapw(volatile u16 __iomem *port, const u16 *buf, in raw_outsw_swapw() argument
365 if ((nr) % 8) in raw_outsw_swapw()
372 "rolw #8,%/d0\n\t" in raw_outsw_swapw()
376 : "g" (port), "g" (buf), "g" (nr) in raw_outsw_swapw()
386 "rolw #8,%/d0\n\t" in raw_outsw_swapw()
389 "rolw #8,%/d0\n\t" in raw_outsw_swapw()
392 "rolw #8,%/d0\n\t" in raw_outsw_swapw()
395 "rolw #8,%/d0\n\t" in raw_outsw_swapw()
398 "rolw #8,%/d0\n\t" in raw_outsw_swapw()
401 "rolw #8,%/d0\n\t" in raw_outsw_swapw()
404 "rolw #8,%/d0\n\t" in raw_outsw_swapw()
407 "rolw #8,%/d0\n\t" in raw_outsw_swapw()
411 : "g" (port), "g" (buf), "g" (nr) in raw_outsw_swapw()
417 static inline void raw_rom_insb(const volatile u8 __iomem *port, u8 *buf, in raw_rom_insb() argument
423 *buf++ = rom_in_8(port); in raw_rom_insb()
426 static inline void raw_rom_outsb(volatile u8 __iomem *port, const u8 *buf, in raw_rom_outsb() argument
432 rom_out_8(port, *buf++); in raw_rom_outsb()
435 static inline void raw_rom_insw(const volatile u16 __iomem *port, u16 *buf, in raw_rom_insw() argument
441 *buf++ = rom_in_be16(port); in raw_rom_insw()
444 static inline void raw_rom_outsw(volatile u16 __iomem *port, const u16 *buf, in raw_rom_outsw() argument
450 rom_out_be16(port, *buf++); in raw_rom_outsw()
453 static inline void raw_rom_insw_swapw(const volatile u16 __iomem *port, u16 *buf, in raw_rom_insw_swapw() argument
459 *buf++ = rom_in_le16(port); in raw_rom_insw_swapw()
462 static inline void raw_rom_outsw_swapw(volatile u16 __iomem *port, const u16 *buf, in raw_rom_outsw_swapw() argument
468 rom_out_le16(port, *buf++); in raw_rom_outsw_swapw()