162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2009 Lemote Inc.
462306a36Sopenharmony_ci * Author: Wu Zhangjin, wuzhangjin@gmail.com
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#include <linux/export.h>
862306a36Sopenharmony_ci#include <asm/bootinfo.h>
962306a36Sopenharmony_ci#include <asm/setup.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <loongson.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci/* raw */
1462306a36Sopenharmony_ciunsigned long loongson_uart_base;
1562306a36Sopenharmony_ci/* ioremapped */
1662306a36Sopenharmony_ciunsigned long _loongson_uart_base;
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciEXPORT_SYMBOL(loongson_uart_base);
1962306a36Sopenharmony_ciEXPORT_SYMBOL(_loongson_uart_base);
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_civoid prom_init_loongson_uart_base(void)
2262306a36Sopenharmony_ci{
2362306a36Sopenharmony_ci	switch (mips_machtype) {
2462306a36Sopenharmony_ci	case MACH_LEMOTE_FL2E:
2562306a36Sopenharmony_ci		loongson_uart_base = LOONGSON_PCIIO_BASE + 0x3f8;
2662306a36Sopenharmony_ci		break;
2762306a36Sopenharmony_ci	case MACH_LEMOTE_FL2F:
2862306a36Sopenharmony_ci	case MACH_LEMOTE_LL2F:
2962306a36Sopenharmony_ci		loongson_uart_base = LOONGSON_PCIIO_BASE + 0x2f8;
3062306a36Sopenharmony_ci		break;
3162306a36Sopenharmony_ci	case MACH_LEMOTE_ML2F7:
3262306a36Sopenharmony_ci	case MACH_LEMOTE_YL2F89:
3362306a36Sopenharmony_ci	case MACH_DEXXON_GDIUM2F10:
3462306a36Sopenharmony_ci	case MACH_LEMOTE_NAS:
3562306a36Sopenharmony_ci	default:
3662306a36Sopenharmony_ci		/* The CPU provided serial port (LPC) */
3762306a36Sopenharmony_ci		loongson_uart_base = LOONGSON_LIO1_BASE + 0x3f8;
3862306a36Sopenharmony_ci		break;
3962306a36Sopenharmony_ci	}
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci	_loongson_uart_base = TO_UNCAC(loongson_uart_base);
4262306a36Sopenharmony_ci	setup_8250_early_printk_port(_loongson_uart_base, 0, 1024);
4362306a36Sopenharmony_ci}
44