| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
 | 2 |  * linux/include/asm-arm/arch-l7200/uncompress.h | 
 | 3 |  * | 
 | 4 |  * Copyright (C) 2000 Steve Hill (sjhill@cotw.com) | 
 | 5 |  * | 
 | 6 |  * Changelog: | 
 | 7 |  *  05-01-2000	SJH	Created | 
 | 8 |  *  05-13-2000	SJH	Filled in function bodies | 
| Horst Schirmeier | e853534 | 2006-06-05 10:45:30 +0100 | [diff] [blame] | 9 |  *  07-26-2000	SJH	Removed hard coded baud rate | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 10 |  */ | 
 | 11 |  | 
 | 12 | #include <asm/hardware.h> | 
 | 13 |  | 
 | 14 | #define IO_UART  IO_START + 0x00044000 | 
 | 15 |  | 
 | 16 | #define __raw_writeb(v,p)	(*(volatile unsigned char *)(p) = (v)) | 
 | 17 | #define __raw_readb(p)		(*(volatile unsigned char *)(p)) | 
 | 18 |  | 
| Russell King | a081568 | 2006-03-28 10:24:33 +0100 | [diff] [blame] | 19 | static inline void putc(int c) | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 20 | { | 
 | 21 | 	while(__raw_readb(IO_UART + 0x18) & 0x20 || | 
| Russell King | a081568 | 2006-03-28 10:24:33 +0100 | [diff] [blame] | 22 | 	      __raw_readb(IO_UART + 0x18) & 0x08) | 
 | 23 | 		barrier(); | 
 | 24 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 25 | 	__raw_writeb(c, IO_UART + 0x00); | 
 | 26 | } | 
 | 27 |  | 
| Russell King | a081568 | 2006-03-28 10:24:33 +0100 | [diff] [blame] | 28 | static inline void flush(void) | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 29 | { | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 30 | } | 
 | 31 |  | 
 | 32 | static __inline__ void arch_decomp_setup(void) | 
 | 33 | { | 
 | 34 | 	__raw_writeb(0x00, IO_UART + 0x08);	/* Set HSB */ | 
 | 35 | 	__raw_writeb(0x00, IO_UART + 0x20);	/* Disable IRQs */ | 
 | 36 | 	__raw_writeb(0x01, IO_UART + 0x14);	/* Enable UART */ | 
 | 37 | } | 
 | 38 |  | 
 | 39 | #define arch_decomp_wdog() |