1 /* 2 * Copyright (C) 2009 Lemote Inc. 3 * Author: Wu Zhangjin, wuzhangjin@gmail.com 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License as published by the 7 * Free Software Foundation; either version 2 of the License, or (at your 8 * option) any later version. 9 */ 10 11 #include <linux/module.h> 12 #include <asm/bootinfo.h> 13 14 #include <loongson.h> 15 16 /* ioremapped */ 17 unsigned long _loongson_uart_base; 18 EXPORT_SYMBOL(_loongson_uart_base); 19 /* raw */ 20 unsigned long loongson_uart_base; 21 EXPORT_SYMBOL(loongson_uart_base); 22 prom_init_loongson_uart_base(void)23void prom_init_loongson_uart_base(void) 24 { 25 switch (mips_machtype) { 26 case MACH_LEMOTE_FL2E: 27 loongson_uart_base = LOONGSON_PCIIO_BASE + 0x3f8; 28 break; 29 case MACH_LEMOTE_FL2F: 30 case MACH_LEMOTE_LL2F: 31 loongson_uart_base = LOONGSON_PCIIO_BASE + 0x2f8; 32 break; 33 case MACH_LEMOTE_ML2F7: 34 case MACH_LEMOTE_YL2F89: 35 case MACH_DEXXON_GDIUM2F10: 36 case MACH_LEMOTE_NAS: 37 default: 38 /* The CPU provided serial port */ 39 loongson_uart_base = LOONGSON_LIO1_BASE + 0x3f8; 40 break; 41 } 42 43 _loongson_uart_base = 44 (unsigned long)ioremap_nocache(loongson_uart_base, 8); 45 } 46