summaryrefslogtreecommitdiff
path: root/io-module/gpio.c
diff options
context:
space:
mode:
authorsharma-mts <86847754+sharma-mts@users.noreply.github.com>2022-01-25 10:50:42 -0600
committerJohn Klug <john.klug@multitech.com>2022-02-16 16:13:43 -0600
commit9934194837157908acdf39665a4730d46176eb83 (patch)
tree3419154bae8998d3579848779abd4a4832a1dec2 /io-module/gpio.c
parent25a9a0239427de73c777b827d922642e6f46b646 (diff)
downloadmts-io-9934194837157908acdf39665a4730d46176eb83.tar.gz
mts-io-9934194837157908acdf39665a4730d46176eb83.tar.bz2
mts-io-9934194837157908acdf39665a4730d46176eb83.zip
GPIO descriptor feature, remove mts-io-0 platform device4.9.0
Diffstat (limited to 'io-module/gpio.c')
-rw-r--r--io-module/gpio.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/io-module/gpio.c b/io-module/gpio.c
index e754ed6..10f076b 100644
--- a/io-module/gpio.c
+++ b/io-module/gpio.c
@@ -65,7 +65,11 @@ ssize_t mts_attr_show_gpio_pin(struct device *dev,
mutex_lock(&mts_io_mutex);
- value = gpio_get_value_cansleep(pin->pin.gpio);
+ if (pin->do_gpio_desc == 1) {
+ value = gpiod_get_value_cansleep(pin->desc);
+ } else {
+ value = gpio_get_value_cansleep(pin->pin.gpio);
+ }
mutex_unlock(&mts_io_mutex);
@@ -99,9 +103,11 @@ static ssize_t mts_attr_store_gpio_pin(struct device *dev,
}
mutex_lock(&mts_io_mutex);
-
- gpio_set_value_cansleep(pin->pin.gpio, value);
-
+ if (pin->do_gpio_desc == 1) {
+ gpiod_set_value_cansleep(pin->desc, value);
+ } else {
+ gpio_set_value_cansleep(pin->pin.gpio, value);
+ }
mutex_unlock(&mts_io_mutex);
return count;
@@ -112,12 +118,17 @@ static int reset_gpio_pin(struct gpio_pin *pin, unsigned int delay_ms, unsigned
if (!pin) {
return -ENODEV;
}
-
- gpio_set_value_cansleep(pin->pin.gpio, value);
-
+ if (pin->do_gpio_desc == 1) {
+ gpiod_set_value_cansleep(pin->desc, value);
+ } else {
+ gpio_set_value_cansleep(pin->pin.gpio, value);
+ }
mdelay(delay_ms);
-
- gpio_set_value_cansleep(pin->pin.gpio, !value);
+ if (pin->do_gpio_desc == 1) {
+ gpiod_set_value_cansleep(pin->desc, !value);
+ } else {
+ gpio_set_value_cansleep(pin->pin.gpio, !value);
+ }
return 0;
}