18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci *  arch/arm/mach-ebsa110/include/mach/uncompress.h
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci *  Copyright (C) 1996,1997,1998 Russell King
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <linux/serial_reg.h>
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#define SERIAL_BASE	((unsigned char *)0xf0000be0)
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci/*
138c2ecf20Sopenharmony_ci * This does not append a newline
148c2ecf20Sopenharmony_ci */
158c2ecf20Sopenharmony_cistatic inline void putc(int c)
168c2ecf20Sopenharmony_ci{
178c2ecf20Sopenharmony_ci	unsigned char v, *base = SERIAL_BASE;
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci	do {
208c2ecf20Sopenharmony_ci		v = base[UART_LSR << 2];
218c2ecf20Sopenharmony_ci		barrier();
228c2ecf20Sopenharmony_ci	} while (!(v & UART_LSR_THRE));
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci	base[UART_TX << 2] = c;
258c2ecf20Sopenharmony_ci}
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_cistatic inline void flush(void)
288c2ecf20Sopenharmony_ci{
298c2ecf20Sopenharmony_ci	unsigned char v, *base = SERIAL_BASE;
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	do {
328c2ecf20Sopenharmony_ci		v = base[UART_LSR << 2];
338c2ecf20Sopenharmony_ci		barrier();
348c2ecf20Sopenharmony_ci	} while ((v & (UART_LSR_TEMT|UART_LSR_THRE)) !=
358c2ecf20Sopenharmony_ci		 (UART_LSR_TEMT|UART_LSR_THRE));
368c2ecf20Sopenharmony_ci}
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci/*
398c2ecf20Sopenharmony_ci * nothing to do
408c2ecf20Sopenharmony_ci */
418c2ecf20Sopenharmony_ci#define arch_decomp_setup()
42