]> granicus.if.org Git - esp-idf/commitdiff
spi: move gpio direction config to common func for coinsistence
authormichael <xiaoxufeng@espressif.com>
Tue, 2 Oct 2018 09:09:02 +0000 (17:09 +0800)
committermichael <xiaoxufeng@espressif.com>
Thu, 4 Oct 2018 06:57:31 +0000 (14:57 +0800)
(MINOR CHANGE)

components/driver/spi_common.c
components/driver/spi_master.c
components/driver/spi_slave.c

index cce50cb8ff7557cfab5091202f3624b0d5f92a0b..fbaabaa7343b7d50e5379b48fd1eaf430c9674c7 100644 (file)
@@ -312,6 +312,7 @@ void spicommon_cs_initialize(spi_host_device_t host, int cs_io_num, int cs_num,
         gpio_iomux_out(cs_io_num, FUNC_SPI, false);
     } else {
         //Use GPIO matrix
+        gpio_set_direction(cs_io_num, GPIO_MODE_INPUT_OUTPUT);
         gpio_matrix_out(cs_io_num, spi_periph_signal[host].spics_out[cs_num], false, false);
         if (cs_num == 0) gpio_matrix_in(cs_io_num, spi_periph_signal[host].spics_in, false);
         PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[cs_io_num], FUNC_GPIO);
index 0abf93c1bb0428d1ca16000579331ab0a32b9769..ffbedd203d13aad7f64b1ea4ed2ad0a18a8c7a95 100644 (file)
@@ -484,7 +484,6 @@ Specify ``SPI_DEVICE_NO_DUMMY`` to ignore this checking. Then you can output dat
 
     //Set CS pin, CS options
     if (dev_config->spics_io_num >= 0) {
-        gpio_set_direction(dev_config->spics_io_num, GPIO_MODE_OUTPUT);
         spicommon_cs_initialize(host, dev_config->spics_io_num, freecs, !(spihost[host]->flags&SPICOMMON_BUSFLAG_NATIVE_PINS));
     }
     if (dev_config->flags&SPI_DEVICE_CLK_AS_CS) {
index ca5db19e90ddcf29e3085c1f464823f7f91c6282..970bc6910826bb91053d8471e68e477042766611 100644 (file)
@@ -136,7 +136,6 @@ esp_err_t spi_slave_initialize(spi_host_device_t host, const spi_bus_config_t *b
         ret = err;
         goto cleanup;
     }
-    gpio_set_direction(slave_config->spics_io_num, GPIO_MODE_INPUT);
     spicommon_cs_initialize(host, slave_config->spics_io_num, 0, !bus_is_iomux(spihost[host]));
     // The slave DMA suffers from unexpected transactions. Forbid reading if DMA is enabled by disabling the CS line.
     if (dma_chan != 0) freeze_cs(spihost[host]);