1 /* arch/arm/mach-zynq/include/mach/uncompress.h 2 * 3 * Copyright (C) 2011 Xilinx 4 * 5 * This software is licensed under the terms of the GNU General Public 6 * License version 2, as published by the Free Software Foundation, and 7 * may be copied, distributed, and modified under those terms. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 */ 14 15 #ifndef __MACH_UNCOMPRESS_H__ 16 #define __MACH_UNCOMPRESS_H__ 17 18 #include <linux/io.h> 19 #include <asm/processor.h> 20 #include <mach/zynq_soc.h> 21 #include <mach/uart.h> 22 arch_decomp_setup(void)23void arch_decomp_setup(void) 24 { 25 } 26 flush(void)27static inline void flush(void) 28 { 29 /* 30 * Wait while the FIFO is not empty 31 */ 32 while (!(__raw_readl(IOMEM(LL_UART_PADDR + UART_SR_OFFSET)) & 33 UART_SR_TXEMPTY)) 34 cpu_relax(); 35 } 36 37 #define arch_decomp_wdog() 38 putc(char ch)39static void putc(char ch) 40 { 41 /* 42 * Wait for room in the FIFO, then write the char into the FIFO 43 */ 44 while (__raw_readl(IOMEM(LL_UART_PADDR + UART_SR_OFFSET)) & 45 UART_SR_TXFULL) 46 cpu_relax(); 47 48 __raw_writel(ch, IOMEM(LL_UART_PADDR + UART_FIFO_OFFSET)); 49 } 50 51 #endif 52