/* * MTG RFID Companion - Shared SPI bus manager */ #include #include "esp_log.h" #include "spi_bus_manager.h" #include "hw_pins.h" static const char *TAG = "spi_bus"; /* 240 x 80 rows x 2 bytes per pixel. Largest contiguous DMA transfer the * display engine will issue. */ #define HW_SPI_MAX_TRANSFER_SZ (240 * 80 * sizeof(uint16_t)) esp_err_t spi_bus_manager_init(void) { spi_bus_config_t buscfg = { .sclk_io_num = HW_SPI_SCK_GPIO, .mosi_io_num = HW_SPI_MOSI_GPIO, .miso_io_num = HW_SPI_MISO_GPIO, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = HW_SPI_MAX_TRANSFER_SZ, }; esp_err_t ret = spi_bus_initialize(HW_SPI_HOST, &buscfg, SPI_DMA_CH_AUTO); if (ret != ESP_OK) { ESP_LOGE(TAG, "spi_bus_initialize failed: %s", esp_err_to_name(ret)); return ret; } ESP_LOGI(TAG, "SPI2_HOST ready: SCK=%d MOSI=%d MISO=%d", HW_SPI_SCK_GPIO, HW_SPI_MOSI_GPIO, HW_SPI_MISO_GPIO); return ESP_OK; }