serial: sprd: Add loopback function support
Add loopback function support for Spreadtrum serial controller. Signed-off-by: Baolin Wang <baolin.wang@linaro.org> Link: https://lore.kernel.org/r/1275cd9968f1ceb5ac049cc23f1e508025cd552f.1566375260.git.baolin.wang@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
6cbdf5c659
Коммит
37ba760b6b
|
@ -79,6 +79,7 @@
|
|||
/* control register 1 */
|
||||
#define SPRD_CTL1 0x001C
|
||||
#define SPRD_DMA_EN BIT(15)
|
||||
#define SPRD_LOOPBACK_EN BIT(14)
|
||||
#define RX_HW_FLOW_CTL_THLD BIT(6)
|
||||
#define RX_HW_FLOW_CTL_EN BIT(7)
|
||||
#define TX_HW_FLOW_CTL_EN BIT(8)
|
||||
|
@ -164,7 +165,14 @@ static unsigned int sprd_get_mctrl(struct uart_port *port)
|
|||
|
||||
static void sprd_set_mctrl(struct uart_port *port, unsigned int mctrl)
|
||||
{
|
||||
/* nothing to do */
|
||||
u32 val = serial_in(port, SPRD_CTL1);
|
||||
|
||||
if (mctrl & TIOCM_LOOP)
|
||||
val |= SPRD_LOOPBACK_EN;
|
||||
else
|
||||
val &= ~SPRD_LOOPBACK_EN;
|
||||
|
||||
serial_out(port, SPRD_CTL1, val);
|
||||
}
|
||||
|
||||
static void sprd_stop_rx(struct uart_port *port)
|
||||
|
|
Загрузка…
Ссылка в новой задаче