• Sherry Sun's avatar
    tty: serial: fsl_lpuart: disable the CTS when send break signal · c4c81db5
    Sherry Sun authored
    LPUART IP has a bug that it treats the CTS as higher priority than the
    break signal, which cause the break signal sending through UARTCTRL_SBK
    may impacted by the CTS input if the HW flow control is enabled.
    
    Add this workaround patch to fix the IP bug, we can disable CTS before
    asserting SBK to avoid any interference from CTS, and re-enable it when
    break off.
    
    Such as for the bluetooth chip power save feature, host can let the BT
    chip get into sleep state by sending a UART break signal, and wake it up
    by turning off the UART break. If the BT chip enters the sleep mode
    successfully, it will pull up the CTS line, if the BT chip is woken up,
    it will pull down the CTS line. If without this workaround patch, the
    UART TX pin cannot send the break signal successfully as it affected by
    the BT CTS pin. After adding this patch, the BT power save feature can
    work well.
    Signed-off-by: default avatarSherry Sun <sherry.sun@nxp.com>
    Link: https://lore.kernel.org/r/20221214031137.28815-2-sherry.sun@nxp.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    c4c81db5
fsl_lpuart.c 79.5 KB