MLK-10367 tty: serial: imx: set uart module clock to 80Mhz
authorFugang Duan <b38611@freescale.com>
Wed, 4 Mar 2015 07:26:59 +0000 (15:26 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:47:28 +0000 (14:47 -0500)
When UART module clock is great than 80Mhz, there may have risk after
confirming with IC owner. So set the maximum module clock to 80Mhz.

Signed-off-by: Fugang Duan <B38611@freescale.com>
(cherry picked from commit: 330a1245cb91583d9bc916bbb6d8c7d2c86b26f3)

drivers/tty/serial/imx.c

index 521a6e4..85fd2b5 100644 (file)
 #define DRIVER_NAME "IMX-uart"
 
 #define UART_NR 8
+#define IMX_MODULE_MAX_CLK_RATE        80000000
 
 /* i.MX21 type uart runs on all i.mx except i.MX1 and i.MX6q */
 enum imx_uart_type {
@@ -2135,6 +2136,9 @@ static int serial_imx_probe(struct platform_device *pdev)
        }
 
        sport->port.uartclk = clk_get_rate(sport->clk_per);
+       if (sport->port.uartclk > IMX_MODULE_MAX_CLK_RATE)
+               clk_set_rate(sport->clk_per, IMX_MODULE_MAX_CLK_RATE);
+       sport->port.uartclk = clk_get_rate(sport->clk_per);
 
        /* For register access, we only need to enable the ipg clock. */
        ret = clk_prepare_enable(sport->clk_ipg);