aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/omap-serial.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/tty/serial/omap-serial.c')
-rw-r--r--drivers/tty/serial/omap-serial.c23
1 files changed, 4 insertions, 19 deletions
diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
index 7754053deeda..53d59e9b944a 100644
--- a/drivers/tty/serial/omap-serial.c
+++ b/drivers/tty/serial/omap-serial.c
@@ -1,3 +1,4 @@
1// SPDX-License-Identifier: GPL-2.0+
1/* 2/*
2 * Driver for OMAP-UART controller. 3 * Driver for OMAP-UART controller.
3 * Based on drivers/serial/8250.c 4 * Based on drivers/serial/8250.c
@@ -8,11 +9,6 @@
8 * Govindraj R <govindraj.raja@ti.com> 9 * Govindraj R <govindraj.raja@ti.com>
9 * Thara Gopinath <thara@ti.com> 10 * Thara Gopinath <thara@ti.com>
10 * 11 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * Note: This driver is made separate from 8250 driver as we cannot 12 * Note: This driver is made separate from 8250 driver as we cannot
17 * over load 8250 driver with omap platform specific configuration for 13 * over load 8250 driver with omap platform specific configuration for
18 * features like DMA, it makes easier to implement features like DMA and 14 * features like DMA, it makes easier to implement features like DMA and
@@ -610,7 +606,7 @@ static irqreturn_t serial_omap_irq(int irq, void *dev_id)
610 default: 606 default:
611 break; 607 break;
612 } 608 }
613 } while (!(iir & UART_IIR_NO_INT) && max_count--); 609 } while (max_count--);
614 610
615 spin_unlock(&up->port.lock); 611 spin_unlock(&up->port.lock);
616 612
@@ -693,7 +689,7 @@ static void serial_omap_set_mctrl(struct uart_port *port, unsigned int mctrl)
693 if ((mctrl & TIOCM_RTS) && (port->status & UPSTAT_AUTORTS)) 689 if ((mctrl & TIOCM_RTS) && (port->status & UPSTAT_AUTORTS))
694 up->efr |= UART_EFR_RTS; 690 up->efr |= UART_EFR_RTS;
695 else 691 else
696 up->efr &= UART_EFR_RTS; 692 up->efr &= ~UART_EFR_RTS;
697 serial_out(up, UART_EFR, up->efr); 693 serial_out(up, UART_EFR, up->efr);
698 serial_out(up, UART_LCR, lcr); 694 serial_out(up, UART_LCR, lcr);
699 695
@@ -1606,7 +1602,6 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up,
1606 struct device_node *np) 1602 struct device_node *np)
1607{ 1603{
1608 struct serial_rs485 *rs485conf = &up->port.rs485; 1604 struct serial_rs485 *rs485conf = &up->port.rs485;
1609 u32 rs485_delay[2];
1610 enum of_gpio_flags flags; 1605 enum of_gpio_flags flags;
1611 int ret; 1606 int ret;
1612 1607
@@ -1637,17 +1632,7 @@ static int serial_omap_probe_rs485(struct uart_omap_port *up,
1637 up->rts_gpio = -EINVAL; 1632 up->rts_gpio = -EINVAL;
1638 } 1633 }
1639 1634
1640 if (of_property_read_u32_array(np, "rs485-rts-delay", 1635 of_get_rs485_mode(np, rs485conf);
1641 rs485_delay, 2) == 0) {
1642 rs485conf->delay_rts_before_send = rs485_delay[0];
1643 rs485conf->delay_rts_after_send = rs485_delay[1];
1644 }
1645
1646 if (of_property_read_bool(np, "rs485-rx-during-tx"))
1647 rs485conf->flags |= SER_RS485_RX_DURING_TX;
1648
1649 if (of_property_read_bool(np, "linux,rs485-enabled-at-boot-time"))
1650 rs485conf->flags |= SER_RS485_ENABLED;
1651 1636
1652 return 0; 1637 return 0;
1653} 1638}