summaryrefslogtreecommitdiff
path: root/drivers/tty/serial
diff options
context:
space:
mode:
authorGerhard Engleder <eg@keba.com>2025-12-16 20:37:25 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-12-17 15:06:32 +0100
commitee086a69c3ba24bad01a9307b44dc58d1a22ad4e (patch)
treecb52b75a37a66dc609a405eb41e2b022cef83be9 /drivers/tty/serial
parentd84400dc43a7cc62030c367677f7fd34237a8d80 (diff)
serial: 8250_keba: Add ICR defines
Add defines for better readability of the Indexed Control Register (ICR) access. In enhanced mode SCR and LSR registers are used for ICR access. The behavior of these register is different in this mode and that shall be documented with dedicated defines. Suggested-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Gerhard Engleder <eg@keba.com> Link: https://patch.msgid.link/20251216193726.55449-3-gerhard@engleder-embedded.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial')
-rw-r--r--drivers/tty/serial/8250/8250_keba.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/tty/serial/8250/8250_keba.c b/drivers/tty/serial/8250/8250_keba.c
index e9e59ce79138..149953c6a288 100644
--- a/drivers/tty/serial/8250/8250_keba.c
+++ b/drivers/tty/serial/8250/8250_keba.c
@@ -51,6 +51,10 @@ enum kuart_mode {
#define KUART_CAPABILITY_RS232 BIT(KUART_MODE_RS232)
#define KUART_CAPABILITY_MASK GENMASK(3, 0)
+/* registers for Indexed Control Register access in enhanced mode */
+#define KUART_EMODE_ICR_OFFSET UART_SCR
+#define KUART_EMODE_ICR_VALUE UART_LSR
+
/* Additional Control Register DTR line configuration */
#define UART_ACR_DTRLC_MASK 0x18
#define UART_ACR_DTRLC_COMPAT 0x00
@@ -98,13 +102,13 @@ static void kuart_dtr_line_config(struct uart_8250_port *up, u8 dtrlc)
u8 acr;
/* set index register to 0 to access ACR register */
- serial_out(up, UART_SCR, UART_ACR);
+ serial_out(up, KUART_EMODE_ICR_OFFSET, UART_ACR);
/* set value register to 0x10 writing DTR mode (1,0) */
- acr = serial_in(up, UART_LSR);
+ acr = serial_in(up, KUART_EMODE_ICR_VALUE);
acr &= ~UART_ACR_DTRLC_MASK;
acr |= dtrlc;
- serial_out(up, UART_LSR, acr);
+ serial_out(up, KUART_EMODE_ICR_VALUE, acr);
}
static int kuart_rs485_config(struct uart_port *port, struct ktermios *termios,