summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorTroy Kisky <troy.kisky@boundarydevices.com>2015-06-09 17:46:50 -0700
committerOtavio Salvador <otavio@ossystems.com.br>2016-10-05 17:03:25 -0300
commit0413e286b721e90a434f388194e899f8c4d1d349 (patch)
treed86ed8180f02b0f0cfbff9a6255bec40c47862ac /net
parent8ea61b88b21b2c7ad9caf5214204ca227871fe2f (diff)
rfkill-gpio: fix active levels which automatically invert when active low
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'net')
-rw-r--r--net/rfkill/rfkill-gpio.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c
index e87af1e5eea9..37cae63f0385 100644
--- a/net/rfkill/rfkill-gpio.c
+++ b/net/rfkill/rfkill-gpio.c
@@ -50,8 +50,13 @@ static int rfkill_gpio_set_power(void *data, bool blocked)
if (!blocked && !IS_ERR(rfkill->clk) && !rfkill->clk_enabled)
clk_enable(rfkill->clk);
- gpiod_set_value_cansleep(rfkill->shutdown_gpio, !blocked);
- gpiod_set_value_cansleep(rfkill->reset_gpio, !blocked);
+ if (blocked) {
+ gpiod_set_value_cansleep(rfkill->shutdown_gpio, 1);
+ gpiod_set_value_cansleep(rfkill->reset_gpio, 1);
+ } else {
+ gpiod_set_value_cansleep(rfkill->reset_gpio, 0);
+ gpiod_set_value_cansleep(rfkill->shutdown_gpio, 0);
+ }
if (blocked && !IS_ERR(rfkill->clk) && rfkill->clk_enabled)
clk_disable(rfkill->clk);
@@ -140,6 +145,7 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
ret = gpiod_direction_output(gpio, 0);
if (ret)
return ret;
+ gpiod_set_value_cansleep(gpio, 1);
rfkill->reset_gpio = gpio;
}
@@ -148,6 +154,7 @@ static int rfkill_gpio_probe(struct platform_device *pdev)
ret = gpiod_direction_output(gpio, 0);
if (ret)
return ret;
+ gpiod_set_value_cansleep(gpio, 1);
rfkill->shutdown_gpio = gpio;
}