diff options
Diffstat (limited to 'drivers/tty/serial/omap-serial.c')
-rw-r--r-- | drivers/tty/serial/omap-serial.c | 23 |
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 | } |