mirror of https://gitee.com/openkylin/linux.git
tty: xuartps: Add support for setting modem control signals
Add support for setting the state of the DTR and RTS signals. Acked-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f77d55a3b5
commit
19038ad9f0
|
@ -132,6 +132,15 @@ MODULE_PARM_DESC(rx_timeout, "Rx timeout, 1-255");
|
|||
/* Goes in read_status_mask for break detection as the HW doesn't do it*/
|
||||
#define CDNS_UART_IXR_BRK 0x80000000
|
||||
|
||||
/*
|
||||
* Modem Control register:
|
||||
* The read/write Modem Control register controls the interface with the modem
|
||||
* or data set, or a peripheral device emulating a modem.
|
||||
*/
|
||||
#define CDNS_UART_MODEMCR_FCM 0x00000020 /* Automatic flow control mode */
|
||||
#define CDNS_UART_MODEMCR_RTS 0x00000002 /* Request to send output control */
|
||||
#define CDNS_UART_MODEMCR_DTR 0x00000001 /* Data Terminal Ready */
|
||||
|
||||
/*
|
||||
* Channel Status Register:
|
||||
* The channel status register (CSR) is provided to enable the control logic
|
||||
|
@ -915,7 +924,18 @@ static unsigned int cdns_uart_get_mctrl(struct uart_port *port)
|
|||
|
||||
static void cdns_uart_set_mctrl(struct uart_port *port, unsigned int mctrl)
|
||||
{
|
||||
/* N/A */
|
||||
u32 val;
|
||||
|
||||
val = cdns_uart_readl(CDNS_UART_MODEMCR_OFFSET);
|
||||
|
||||
val &= ~(CDNS_UART_MODEMCR_RTS | CDNS_UART_MODEMCR_DTR);
|
||||
|
||||
if (mctrl & TIOCM_RTS)
|
||||
val |= CDNS_UART_MODEMCR_RTS;
|
||||
if (mctrl & TIOCM_DTR)
|
||||
val |= CDNS_UART_MODEMCR_DTR;
|
||||
|
||||
cdns_uart_writel(val, CDNS_UART_MODEMCR_OFFSET);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CONSOLE_POLL
|
||||
|
|
Loading…
Reference in New Issue