aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-yocto-dev/h1940/0010-rfkill_gpio-add-support-for-inverted-GPIOs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-yocto-dev/h1940/0010-rfkill_gpio-add-support-for-inverted-GPIOs.patch')
-rw-r--r--recipes-kernel/linux/linux-yocto-dev/h1940/0010-rfkill_gpio-add-support-for-inverted-GPIOs.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-yocto-dev/h1940/0010-rfkill_gpio-add-support-for-inverted-GPIOs.patch b/recipes-kernel/linux/linux-yocto-dev/h1940/0010-rfkill_gpio-add-support-for-inverted-GPIOs.patch
new file mode 100644
index 0000000..61f171c
--- /dev/null
+++ b/recipes-kernel/linux/linux-yocto-dev/h1940/0010-rfkill_gpio-add-support-for-inverted-GPIOs.patch
@@ -0,0 +1,59 @@
+From c21cbdcc9bbe7b74a6b28e87f8d3abf4f230d415 Mon Sep 17 00:00:00 2001
+From: Vasily Khoruzhick <anarsoul@gmail.com>
+Date: Thu, 17 Oct 2013 12:20:50 +0300
+Subject: [PATCH 10/12] rfkill_gpio: add support for inverted GPIOs
+
+Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
+---
+ include/linux/rfkill-gpio.h | 2 ++
+ net/rfkill/rfkill-gpio.c | 12 ++++++++----
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/include/linux/rfkill-gpio.h b/include/linux/rfkill-gpio.h
+index 4d09f6e..af54dda 100644
+--- a/include/linux/rfkill-gpio.h
++++ b/include/linux/rfkill-gpio.h
+@@ -37,7 +37,9 @@
+ struct rfkill_gpio_platform_data {
+ char *name;
+ int reset_gpio;
++ int reset_gpio_inverted;
+ int shutdown_gpio;
++ int shutdown_gpio_inverted;
+ const char *power_clk_name;
+ enum rfkill_type type;
+ void (*gpio_runtime_close)(struct platform_device *);
+diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c
+index fb076cd..3b4848d 100644
+--- a/net/rfkill/rfkill-gpio.c
++++ b/net/rfkill/rfkill-gpio.c
+@@ -53,18 +53,22 @@ static int rfkill_gpio_set_power(void *data, bool blocked)
+
+ if (blocked) {
+ if (gpio_is_valid(rfkill->pdata->shutdown_gpio))
+- gpio_direction_output(rfkill->pdata->shutdown_gpio, 0);
++ gpio_direction_output(rfkill->pdata->shutdown_gpio,
++ rfkill->pdata->shutdown_gpio_inverted);
+ if (gpio_is_valid(rfkill->pdata->reset_gpio))
+- gpio_direction_output(rfkill->pdata->reset_gpio, 0);
++ gpio_direction_output(rfkill->pdata->reset_gpio,
++ rfkill->pdata->reset_gpio_inverted);
+ if (rfkill->pwr_clk && PWR_CLK_ENABLED(rfkill))
+ clk_disable(rfkill->pwr_clk);
+ } else {
+ if (rfkill->pwr_clk && PWR_CLK_DISABLED(rfkill))
+ clk_enable(rfkill->pwr_clk);
+ if (gpio_is_valid(rfkill->pdata->reset_gpio))
+- gpio_direction_output(rfkill->pdata->reset_gpio, 1);
++ gpio_direction_output(rfkill->pdata->reset_gpio,
++ !rfkill->pdata->reset_gpio_inverted);
+ if (gpio_is_valid(rfkill->pdata->shutdown_gpio))
+- gpio_direction_output(rfkill->pdata->shutdown_gpio, 1);
++ gpio_direction_output(rfkill->pdata->shutdown_gpio,
++ !rfkill->pdata->shutdown_gpio_inverted);
+ }
+
+ if (rfkill->pwr_clk)
+--
+1.8.4
+