fix(spi): fix pin issue with GPIO0 (other pins than CS).
This commit is contained in:
parent
58f0edfd03
commit
60469c500a
1 changed files with 10 additions and 10 deletions
|
@ -255,38 +255,38 @@ esp_err_t spicommon_bus_initialize_io(spi_host_device_t host, const spi_bus_conf
|
||||||
if (native) {
|
if (native) {
|
||||||
//All SPI native pin selections resolve to 1, so we put that here instead of trying to figure
|
//All SPI native pin selections resolve to 1, so we put that here instead of trying to figure
|
||||||
//out which FUNC_GPIOx_xSPIxx to grab; they all are defined to 1 anyway.
|
//out which FUNC_GPIOx_xSPIxx to grab; they all are defined to 1 anyway.
|
||||||
if (bus_config->mosi_io_num > 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->mosi_io_num], 1);
|
if (bus_config->mosi_io_num >= 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->mosi_io_num], 1);
|
||||||
if (bus_config->miso_io_num > 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->miso_io_num], 1);
|
if (bus_config->miso_io_num >= 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->miso_io_num], 1);
|
||||||
if (use_quad && bus_config->quadwp_io_num > 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadwp_io_num], 1);
|
if (use_quad && bus_config->quadwp_io_num >= 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadwp_io_num], 1);
|
||||||
if (use_quad && bus_config->quadhd_io_num > 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadhd_io_num], 1);
|
if (use_quad && bus_config->quadhd_io_num >= 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadhd_io_num], 1);
|
||||||
if (bus_config->sclk_io_num > 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->sclk_io_num], 1);
|
if (bus_config->sclk_io_num >= 0) PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->sclk_io_num], 1);
|
||||||
} else {
|
} else {
|
||||||
//Use GPIO
|
//Use GPIO
|
||||||
if (bus_config->mosi_io_num > 0) {
|
if (bus_config->mosi_io_num >= 0) {
|
||||||
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->mosi_io_num], PIN_FUNC_GPIO);
|
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->mosi_io_num], PIN_FUNC_GPIO);
|
||||||
gpio_set_direction(bus_config->mosi_io_num, GPIO_MODE_INPUT_OUTPUT);
|
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);
|
gpio_matrix_out(bus_config->mosi_io_num, io_signal[host].spid_out, false, false);
|
||||||
gpio_matrix_in(bus_config->mosi_io_num, io_signal[host].spid_in, false);
|
gpio_matrix_in(bus_config->mosi_io_num, io_signal[host].spid_in, false);
|
||||||
}
|
}
|
||||||
if (bus_config->miso_io_num > 0) {
|
if (bus_config->miso_io_num >= 0) {
|
||||||
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->miso_io_num], PIN_FUNC_GPIO);
|
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->miso_io_num], PIN_FUNC_GPIO);
|
||||||
gpio_set_direction(bus_config->miso_io_num, GPIO_MODE_INPUT_OUTPUT);
|
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);
|
gpio_matrix_out(bus_config->miso_io_num, io_signal[host].spiq_out, false, false);
|
||||||
gpio_matrix_in(bus_config->miso_io_num, io_signal[host].spiq_in, false);
|
gpio_matrix_in(bus_config->miso_io_num, io_signal[host].spiq_in, false);
|
||||||
}
|
}
|
||||||
if (use_quad && bus_config->quadwp_io_num > 0) {
|
if (use_quad && bus_config->quadwp_io_num >= 0) {
|
||||||
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadwp_io_num], PIN_FUNC_GPIO);
|
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadwp_io_num], PIN_FUNC_GPIO);
|
||||||
gpio_set_direction(bus_config->quadwp_io_num, GPIO_MODE_INPUT_OUTPUT);
|
gpio_set_direction(bus_config->quadwp_io_num, GPIO_MODE_INPUT_OUTPUT);
|
||||||
gpio_matrix_out(bus_config->quadwp_io_num, io_signal[host].spiwp_out, false, false);
|
gpio_matrix_out(bus_config->quadwp_io_num, io_signal[host].spiwp_out, false, false);
|
||||||
gpio_matrix_in(bus_config->quadwp_io_num, io_signal[host].spiwp_in, false);
|
gpio_matrix_in(bus_config->quadwp_io_num, io_signal[host].spiwp_in, false);
|
||||||
}
|
}
|
||||||
if (use_quad && bus_config->quadhd_io_num > 0) {
|
if (use_quad && bus_config->quadhd_io_num >= 0) {
|
||||||
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadhd_io_num], PIN_FUNC_GPIO);
|
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->quadhd_io_num], PIN_FUNC_GPIO);
|
||||||
gpio_set_direction(bus_config->quadhd_io_num, GPIO_MODE_INPUT_OUTPUT);
|
gpio_set_direction(bus_config->quadhd_io_num, GPIO_MODE_INPUT_OUTPUT);
|
||||||
gpio_matrix_out(bus_config->quadhd_io_num, io_signal[host].spihd_out, false, false);
|
gpio_matrix_out(bus_config->quadhd_io_num, io_signal[host].spihd_out, false, false);
|
||||||
gpio_matrix_in(bus_config->quadhd_io_num, io_signal[host].spihd_in, false);
|
gpio_matrix_in(bus_config->quadhd_io_num, io_signal[host].spihd_in, false);
|
||||||
}
|
}
|
||||||
if (bus_config->sclk_io_num > 0) {
|
if (bus_config->sclk_io_num >= 0) {
|
||||||
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->sclk_io_num], PIN_FUNC_GPIO);
|
PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[bus_config->sclk_io_num], PIN_FUNC_GPIO);
|
||||||
gpio_set_direction(bus_config->sclk_io_num, GPIO_MODE_INPUT_OUTPUT);
|
gpio_set_direction(bus_config->sclk_io_num, GPIO_MODE_INPUT_OUTPUT);
|
||||||
gpio_matrix_out(bus_config->sclk_io_num, io_signal[host].spiclk_out, false, false);
|
gpio_matrix_out(bus_config->sclk_io_num, io_signal[host].spiclk_out, false, false);
|
||||||
|
|
Loading…
Reference in a new issue