2018-09-05 09:34:37

by Marek Szyprowski

[permalink] [raw]
Subject: [PATCH] mfd: max8997: Enale irq-wakeup unconditionally

IRQ wakeup support for MAX8997 driver was initially configured by
respective property in pdata. However, after the driver conversion to
device-tree, setting it was left as 'todo'. Nowadays most of other MAX PMIC
MFD drivers initialized from device-tree simply assume unconditionally that
they can be an irq wakeup source, so enable wakeup support also for
MAX8997. This fixes support for wakeup from MAX8997 RTC alarm.

Signed-off-by: Marek Szyprowski <[email protected]>
---
drivers/mfd/max8997.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/mfd/max8997.c b/drivers/mfd/max8997.c
index 3f554c447521..7155e991cb82 100644
--- a/drivers/mfd/max8997.c
+++ b/drivers/mfd/max8997.c
@@ -152,12 +152,7 @@ static struct max8997_platform_data *max8997_i2c_parse_dt_pdata(
return ERR_PTR(-ENOMEM);

pd->ono = irq_of_parse_and_map(dev->of_node, 1);
-
- /*
- * ToDo: the 'wakeup' member in the platform data is more of a linux
- * specfic information. Hence, there is no binding for that yet and
- * not parsed here.
- */
+ pd->wakeup = true;

return pd;
}
--
2.17.1



2018-09-05 10:41:44

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] mfd: max8997: Enale irq-wakeup unconditionally

On Wed, 5 Sep 2018 at 11:33, Marek Szyprowski <[email protected]> wrote:
>
> IRQ wakeup support for MAX8997 driver was initially configured by
> respective property in pdata. However, after the driver conversion to
> device-tree, setting it was left as 'todo'. Nowadays most of other MAX PMIC
> MFD drivers initialized from device-tree simply assume unconditionally that
> they can be an irq wakeup source, so enable wakeup support also for
> MAX8997. This fixes support for wakeup from MAX8997 RTC alarm.
>
> Signed-off-by: Marek Szyprowski <[email protected]>

If you want to have wakeup always, then just remove pd->wakeup and use
always true in device_init_wakeup(). Otherwise (if it still should be
configurable), use wakeup-source property in DTS:
https://elixir.bootlin.com/linux/latest/source/Documentation/devicetree/bindings/power/wakeup-source.txt

Best regards,
Krzysztof

> ---
> drivers/mfd/max8997.c | 7 +------
> 1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/drivers/mfd/max8997.c b/drivers/mfd/max8997.c
> index 3f554c447521..7155e991cb82 100644
> --- a/drivers/mfd/max8997.c
> +++ b/drivers/mfd/max8997.c
> @@ -152,12 +152,7 @@ static struct max8997_platform_data *max8997_i2c_parse_dt_pdata(
> return ERR_PTR(-ENOMEM);
>
> pd->ono = irq_of_parse_and_map(dev->of_node, 1);
> -
> - /*
> - * ToDo: the 'wakeup' member in the platform data is more of a linux
> - * specfic information. Hence, there is no binding for that yet and
> - * not parsed here.
> - */
> + pd->wakeup = true;
>
> return pd;
> }
> --
> 2.17.1
>