struct device *dev = port->dev;
        u32 rs485_delay[2];
        int ret;
+       int rx_during_tx_gpio_flag;
 
        ret = device_property_read_u32_array(dev, "rs485-rts-delay",
                                             rs485_delay, 2);
        if (port->rs485_term_gpio)
                port->rs485_supported.flags |= SER_RS485_TERMINATE_BUS;
 
+       rx_during_tx_gpio_flag = (rs485conf->flags & SER_RS485_RX_DURING_TX) ?
+                                GPIOD_OUT_HIGH : GPIOD_OUT_LOW;
+       port->rs485_rx_during_tx_gpio = devm_gpiod_get_optional(dev,
+                                                               "rs485-rx-during-tx",
+                                                               rx_during_tx_gpio_flag);
+       if (IS_ERR(port->rs485_rx_during_tx_gpio)) {
+               ret = PTR_ERR(port->rs485_rx_during_tx_gpio);
+               port->rs485_rx_during_tx_gpio = NULL;
+               return dev_err_probe(dev, ret, "Cannot get rs485-rx-during-tx-gpios\n");
+       }
+
        return 0;
 }
 EXPORT_SYMBOL_GPL(uart_get_rs485_mode);
 
        struct serial_rs485     rs485;
        struct serial_rs485     rs485_supported;        /* Supported mask for serial_rs485 */
        struct gpio_desc        *rs485_term_gpio;       /* enable RS485 bus termination */
+       struct gpio_desc        *rs485_rx_during_tx_gpio; /* Output GPIO that sets the state of RS485 RX during TX */
        struct serial_iso7816   iso7816;
        void                    *private_data;          /* generic platform data pointer */
 };