18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2009 Lemote Inc.
48c2ecf20Sopenharmony_ci * Author: Wu Zhangjin, wuzhangjin@gmail.com
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#include <linux/export.h>
88c2ecf20Sopenharmony_ci#include <asm/bootinfo.h>
98c2ecf20Sopenharmony_ci#include <asm/setup.h>
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#include <loongson.h>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci/* raw */
148c2ecf20Sopenharmony_ciunsigned long loongson_uart_base;
158c2ecf20Sopenharmony_ci/* ioremapped */
168c2ecf20Sopenharmony_ciunsigned long _loongson_uart_base;
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciEXPORT_SYMBOL(loongson_uart_base);
198c2ecf20Sopenharmony_ciEXPORT_SYMBOL(_loongson_uart_base);
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_civoid prom_init_loongson_uart_base(void)
228c2ecf20Sopenharmony_ci{
238c2ecf20Sopenharmony_ci	switch (mips_machtype) {
248c2ecf20Sopenharmony_ci	case MACH_LEMOTE_FL2E:
258c2ecf20Sopenharmony_ci		loongson_uart_base = LOONGSON_PCIIO_BASE + 0x3f8;
268c2ecf20Sopenharmony_ci		break;
278c2ecf20Sopenharmony_ci	case MACH_LEMOTE_FL2F:
288c2ecf20Sopenharmony_ci	case MACH_LEMOTE_LL2F:
298c2ecf20Sopenharmony_ci		loongson_uart_base = LOONGSON_PCIIO_BASE + 0x2f8;
308c2ecf20Sopenharmony_ci		break;
318c2ecf20Sopenharmony_ci	case MACH_LEMOTE_ML2F7:
328c2ecf20Sopenharmony_ci	case MACH_LEMOTE_YL2F89:
338c2ecf20Sopenharmony_ci	case MACH_DEXXON_GDIUM2F10:
348c2ecf20Sopenharmony_ci	case MACH_LEMOTE_NAS:
358c2ecf20Sopenharmony_ci	default:
368c2ecf20Sopenharmony_ci		/* The CPU provided serial port (LPC) */
378c2ecf20Sopenharmony_ci		loongson_uart_base = LOONGSON_LIO1_BASE + 0x3f8;
388c2ecf20Sopenharmony_ci		break;
398c2ecf20Sopenharmony_ci	}
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	_loongson_uart_base = TO_UNCAC(loongson_uart_base);
428c2ecf20Sopenharmony_ci	setup_8250_early_printk_port(_loongson_uart_base, 0, 1024);
438c2ecf20Sopenharmony_ci}
44