| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 |  |  |  *  arch/arm/mach-ebsa110/include/mach/uncompress.h | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  * | 
					
						
							|  |  |  |  *  Copyright (C) 1996,1997,1998 Russell King | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License version 2 as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-28 10:24:33 +01:00
										 |  |  | #include <linux/serial_reg.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-07 11:04:54 +01:00
										 |  |  | #define SERIAL_BASE	((unsigned char *)0xf0000be0)
 | 
					
						
							| 
									
										
										
										
											2006-03-28 10:24:33 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * This does not append a newline | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2006-03-28 10:24:33 +01:00
										 |  |  | static inline void putc(int c) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	unsigned char v, *base = SERIAL_BASE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	do { | 
					
						
							|  |  |  | 		v = base[UART_LSR << 2]; | 
					
						
							|  |  |  | 		barrier(); | 
					
						
							|  |  |  | 	} while (!(v & UART_LSR_THRE)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	base[UART_TX << 2] = c; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline void flush(void) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2006-03-28 10:24:33 +01:00
										 |  |  | 	unsigned char v, *base = SERIAL_BASE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	do { | 
					
						
							|  |  |  | 		v = base[UART_LSR << 2]; | 
					
						
							|  |  |  | 		barrier(); | 
					
						
							|  |  |  | 	} while ((v & (UART_LSR_TEMT|UART_LSR_THRE)) != | 
					
						
							|  |  |  | 		 (UART_LSR_TEMT|UART_LSR_THRE)); | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * nothing to do | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define arch_decomp_setup()
 | 
					
						
							|  |  |  | #define arch_decomp_wdog()
 |