xref: /openbmc/linux/drivers/tty/serial/8250/8250_alpha.c (revision 03ab8e6297acd1bc0eedaa050e2a1635c576fd11)
1*b4a29b94SLukas Wunner // SPDX-License-Identifier: GPL-2.0+
2*b4a29b94SLukas Wunner 
3*b4a29b94SLukas Wunner #include <asm/machvec.h>
4*b4a29b94SLukas Wunner #include "8250.h"
5*b4a29b94SLukas Wunner 
alpha_jensen(void)6*b4a29b94SLukas Wunner bool alpha_jensen(void)
7*b4a29b94SLukas Wunner {
8*b4a29b94SLukas Wunner 	return !strcmp(alpha_mv.vector_name, "Jensen");
9*b4a29b94SLukas Wunner }
10*b4a29b94SLukas Wunner 
alpha_jensen_set_mctrl(struct uart_port * port,unsigned int mctrl)11*b4a29b94SLukas Wunner void alpha_jensen_set_mctrl(struct uart_port *port, unsigned int mctrl)
12*b4a29b94SLukas Wunner {
13*b4a29b94SLukas Wunner 	/*
14*b4a29b94SLukas Wunner 	 * Digital did something really horribly wrong with the OUT1 and OUT2
15*b4a29b94SLukas Wunner 	 * lines on Alpha Jensen.  The failure mode is that if either is
16*b4a29b94SLukas Wunner 	 * cleared, the machine locks up with endless interrupts.
17*b4a29b94SLukas Wunner 	 */
18*b4a29b94SLukas Wunner 	mctrl |= TIOCM_OUT1 | TIOCM_OUT2;
19*b4a29b94SLukas Wunner 
20*b4a29b94SLukas Wunner 	serial8250_do_set_mctrl(port, mctrl);
21*b4a29b94SLukas Wunner }
22