From: Jiang Qiu <qiujiang@huawei.com> To: linus.walleij@linaro.org, gnurou@gmail.com Cc: mika.westerberg@linux.intel.com, andy.shevchenko@gmail.com, delicious.quinoa@gmail.com, jamie@jamieiles.com, charles.chenxin@huawei.com, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, linux-acpi@vger.kernel.org, linuxarm@huawei.com, Jiang Qiu <qiujiang@huawei.com> Subject: [PATCH v9 3/3] gpio: dwapb: add gpio-signaled acpi event support Date: Wed, 20 Apr 2016 15:13:49 +0800 [thread overview] Message-ID: <1461136429-85114-4-git-send-email-qiujiang@huawei.com> (raw) In-Reply-To: <1461136429-85114-1-git-send-email-qiujiang@huawei.com> This patch adds gpio-signaled acpi event support. It is used for power button on hisilicon D02 board, an arm64 platform. The corresponding DSDT file is defined as follows: Device(GPI0) { Name(_HID, "HISI0181") Name(_ADR, 0) Name(_UID, 0) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x802e0000, 0x10000) Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive,,,) {344} }) Device(PRTa) { Name (_DSD, Package () { Package () { Package () {"reg",0}, Package () {"snps,nr-gpios",32}, } }) } Name (_AEI, ResourceTemplate () { GpioInt(Edge, ActiveLow, ExclusiveAndWake, PullUp, , " \\_SB.GPI0") {8} }) Method (_E08, 0x0, NotSerialized) { Notify (\_SB.PWRB, 0x80) } } Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Jiang Qiu <qiujiang@huawei.com> --- drivers/gpio/gpio-dwapb.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c index 92bc204..c411e95 100644 --- a/drivers/gpio/gpio-dwapb.c +++ b/drivers/gpio/gpio-dwapb.c @@ -7,6 +7,7 @@ * * All enquiries to support@picochip.com */ +#include <linux/acpi.h> #include <linux/gpio/driver.h> /* FIXME: for gpio_get_value(), replace this with direct register read */ #include <linux/gpio.h> @@ -27,6 +28,8 @@ #include <linux/platform_data/gpio-dwapb.h> #include <linux/slab.h> +#include "gpiolib.h" + #define GPIO_SWPORTA_DR 0x00 #define GPIO_SWPORTA_DDR 0x04 #define GPIO_SWPORTB_DR 0x0c @@ -436,6 +439,10 @@ static int dwapb_gpio_add_port(struct dwapb_gpio *gpio, else port->is_registered = true; + /* Add GPIO-signaled ACPI event support */ + if (pp->irq) + acpi_gpiochip_request_interrupts(&port->gc); + return err; } @@ -503,6 +510,9 @@ dwapb_gpio_get_pdata(struct device *dev) dev_warn(dev, "no irq for port%d\n", pp->idx); } + if (has_acpi_companion(dev) && pp->idx == 0) + pp->irq = platform_get_irq(to_platform_device(dev), 0); + pp->irq_shared = false; pp->gpio_base = -1; } @@ -577,6 +587,12 @@ static const struct of_device_id dwapb_of_match[] = { }; MODULE_DEVICE_TABLE(of, dwapb_of_match); +static const struct acpi_device_id dwapb_acpi_match[] = { + {"HISI0181", 0}, + { } +}; +MODULE_DEVICE_TABLE(acpi, dwapb_acpi_match); + #ifdef CONFIG_PM_SLEEP static int dwapb_gpio_suspend(struct device *dev) { @@ -671,6 +687,7 @@ static struct platform_driver dwapb_gpio_driver = { .name = "gpio-dwapb", .pm = &dwapb_gpio_pm_ops, .of_match_table = of_match_ptr(dwapb_of_match), + .acpi_match_table = ACPI_PTR(dwapb_acpi_match), }, .probe = dwapb_gpio_probe, .remove = dwapb_gpio_remove, -- 1.9.1
WARNING: multiple messages have this Message-ID (diff)
From: Jiang Qiu <qiujiang@huawei.com> To: <linus.walleij@linaro.org>, <gnurou@gmail.com> Cc: <mika.westerberg@linux.intel.com>, <andy.shevchenko@gmail.com>, <delicious.quinoa@gmail.com>, <jamie@jamieiles.com>, <charles.chenxin@huawei.com>, <linux-kernel@vger.kernel.org>, <linux-gpio@vger.kernel.org>, <linux-acpi@vger.kernel.org>, <linuxarm@huawei.com>, Jiang Qiu <qiujiang@huawei.com> Subject: [PATCH v9 3/3] gpio: dwapb: add gpio-signaled acpi event support Date: Wed, 20 Apr 2016 15:13:49 +0800 [thread overview] Message-ID: <1461136429-85114-4-git-send-email-qiujiang@huawei.com> (raw) In-Reply-To: <1461136429-85114-1-git-send-email-qiujiang@huawei.com> This patch adds gpio-signaled acpi event support. It is used for power button on hisilicon D02 board, an arm64 platform. The corresponding DSDT file is defined as follows: Device(GPI0) { Name(_HID, "HISI0181") Name(_ADR, 0) Name(_UID, 0) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x802e0000, 0x10000) Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive,,,) {344} }) Device(PRTa) { Name (_DSD, Package () { Package () { Package () {"reg",0}, Package () {"snps,nr-gpios",32}, } }) } Name (_AEI, ResourceTemplate () { GpioInt(Edge, ActiveLow, ExclusiveAndWake, PullUp, , " \\_SB.GPI0") {8} }) Method (_E08, 0x0, NotSerialized) { Notify (\_SB.PWRB, 0x80) } } Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Jiang Qiu <qiujiang@huawei.com> --- drivers/gpio/gpio-dwapb.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c index 92bc204..c411e95 100644 --- a/drivers/gpio/gpio-dwapb.c +++ b/drivers/gpio/gpio-dwapb.c @@ -7,6 +7,7 @@ * * All enquiries to support@picochip.com */ +#include <linux/acpi.h> #include <linux/gpio/driver.h> /* FIXME: for gpio_get_value(), replace this with direct register read */ #include <linux/gpio.h> @@ -27,6 +28,8 @@ #include <linux/platform_data/gpio-dwapb.h> #include <linux/slab.h> +#include "gpiolib.h" + #define GPIO_SWPORTA_DR 0x00 #define GPIO_SWPORTA_DDR 0x04 #define GPIO_SWPORTB_DR 0x0c @@ -436,6 +439,10 @@ static int dwapb_gpio_add_port(struct dwapb_gpio *gpio, else port->is_registered = true; + /* Add GPIO-signaled ACPI event support */ + if (pp->irq) + acpi_gpiochip_request_interrupts(&port->gc); + return err; } @@ -503,6 +510,9 @@ dwapb_gpio_get_pdata(struct device *dev) dev_warn(dev, "no irq for port%d\n", pp->idx); } + if (has_acpi_companion(dev) && pp->idx == 0) + pp->irq = platform_get_irq(to_platform_device(dev), 0); + pp->irq_shared = false; pp->gpio_base = -1; } @@ -577,6 +587,12 @@ static const struct of_device_id dwapb_of_match[] = { }; MODULE_DEVICE_TABLE(of, dwapb_of_match); +static const struct acpi_device_id dwapb_acpi_match[] = { + {"HISI0181", 0}, + { } +}; +MODULE_DEVICE_TABLE(acpi, dwapb_acpi_match); + #ifdef CONFIG_PM_SLEEP static int dwapb_gpio_suspend(struct device *dev) { @@ -671,6 +687,7 @@ static struct platform_driver dwapb_gpio_driver = { .name = "gpio-dwapb", .pm = &dwapb_gpio_pm_ops, .of_match_table = of_match_ptr(dwapb_of_match), + .acpi_match_table = ACPI_PTR(dwapb_acpi_match), }, .probe = dwapb_gpio_probe, .remove = dwapb_gpio_remove, -- 1.9.1
next prev parent reply other threads:[~2016-04-20 7:13 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-04-20 7:13 [PATCH v9 0/3] gpio: dwapb: add gpio-signaled acpi event support for power button Jiang Qiu 2016-04-20 7:13 ` Jiang Qiu 2016-04-20 7:13 ` [PATCH v9 1/3] gpio: dwapb: remove name from dwapb_port_property Jiang Qiu 2016-04-20 7:13 ` Jiang Qiu 2016-04-29 9:21 ` Linus Walleij 2016-04-20 7:13 ` [PATCH v9 2/3] gpio: dwapb: convert device node to fwnode Jiang Qiu 2016-04-20 7:13 ` Jiang Qiu 2016-04-20 13:04 ` Andy Shevchenko 2016-04-20 13:04 ` Andy Shevchenko 2016-04-21 11:33 ` Jiang Qiu 2016-04-21 11:33 ` Jiang Qiu 2016-04-20 7:13 ` Jiang Qiu [this message] 2016-04-20 7:13 ` [PATCH v9 3/3] gpio: dwapb: add gpio-signaled acpi event support Jiang Qiu 2016-04-20 13:06 ` [PATCH v9 0/3] gpio: dwapb: add gpio-signaled acpi event support for power button Andy Shevchenko 2016-04-20 16:10 ` Alan Tull 2016-04-21 11:43 ` Jiang Qiu 2016-04-21 11:43 ` Jiang Qiu 2016-04-21 11:42 ` Jiang Qiu 2016-04-21 11:42 ` Jiang Qiu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1461136429-85114-4-git-send-email-qiujiang@huawei.com \ --to=qiujiang@huawei.com \ --cc=andy.shevchenko@gmail.com \ --cc=charles.chenxin@huawei.com \ --cc=delicious.quinoa@gmail.com \ --cc=gnurou@gmail.com \ --cc=jamie@jamieiles.com \ --cc=linus.walleij@linaro.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxarm@huawei.com \ --cc=mika.westerberg@linux.intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.