1 /* 2 * Copyright 2004-2010 Analog Devices Inc. 3 * 4 * Licensed under the GPL-2 or later. 5 */ 6 7 #ifndef _BFIN_IO_H 8 #define _BFIN_IO_H 9 10 #include <linux/compiler.h> 11 #include <linux/types.h> 12 #include <asm/byteorder.h> 13 #include <asm/def_LPBlackfin.h> 14 15 #define __raw_readb bfin_read8 16 #define __raw_readw bfin_read16 17 #define __raw_readl bfin_read32 18 #define __raw_writeb(val, addr) bfin_write8(addr, val) 19 #define __raw_writew(val, addr) bfin_write16(addr, val) 20 #define __raw_writel(val, addr) bfin_write32(addr, val) 21 22 extern void outsb(unsigned long port, const void *addr, unsigned long count); 23 extern void outsw(unsigned long port, const void *addr, unsigned long count); 24 extern void outsw_8(unsigned long port, const void *addr, unsigned long count); 25 extern void outsl(unsigned long port, const void *addr, unsigned long count); 26 #define outsb outsb 27 #define outsw outsw 28 #define outsl outsl 29 30 extern void insb(unsigned long port, void *addr, unsigned long count); 31 extern void insw(unsigned long port, void *addr, unsigned long count); 32 extern void insw_8(unsigned long port, void *addr, unsigned long count); 33 extern void insl(unsigned long port, void *addr, unsigned long count); 34 extern void insl_16(unsigned long port, void *addr, unsigned long count); 35 #define insb insb 36 #define insw insw 37 #define insl insl 38 39 /** 40 * I/O write barrier 41 * 42 * Ensure ordering of I/O space writes. This will make sure that writes 43 * following the barrier will arrive after all previous writes. 44 */ 45 #define mmiowb() do { SSYNC(); wmb(); } while (0) 46 47 #include <asm-generic/io.h> 48 49 #endif 50