mfd: max8997: Enale irq-wakeup unconditionally

Message ID 20180905093243.3861-1-m.szyprowski@samsung.com
State New
Headers show
Series
  • mfd: max8997: Enale irq-wakeup unconditionally
Related show

Commit Message

Marek Szyprowski Sept. 5, 2018, 9:32 a.m.
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 <m.szyprowski@samsung.com>

---
 drivers/mfd/max8997.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

-- 
2.17.1

Comments

Krzysztof Kozlowski Sept. 5, 2018, 10:40 a.m. | #1
On Wed, 5 Sep 2018 at 11:33, Marek Szyprowski <m.szyprowski@samsung.com> 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 <m.szyprowski@samsung.com>


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

>

Patch

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;
 }