diff options
Diffstat (limited to 'arch/mips/loongson/common/uart_base.c')
-rw-r--r-- | arch/mips/loongson/common/uart_base.c | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/arch/mips/loongson/common/uart_base.c b/arch/mips/loongson/common/uart_base.c index 1e1eeea73fde..9de559d58e1f 100644 --- a/arch/mips/loongson/common/uart_base.c +++ b/arch/mips/loongson/common/uart_base.c | |||
@@ -13,22 +13,27 @@ | |||
13 | 13 | ||
14 | #include <loongson.h> | 14 | #include <loongson.h> |
15 | 15 | ||
16 | /* ioremapped */ | ||
17 | unsigned long _loongson_uart_base; | ||
18 | EXPORT_SYMBOL(_loongson_uart_base); | ||
19 | /* raw */ | 16 | /* raw */ |
20 | unsigned long loongson_uart_base; | 17 | unsigned long loongson_uart_base[MAX_UARTS] = {}; |
18 | /* ioremapped */ | ||
19 | unsigned long _loongson_uart_base[MAX_UARTS] = {}; | ||
20 | |||
21 | EXPORT_SYMBOL(loongson_uart_base); | 21 | EXPORT_SYMBOL(loongson_uart_base); |
22 | EXPORT_SYMBOL(_loongson_uart_base); | ||
22 | 23 | ||
23 | void prom_init_loongson_uart_base(void) | 24 | void prom_init_loongson_uart_base(void) |
24 | { | 25 | { |
25 | switch (mips_machtype) { | 26 | switch (mips_machtype) { |
27 | case MACH_LOONGSON_GENERIC: | ||
28 | /* The CPU provided serial port (CPU) */ | ||
29 | loongson_uart_base[0] = LOONGSON_REG_BASE + 0x1e0; | ||
30 | break; | ||
26 | case MACH_LEMOTE_FL2E: | 31 | case MACH_LEMOTE_FL2E: |
27 | loongson_uart_base = LOONGSON_PCIIO_BASE + 0x3f8; | 32 | loongson_uart_base[0] = LOONGSON_PCIIO_BASE + 0x3f8; |
28 | break; | 33 | break; |
29 | case MACH_LEMOTE_FL2F: | 34 | case MACH_LEMOTE_FL2F: |
30 | case MACH_LEMOTE_LL2F: | 35 | case MACH_LEMOTE_LL2F: |
31 | loongson_uart_base = LOONGSON_PCIIO_BASE + 0x2f8; | 36 | loongson_uart_base[0] = LOONGSON_PCIIO_BASE + 0x2f8; |
32 | break; | 37 | break; |
33 | case MACH_LEMOTE_ML2F7: | 38 | case MACH_LEMOTE_ML2F7: |
34 | case MACH_LEMOTE_YL2F89: | 39 | case MACH_LEMOTE_YL2F89: |
@@ -36,17 +41,10 @@ void prom_init_loongson_uart_base(void) | |||
36 | case MACH_LEMOTE_NAS: | 41 | case MACH_LEMOTE_NAS: |
37 | default: | 42 | default: |
38 | /* The CPU provided serial port (LPC) */ | 43 | /* The CPU provided serial port (LPC) */ |
39 | loongson_uart_base = LOONGSON_LIO1_BASE + 0x3f8; | 44 | loongson_uart_base[0] = LOONGSON_LIO1_BASE + 0x3f8; |
40 | break; | ||
41 | case MACH_LEMOTE_A1004: | ||
42 | case MACH_LEMOTE_A1101: | ||
43 | case MACH_LEMOTE_A1201: | ||
44 | case MACH_LEMOTE_A1205: | ||
45 | /* The CPU provided serial port (CPU) */ | ||
46 | loongson_uart_base = LOONGSON_REG_BASE + 0x1e0; | ||
47 | break; | 45 | break; |
48 | } | 46 | } |
49 | 47 | ||
50 | _loongson_uart_base = | 48 | _loongson_uart_base[0] = |
51 | (unsigned long)ioremap_nocache(loongson_uart_base, 8); | 49 | (unsigned long)ioremap_nocache(loongson_uart_base[0], 8); |
52 | } | 50 | } |