]> Pileus Git - ~andy/linux/blobdiff - drivers/tty/serial/mxs-auart.c
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux...
[~andy/linux] / drivers / tty / serial / mxs-auart.c
index f85b8e6d0346fc472fbc835b0451a706ce46aab3..10e9d70b5c4066fced345848f592dc11582c1cfb 100644 (file)
@@ -32,7 +32,6 @@
 #include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/io.h>
-#include <linux/pinctrl/consumer.h>
 #include <linux/of_device.h>
 #include <linux/dma-mapping.h>
 #include <linux/dmaengine.h>
@@ -134,10 +133,10 @@ enum mxs_auart_type {
 struct mxs_auart_port {
        struct uart_port port;
 
-#define MXS_AUART_DMA_CONFIG   0x1
 #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;
@@ -640,7 +639,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)
+                               && test_bit(MXS_AUART_RTSCTS, &s->flags)) {
                        if (!mxs_auart_dma_init(s))
                                /* enable DMA tranfer */
                                ctrl2 |= AUART_CTRL2_TXDMAE | AUART_CTRL2_RXDMAE
@@ -1008,7 +1008,8 @@ static int serial_mxs_probe_dt(struct mxs_auart_port *s,
        }
        s->port.line = ret;
 
-       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;
 }
@@ -1021,7 +1022,6 @@ static int mxs_auart_probe(struct platform_device *pdev)
        u32 version;
        int ret = 0;
        struct resource *r;
-       struct pinctrl *pinctrl;
 
        s = kzalloc(sizeof(struct mxs_auart_port), GFP_KERNEL);
        if (!s) {
@@ -1035,12 +1035,6 @@ static int mxs_auart_probe(struct platform_device *pdev)
        else if (ret < 0)
                goto out_free;
 
-       pinctrl = devm_pinctrl_get_select_default(&pdev->dev);
-       if (IS_ERR(pinctrl)) {
-               ret = PTR_ERR(pinctrl);
-               goto out_free;
-       }
-
        if (of_id) {
                pdev->id_entry = of_id->data;
                s->devtype = pdev->id_entry->driver_data;