|
@@ -137,6 +137,7 @@ struct mxs_auart_port {
|
|
|
#define MXS_AUART_DMA_ENABLED 0x2
|
|
|
#define MXS_AUART_DMA_TX_SYNC 2 /* bit 2 */
|
|
|
#define MXS_AUART_DMA_RX_READY 3 /* bit 3 */
|
|
|
+#define MXS_AUART_RTSCTS 4 /* bit 4 */
|
|
|
unsigned long flags;
|
|
|
unsigned int ctrl;
|
|
|
enum mxs_auart_type devtype;
|
|
@@ -639,7 +640,8 @@ static void mxs_auart_settermios(struct uart_port *u,
|
|
|
* we can only implement the DMA support for auart
|
|
|
* in mx28.
|
|
|
*/
|
|
|
- if (is_imx28_auart(s) && (s->flags & MXS_AUART_DMA_CONFIG)) {
|
|
|
+ if (is_imx28_auart(s) && (s->flags & MXS_AUART_DMA_CONFIG)
|
|
|
+ && test_bit(MXS_AUART_RTSCTS, &s->flags)) {
|
|
|
if (!mxs_auart_dma_init(s))
|
|
|
/* enable DMA tranfer */
|
|
|
ctrl2 |= AUART_CTRL2_TXDMAE | AUART_CTRL2_RXDMAE
|
|
@@ -1009,6 +1011,9 @@ static int serial_mxs_probe_dt(struct mxs_auart_port *s,
|
|
|
|
|
|
s->flags |= MXS_AUART_DMA_CONFIG;
|
|
|
|
|
|
+ if (of_get_property(np, "fsl,uart-has-rtscts", NULL))
|
|
|
+ set_bit(MXS_AUART_RTSCTS, &s->flags);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|