~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/mips/loongson2ef/common/serial.c

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/mips/loongson2ef/common/serial.c (Architecture sparc64) and /arch/mips/loongson2ef/common/serial.c (Architecture mips)


  1 /*                                                  1 /*
  2  * This file is subject to the terms and condi      2  * This file is subject to the terms and conditions of the GNU General Public
  3  * License.  See the file "COPYING" in the mai      3  * License.  See the file "COPYING" in the main directory of this archive
  4  * for more details.                                4  * for more details.
  5  *                                                  5  *
  6  * Copyright (C) 2007 Ralf Baechle (ralf@linux      6  * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org)
  7  *                                                  7  *
  8  * Copyright (C) 2009 Lemote, Inc.                  8  * Copyright (C) 2009 Lemote, Inc.
  9  * Author: Yan hua (yanhua@lemote.com)              9  * Author: Yan hua (yanhua@lemote.com)
 10  * Author: Wu Zhangjin (wuzhangjin@gmail.com)      10  * Author: Wu Zhangjin (wuzhangjin@gmail.com)
 11  */                                                11  */
 12                                                    12 
 13 #include <linux/io.h>                              13 #include <linux/io.h>
 14 #include <linux/module.h>                          14 #include <linux/module.h>
 15 #include <linux/serial_8250.h>                     15 #include <linux/serial_8250.h>
 16                                                    16 
 17 #include <asm/bootinfo.h>                          17 #include <asm/bootinfo.h>
 18                                                    18 
 19 #include <loongson.h>                              19 #include <loongson.h>
 20 #include <machine.h>                               20 #include <machine.h>
 21                                                    21 
 22 #define PORT(int, clk)                  \          22 #define PORT(int, clk)                  \
 23 {                                                  23 {                                                               \
 24         .irq            = int,                     24         .irq            = int,                                  \
 25         .uartclk        = clk,                     25         .uartclk        = clk,                                  \
 26         .iotype         = UPIO_PORT,               26         .iotype         = UPIO_PORT,                            \
 27         .flags          = UPF_BOOT_AUTOCONF |      27         .flags          = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,    \
 28         .regshift       = 0,                       28         .regshift       = 0,                                    \
 29 }                                                  29 }
 30                                                    30 
 31 #define PORT_M(int, clk)                           31 #define PORT_M(int, clk)                                \
 32 {                                                  32 {                                                               \
 33         .irq            = MIPS_CPU_IRQ_BASE +      33         .irq            = MIPS_CPU_IRQ_BASE + (int),            \
 34         .uartclk        = clk,                     34         .uartclk        = clk,                                  \
 35         .iotype         = UPIO_MEM,                35         .iotype         = UPIO_MEM,                             \
 36         .membase        = (void __iomem *)NULL     36         .membase        = (void __iomem *)NULL,                 \
 37         .flags          = UPF_BOOT_AUTOCONF |      37         .flags          = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,    \
 38         .regshift       = 0,                       38         .regshift       = 0,                                    \
 39 }                                                  39 }
 40                                                    40 
 41 static struct plat_serial8250_port uart8250_da     41 static struct plat_serial8250_port uart8250_data[MACH_LOONGSON_END + 1] = {
 42         [MACH_LOONGSON_UNKNOWN] = {},              42         [MACH_LOONGSON_UNKNOWN] = {},
 43         [MACH_LEMOTE_FL2E]      = PORT(4, 1843     43         [MACH_LEMOTE_FL2E]      = PORT(4, 1843200),
 44         [MACH_LEMOTE_FL2F]      = PORT(3, 1843     44         [MACH_LEMOTE_FL2F]      = PORT(3, 1843200),
 45         [MACH_LEMOTE_ML2F7]     = PORT_M(3, 36     45         [MACH_LEMOTE_ML2F7]     = PORT_M(3, 3686400),
 46         [MACH_LEMOTE_YL2F89]    = PORT_M(3, 36     46         [MACH_LEMOTE_YL2F89]    = PORT_M(3, 3686400),
 47         [MACH_DEXXON_GDIUM2F10] = PORT_M(3, 36     47         [MACH_DEXXON_GDIUM2F10] = PORT_M(3, 3686400),
 48         [MACH_LEMOTE_NAS]       = PORT_M(3, 36     48         [MACH_LEMOTE_NAS]       = PORT_M(3, 3686400),
 49         [MACH_LEMOTE_LL2F]      = PORT(3, 1843     49         [MACH_LEMOTE_LL2F]      = PORT(3, 1843200),
 50         [MACH_LOONGSON_END]     = {},              50         [MACH_LOONGSON_END]     = {},
 51 };                                                 51 };
 52                                                    52 
 53 static struct platform_device uart8250_device      53 static struct platform_device uart8250_device = {
 54         .name = "serial8250",                      54         .name = "serial8250",
 55         .id = PLAT8250_DEV_PLATFORM,               55         .id = PLAT8250_DEV_PLATFORM,
 56 };                                                 56 };
 57                                                    57 
 58 static int __init serial_init(void)                58 static int __init serial_init(void)
 59 {                                                  59 {
 60         unsigned char iotype;                      60         unsigned char iotype;
 61                                                    61 
 62         iotype = uart8250_data[mips_machtype].     62         iotype = uart8250_data[mips_machtype].iotype;
 63                                                    63 
 64         if (UPIO_MEM == iotype) {                  64         if (UPIO_MEM == iotype) {
 65                 uart8250_data[mips_machtype].m     65                 uart8250_data[mips_machtype].mapbase =
 66                         loongson_uart_base;        66                         loongson_uart_base;
 67                 uart8250_data[mips_machtype].m     67                 uart8250_data[mips_machtype].membase =
 68                         (void __iomem *)_loong     68                         (void __iomem *)_loongson_uart_base;
 69         }                                          69         }
 70         else if (UPIO_PORT == iotype)              70         else if (UPIO_PORT == iotype)
 71                 uart8250_data[mips_machtype].i     71                 uart8250_data[mips_machtype].iobase =
 72                         loongson_uart_base - L     72                         loongson_uart_base - LOONGSON_PCIIO_BASE;
 73                                                    73 
 74         memset(&uart8250_data[mips_machtype +      74         memset(&uart8250_data[mips_machtype + 1], 0,
 75                         sizeof(struct plat_ser     75                         sizeof(struct plat_serial8250_port));
 76         uart8250_device.dev.platform_data = &u     76         uart8250_device.dev.platform_data = &uart8250_data[mips_machtype];
 77                                                    77 
 78         return platform_device_register(&uart8     78         return platform_device_register(&uart8250_device);
 79 }                                                  79 }
 80 module_init(serial_init);                          80 module_init(serial_init);
 81                                                    81 
 82 static void __exit serial_exit(void)               82 static void __exit serial_exit(void)
 83 {                                                  83 {
 84         platform_device_unregister(&uart8250_d     84         platform_device_unregister(&uart8250_device);
 85 }                                                  85 }
 86 module_exit(serial_exit);                          86 module_exit(serial_exit);
 87                                                    87 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php