struct timer_list       timer;
        unsigned int            old_status;
        unsigned int            have_rtscts:1;
+       unsigned int            have_rtsgpio:1;
        unsigned int            dte_mode:1;
        unsigned int            irda_inv_rx:1;
        unsigned int            irda_inv_tx:1;
        rs485conf->delay_rts_after_send = 0;
 
        /* RTS is required to control the transmitter */
-       if (!sport->have_rtscts)
+       if (!sport->have_rtscts && !sport->have_rtsgpio)
                rs485conf->flags &= ~SER_RS485_ENABLED;
 
        if (rs485conf->flags & SER_RS485_ENABLED) {
        if (of_get_property(np, "fsl,dte-mode", NULL))
                sport->dte_mode = 1;
 
+       if (of_get_property(np, "rts-gpios", NULL))
+               sport->have_rtsgpio = 1;
+
        return 0;
 }
 #else