52 lines
1.4 KiB
C
52 lines
1.4 KiB
C
/*
|
|
* Copyright 2001 MontaVista Software Inc.
|
|
* Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
|
|
*
|
|
* arch/mips/vr4181/common/serial.c
|
|
* initialize serial port on vr4181.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2 of the License, or (at your
|
|
* option) any later version.
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* [jsun, 010925]
|
|
* You need to make sure rs_table has at least one element in
|
|
* drivers/char/serial.c file. There is no good way to do it right
|
|
* now. A workaround is to include CONFIG_SERIAL_MANY_PORTS in your
|
|
* configure file, which would gives you 64 ports and wastes 11K ram.
|
|
*/
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/kernel.h>
|
|
#include <linux/init.h>
|
|
#include <linux/serial.h>
|
|
|
|
#include <asm/vr4181/vr4181.h>
|
|
|
|
void __init vr4181_init_serial(void)
|
|
{
|
|
struct serial_struct s;
|
|
|
|
/* turn on UART clock */
|
|
*VR4181_CMUCLKMSK |= VR4181_CMUCLKMSK_MSKSIU;
|
|
|
|
/* clear memory */
|
|
memset(&s, 0, sizeof(s));
|
|
|
|
s.line = 0; /* we set the first one */
|
|
s.baud_base = 1152000;
|
|
s.irq = VR4181_IRQ_SIU;
|
|
s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST; /* STD_COM_FLAGS */
|
|
s.iomem_base = (u8*)VR4181_SIURB;
|
|
s.iomem_reg_shift = 0;
|
|
s.io_type = SERIAL_IO_MEM;
|
|
if (early_serial_setup(&s) != 0) {
|
|
panic("vr4181_init_serial() failed!");
|
|
}
|
|
}
|
|
|