| 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 |  | 
|  | 15 | extern void *sparc_alloc_io (u32, void *, int, char *, u32, int); | 
|  | 16 | #define sparc_alloc_io(a,b,c,d,e,f)	(a) | 
|  | 17 |  | 
|  | 18 | #define ARCH_SUN4  0 | 
|  | 19 |  | 
|  | 20 | /* sbus IO functions stolen from include/asm-sparc/io.h for the serial driver */ | 
|  | 21 | /* No SBUS on the Sun3, kludge -- sam */ | 
|  | 22 |  | 
|  | 23 | static inline void _sbus_writeb(unsigned char val, unsigned long addr) | 
|  | 24 | { | 
|  | 25 | *(volatile unsigned char *)addr = val; | 
|  | 26 | } | 
|  | 27 |  | 
|  | 28 | static inline unsigned char _sbus_readb(unsigned long addr) | 
|  | 29 | { | 
|  | 30 | return *(volatile unsigned char *)addr; | 
|  | 31 | } | 
|  | 32 |  | 
|  | 33 | static inline void _sbus_writel(unsigned long val, unsigned long addr) | 
|  | 34 | { | 
|  | 35 | *(volatile unsigned long *)addr = val; | 
|  | 36 |  | 
|  | 37 | } | 
|  | 38 |  | 
|  | 39 | extern inline unsigned long _sbus_readl(unsigned long addr) | 
|  | 40 | { | 
|  | 41 | return *(volatile unsigned long *)addr; | 
|  | 42 | } | 
|  | 43 |  | 
|  | 44 |  | 
|  | 45 | #define sbus_readb(a) _sbus_readb((unsigned long)a) | 
|  | 46 | #define sbus_writeb(v, a) _sbus_writeb(v, (unsigned long)a) | 
|  | 47 | #define sbus_readl(a) _sbus_readl((unsigned long)a) | 
|  | 48 | #define sbus_writel(v, a) _sbus_writel(v, (unsigned long)a) | 
|  | 49 |  | 
|  | 50 | #endif |