diff options
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.patch | 59 |
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 + |