serial: atmel: add support for new UART version
authorNicolas Ferre <nicolas.ferre@atmel.com>
Tue, 26 Jan 2016 10:26:15 +0000 (11:26 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 7 Feb 2016 06:40:25 +0000 (22:40 -0800)
Starting with sama5d2, the new UART revision has an hardware timer. So, add it
to the IP detection code and set the "has_hw_timer" property for it.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Reported-by: David Mosberger <davidm@egauge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/atmel_serial.c

index a429cfef02862256dd051994964302314b6d150c..ede011828727d4093b3b6da2fe7aaee8dc17bcc5 100644 (file)
@@ -1710,15 +1710,16 @@ static void atmel_get_ip_name(struct uart_port *port)
        struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
        int name = atmel_uart_readl(port, ATMEL_US_NAME);
        u32 version;
-       u32 usart, dbgu_uart;
+       u32 usart, dbgu_uart, new_uart;
        /* ASCII decoding for IP version */
        usart = 0x55534152;     /* USAR(T) */
        dbgu_uart = 0x44424755; /* DBGU */
+       new_uart = 0x55415254;  /* UART */
 
        atmel_port->has_hw_timer = false;
 
-       if (name == usart) {
-               dev_dbg(port->dev, "Usart with hw timer\n");
+       if (name == usart || name == new_uart) {
+               dev_dbg(port->dev, "Usart or uart with hw timer\n");
                atmel_port->has_hw_timer = true;
        } else if (name == dbgu_uart) {
                dev_dbg(port->dev, "Dbgu or uart without hw timer\n");