spi_gpio->miso = devm_gpiod_get_optional(dev, "miso", GPIOD_IN);
        if (IS_ERR(spi_gpio->miso))
                return PTR_ERR(spi_gpio->miso);
-       if (!spi_gpio->miso)
-               /* HW configuration without MISO pin */
-               *mflags |= SPI_MASTER_NO_RX;
+       /*
+        * No setting SPI_MASTER_NO_RX here - if there is only a MOSI
+        * pin connected the host can still do RX by changing the
+        * direction of the line.
+        */
 
        spi_gpio->sck = devm_gpiod_get(dev, "sck", GPIOD_OUT_LOW);
        if (IS_ERR(spi_gpio->mosi))
        spi_gpio->bitbang.chipselect = spi_gpio_chipselect;
        spi_gpio->bitbang.set_line_direction = spi_gpio_set_direction;
 
-       if ((master_flags & (SPI_MASTER_NO_TX | SPI_MASTER_NO_RX)) == 0) {
+       if ((master_flags & SPI_MASTER_NO_TX) == 0) {
                spi_gpio->bitbang.txrx_word[SPI_MODE_0] = spi_gpio_txrx_word_mode0;
                spi_gpio->bitbang.txrx_word[SPI_MODE_1] = spi_gpio_txrx_word_mode1;
                spi_gpio->bitbang.txrx_word[SPI_MODE_2] = spi_gpio_txrx_word_mode2;