]> granicus.if.org Git - esp-idf/commitdiff
fix(spi): fix the issue when bus flag not set, dual mode cannot be used.
authormichael <xiaoxufeng@espressif.com>
Thu, 26 Apr 2018 07:38:21 +0000 (15:38 +0800)
committermichael <xiaoxufeng@espressif.com>
Tue, 8 May 2018 07:47:26 +0000 (15:47 +0800)
components/driver/spi_common.c

index d6a2dbd829738215d9f061d839e401f4d355d6ba..52f239af3bb1c097d03866c2ff7770c685f5e980 100644 (file)
@@ -320,7 +320,7 @@ esp_err_t spicommon_bus_initialize_io(spi_host_device_t host, const spi_bus_conf
         ESP_LOGD(SPI_TAG, "SPI%d use gpio matrix.", host );
         if (bus_config->mosi_io_num >= 0) {
             PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->mosi_io_num], FUNC_GPIO);
-            if (mosi_output) {
+            if (mosi_output || (temp_flag&SPICOMMON_BUSFLAG_DUAL)) {
                 gpio_set_direction(bus_config->mosi_io_num, GPIO_MODE_INPUT_OUTPUT);
                 gpio_matrix_out(bus_config->mosi_io_num, io_signal[host].spid_out, false, false);
             } else {
@@ -330,7 +330,7 @@ esp_err_t spicommon_bus_initialize_io(spi_host_device_t host, const spi_bus_conf
         }
         if (bus_config->miso_io_num >= 0) {
             PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->miso_io_num], FUNC_GPIO);
-            if (miso_output) {
+            if (miso_output || (temp_flag&SPICOMMON_BUSFLAG_DUAL)) {
                 gpio_set_direction(bus_config->miso_io_num, GPIO_MODE_INPUT_OUTPUT);
                 gpio_matrix_out(bus_config->miso_io_num, io_signal[host].spiq_out, false, false);
             } else {