add "MISO" to SPI system config

This commit is contained in:
Philippe G
2021-10-31 16:14:33 -07:00
parent 2805629c4b
commit 2a6f5c8a10
2 changed files with 8 additions and 3 deletions

View File

@@ -76,6 +76,7 @@ static struct {
static struct {
struct arg_int *data;
struct arg_int *miso;
struct arg_int *clk;
struct arg_int *dc;
struct arg_int *host;
@@ -453,6 +454,7 @@ static int do_spiconfig_cmd(int argc, char **argv){
/* Check "--clk" option */
nerrors+=is_output_gpio(spiconfig_args.clk, f, &spi_config.sclk_io_num, true);
nerrors+=is_output_gpio(spiconfig_args.data, f, &spi_config.mosi_io_num, true);
nerrors+=is_output_gpio(spiconfig_args.miso, f, &spi_config.miso_io_num, true);
nerrors+=is_output_gpio(spiconfig_args.dc, f, &dc, true);
nerrors+=is_output_gpio(spiconfig_args.host, f, &host, true);
@@ -1030,7 +1032,8 @@ static void register_spiconfig(void)
{
spiconfig_args.clear = arg_lit0(NULL, "clear", "Clear configuration");
spiconfig_args.clk = arg_int0("k", "clk", "<n>", "Clock GPIO");
spiconfig_args.data = arg_int0("d","data", "<n>","Data GPIO");
spiconfig_args.data = arg_int0("d","data", "<n>","Data OUT GPIO");
spiconfig_args.miso = arg_int0("d","miso", "<n>","Data IN GPIO");
spiconfig_args.dc = arg_int0("c","dc", "<n>", "DC GPIO");
spiconfig_args.host= arg_int0("h", "host", "1|2", "SPI Host Number");
spiconfig_args.end = arg_end(4);

View File

@@ -391,7 +391,7 @@ esp_err_t config_spi_set(const spi_bus_config_t * config, int host, int dc){
esp_err_t err = ESP_OK;
char * config_buffer=calloc(buffer_size,1);
if(config_buffer) {
snprintf(config_buffer,buffer_size,"data=%u,clk=%u,dc=%u,host=%u",config->mosi_io_num,config->sclk_io_num,dc,host);
snprintf(config_buffer,buffer_size,"data=%u,clk=%u,dc=%u,host=%u,miso=%d",config->mosi_io_num,config->sclk_io_num,dc,host,config->miso_io_num);
log_send_messaging(MESSAGING_INFO,"Updating SPI configuration to %s",config_buffer);
err = config_set_value(NVS_TYPE_STR, "spi_config", config_buffer);
if(err!=ESP_OK){
@@ -561,7 +561,7 @@ const set_GPIO_struct_t * get_gpio_struct(){
*/
const spi_bus_config_t * config_spi_get(spi_host_device_t * spi_host) {
char *nvs_item, *p;
static spi_bus_config_t spi = {
static EXT_RAM_ATTR spi_bus_config_t spi = {
.mosi_io_num = -1,
.sclk_io_num = -1,
.miso_io_num = -1,
@@ -572,6 +572,8 @@ const spi_bus_config_t * config_spi_get(spi_host_device_t * spi_host) {
nvs_item = config_alloc_get_str("spi_config", CONFIG_SPI_CONFIG, NULL);
if (nvs_item) {
if ((p = strcasestr(nvs_item, "data")) != NULL) spi.mosi_io_num = atoi(strchr(p, '=') + 1);
if ((p = strcasestr(nvs_item, "mosi")) != NULL) spi.mosi_io_num = atoi(strchr(p, '=') + 1);
if ((p = strcasestr(nvs_item, "miso")) != NULL) spi.miso_io_num = atoi(strchr(p, '=') + 1);
if ((p = strcasestr(nvs_item, "clk")) != NULL) spi.sclk_io_num = atoi(strchr(p, '=') + 1);
if ((p = strcasestr(nvs_item, "dc")) != NULL) spi_system_dc_gpio = atoi(strchr(p, '=') + 1);
if ((p = strcasestr(nvs_item, "host")) != NULL) spi_system_host = atoi(strchr(p, '=') + 1);