From 086b95577ffa893125aa9f21c02b4dff9b712b5a Mon Sep 17 00:00:00 2001 From: Mike Nicholson Date: Thu, 6 May 2021 15:07:56 -0500 Subject: Add support for sub-board EEPROM, fix calls to i2c gpio extender (check cansleep) --- mtac.c | 15 ++++++++++++--- mtac.h | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/mtac.c b/mtac.c index cb31187..c2cad4e 100644 --- a/mtac.c +++ b/mtac.c @@ -27,7 +27,7 @@ static const char* eeprom_file_name[NUM_AP] = { #endif #ifdef mtcpmhs /*2nd */ - "2-0050/eeprom", "2-0052/eeprom", "2-0050/eeprom" + "2-0050/eeprom", "2-0052/eeprom", "1-0052/eeprom" #endif #endif // NUM_AP > 0 }; @@ -250,9 +250,14 @@ ssize_t mtac_attr_show_ap_gpio_pin(struct kobject *kobj, log_debug("mtac_attr_show_ap_gpio_pin: State of mtac mutex is %s", mutex_is_locked(&mtac_mutex) ? "locked" : "unlocked"); + mutex_lock(&mtac_mutex); - value = gpio_get_value(pin->pin.gpio); + if(gpiod_cansleep(gpio_to_desc(pin->pin.gpio))) { + value = gpio_get_value_cansleep(pin->pin.gpio); + } else { + value = gpio_get_value(pin->pin.gpio); + } mutex_unlock(&mtac_mutex); @@ -299,7 +304,11 @@ ssize_t mtac_attr_store_ap_gpio_pin(struct kobject *kobj, mutex_is_locked(&mtac_mutex) ? "locked" : "unlocked"); mutex_lock(&mtac_mutex); - gpio_set_value(pin->pin.gpio, value); + if(gpiod_cansleep(gpio_to_desc(pin->pin.gpio))) { + gpio_set_value_cansleep(pin->pin.gpio, value); + } else { + gpio_set_value(pin->pin.gpio, value); + } mutex_unlock(&mtac_mutex); diff --git a/mtac.h b/mtac.h index 8b5b09d..679a16c 100644 --- a/mtac.h +++ b/mtac.h @@ -17,13 +17,13 @@ #define NUM_AP 0 #endif - #define PRODUCT_ID_MTAC_GPIOB "MTAC-GPIOB" #define PRODUCT_ID_MTAC_MFSER "MTAC-MFSER" #define PRODUCT_ID_MTAC_ETH "MTAC-ETH" #define PRODUCT_ID_MTAC_LORA "MTAC-LORA" #define PRODUCT_ID_MTAC_PULSE "MTAC-PULSE" #define PRODUCT_ID_MTAC_XDOT "MTAC-XDOT" +#define PRODUCT_ID_MTCDT3AC_DC "MTCDT3ACDC" /* Hardware version must be fewer characters than hw_version in struct mts_ap_eeprom_layout */ -- cgit v1.2.3