Skip to content

Commit 60469c5

Browse files
committed
fix(spi): fix pin issue with GPIO0 (other pins than CS).
1 parent 58f0edf commit 60469c5

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

components/driver/spi_common.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -255,38 +255,38 @@ esp_err_t spicommon_bus_initialize_io(spi_host_device_t host, const spi_bus_conf
255255
if (native) {
256256
//All SPI native pin selections resolve to 1, so we put that here instead of trying to figure
257257
//out which FUNC_GPIOx_xSPIxx to grab; they all are defined to 1 anyway.
258-
if (bus_config->mosi_io_num > 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->mosi_io_num], 1);
259-
if (bus_config->miso_io_num > 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->miso_io_num], 1);
260-
if (use_quad && bus_config->quadwp_io_num > 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadwp_io_num], 1);
261-
if (use_quad && bus_config->quadhd_io_num > 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadhd_io_num], 1);
262-
if (bus_config->sclk_io_num > 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->sclk_io_num], 1);
258+
if (bus_config->mosi_io_num >= 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->mosi_io_num], 1);
259+
if (bus_config->miso_io_num >= 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->miso_io_num], 1);
260+
if (use_quad && bus_config->quadwp_io_num >= 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadwp_io_num], 1);
261+
if (use_quad && bus_config->quadhd_io_num >= 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadhd_io_num], 1);
262+
if (bus_config->sclk_io_num >= 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->sclk_io_num], 1);
263263
} else {
264264
//Use GPIO
265-
if (bus_config->mosi_io_num > 0) {
265+
if (bus_config->mosi_io_num >= 0) {
266266
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->mosi_io_num], PIN_FUNC_GPIO);
267267
gpio_set_direction(bus_config->mosi_io_num, GPIO_MODE_INPUT_OUTPUT);
268268
gpio_matrix_out(bus_config->mosi_io_num, io_signal[host].spid_out, false, false);
269269
gpio_matrix_in(bus_config->mosi_io_num, io_signal[host].spid_in, false);
270270
}
271-
if (bus_config->miso_io_num > 0) {
271+
if (bus_config->miso_io_num >= 0) {
272272
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->miso_io_num], PIN_FUNC_GPIO);
273273
gpio_set_direction(bus_config->miso_io_num, GPIO_MODE_INPUT_OUTPUT);
274274
gpio_matrix_out(bus_config->miso_io_num, io_signal[host].spiq_out, false, false);
275275
gpio_matrix_in(bus_config->miso_io_num, io_signal[host].spiq_in, false);
276276
}
277-
if (use_quad && bus_config->quadwp_io_num > 0) {
277+
if (use_quad && bus_config->quadwp_io_num >= 0) {
278278
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadwp_io_num], PIN_FUNC_GPIO);
279279
gpio_set_direction(bus_config->quadwp_io_num, GPIO_MODE_INPUT_OUTPUT);
280280
gpio_matrix_out(bus_config->quadwp_io_num, io_signal[host].spiwp_out, false, false);
281281
gpio_matrix_in(bus_config->quadwp_io_num, io_signal[host].spiwp_in, false);
282282
}
283-
if (use_quad && bus_config->quadhd_io_num > 0) {
283+
if (use_quad && bus_config->quadhd_io_num >= 0) {
284284
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadhd_io_num], PIN_FUNC_GPIO);
285285
gpio_set_direction(bus_config->quadhd_io_num, GPIO_MODE_INPUT_OUTPUT);
286286
gpio_matrix_out(bus_config->quadhd_io_num, io_signal[host].spihd_out, false, false);
287287
gpio_matrix_in(bus_config->quadhd_io_num, io_signal[host].spihd_in, false);
288288
}
289-
if (bus_config->sclk_io_num > 0) {
289+
if (bus_config->sclk_io_num >= 0) {
290290
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->sclk_io_num], PIN_FUNC_GPIO);
291291
gpio_set_direction(bus_config->sclk_io_num, GPIO_MODE_INPUT_OUTPUT);
292292
gpio_matrix_out(bus_config->sclk_io_num, io_signal[host].spiclk_out, false, false);

0 commit comments

Comments
 (0)