| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
 | 2 |  * some sbus structures and macros to make usage of sbus drivers possible | 
 | 3 |  */ | 
 | 4 |  | 
 | 5 | #ifndef __M68K_SBUS_H | 
 | 6 | #define __M68K_SBUS_H | 
 | 7 |  | 
 | 8 | struct sbus_dev { | 
 | 9 | 	struct { | 
 | 10 | 		unsigned int which_io; | 
 | 11 | 		unsigned int phys_addr; | 
 | 12 | 	} reg_addrs[1]; | 
 | 13 | }; | 
 | 14 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 15 | /* sbus IO functions stolen from include/asm-sparc/io.h for the serial driver */ | 
 | 16 | /* No SBUS on the Sun3, kludge -- sam */ | 
 | 17 |  | 
 | 18 | static inline void _sbus_writeb(unsigned char val, unsigned long addr) | 
 | 19 | { | 
 | 20 | 	*(volatile unsigned char *)addr = val; | 
 | 21 | } | 
 | 22 |  | 
 | 23 | static inline unsigned char _sbus_readb(unsigned long addr) | 
 | 24 | { | 
 | 25 | 	return *(volatile unsigned char *)addr; | 
 | 26 | } | 
 | 27 |  | 
 | 28 | static inline void _sbus_writel(unsigned long val, unsigned long addr) | 
 | 29 | { | 
 | 30 | 	*(volatile unsigned long *)addr = val; | 
 | 31 |  | 
 | 32 | } | 
 | 33 |  | 
 | 34 | extern inline unsigned long _sbus_readl(unsigned long addr) | 
 | 35 | { | 
 | 36 | 	return *(volatile unsigned long *)addr; | 
 | 37 | } | 
 | 38 |  | 
 | 39 |  | 
 | 40 | #define sbus_readb(a) _sbus_readb((unsigned long)a) | 
 | 41 | #define sbus_writeb(v, a) _sbus_writeb(v, (unsigned long)a) | 
 | 42 | #define sbus_readl(a) _sbus_readl((unsigned long)a) | 
 | 43 | #define sbus_writel(v, a) _sbus_writel(v, (unsigned long)a) | 
 | 44 |  | 
 | 45 | #endif |