[COMMON] serial: samsung: set CLKREQ/STOP in according to USI_HWACG guide
authorYoungmin Nam <youngmin.nam@samsung.com>
Mon, 2 Jan 2017 09:12:14 +0000 (18:12 +0900)
committermyung-su.cha <myung-su.cha@samsung.com>
Wed, 9 May 2018 12:14:45 +0000 (21:14 +0900)
Change-Id: I25454e7d518aa289a348a6cafac1207984aa4efa
Signed-off-by: Youngmin Nam <youngmin.nam@samsung.com>
drivers/tty/serial/samsung.c
include/linux/serial_s3c.h

index c11d76a756b00240ca32c1cca6c4528536f886d6..99ed08ccde8011631697178d5d71ac255cbbc8c5 100644 (file)
@@ -1273,6 +1273,13 @@ static void s3c24xx_serial_resetport(struct uart_port *port,
 
        wr_regl(port, S3C2410_UCON,  ucon | cfg->ucon);
 
+#ifdef CONFIG_SERIAL_SAMSUNG_HWACG
+       /* set the HWACG option bit in case of UART Rx mode.
+        * CLKREQ_ON = 1, CLKSTOP_ON = 0 (set USI_OPTION[2:1] = 2'h1)
+        */
+       wr_regl(port, USI_HWACG, USI_HWACG_CLKREQ_ON);
+#endif
+
        /* reset both fifos */
        wr_regl(port, S3C2410_UFCON, cfg->ufcon | S3C2410_UFCON_RESETBOTH);
        wr_regl(port, S3C2410_UFCON, cfg->ufcon);
index 16e0a4a4c5cd4f8929420ef24b3ffacf7199bb03..a68ceb21d019bef9379225ee43697be1f7a9d44e 100644 (file)
 #define S3C2410_UERSTAT          (0x14)
 #define S3C2410_UFSTAT   (0x18)
 #define S3C2410_UMSTAT   (0x1C)
+#define USI_HWACG        (0xC8)
+
+#define USI_HWACG_CLKREQ_ON            (1<<1)
+#define USI_HWACG_CLKSTOP_ON           (1<<2)
 
 #define S3C2410_LCON_CFGMASK     ((0xF<<3)|(0x3))