18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci *  arch/arm/mach-footbridge/include/mach/uncompress.h
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci *  Copyright (C) 1996-1999 Russell King
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci#include <asm/mach-types.h>
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci/*
108c2ecf20Sopenharmony_ci * Note! This could cause problems on the NetWinder
118c2ecf20Sopenharmony_ci */
128c2ecf20Sopenharmony_ci#define DC21285_BASE ((volatile unsigned int *)0x42000160)
138c2ecf20Sopenharmony_ci#define SER0_BASE    ((volatile unsigned char *)0x7c0003f8)
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cistatic inline void putc(char c)
168c2ecf20Sopenharmony_ci{
178c2ecf20Sopenharmony_ci	if (machine_is_netwinder()) {
188c2ecf20Sopenharmony_ci		while ((SER0_BASE[5] & 0x60) != 0x60)
198c2ecf20Sopenharmony_ci			barrier();
208c2ecf20Sopenharmony_ci		SER0_BASE[0] = c;
218c2ecf20Sopenharmony_ci	} else {
228c2ecf20Sopenharmony_ci		while (DC21285_BASE[6] & 8);
238c2ecf20Sopenharmony_ci		DC21285_BASE[0] = c;
248c2ecf20Sopenharmony_ci	}
258c2ecf20Sopenharmony_ci}
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_cistatic inline void flush(void)
288c2ecf20Sopenharmony_ci{
298c2ecf20Sopenharmony_ci}
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci/*
328c2ecf20Sopenharmony_ci * nothing to do
338c2ecf20Sopenharmony_ci */
348c2ecf20Sopenharmony_ci#define arch_decomp_setup()
35