2023-03-23 09:31:38

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH 1/2] dt-bindings: input: fsl,scu-key: add wakeup-source property

From: Peng Fan <[email protected]>

Add wakeup-source to indicate whether it could work to wakeup the system
from suspend mode.

Signed-off-by: Peng Fan <[email protected]>
---
Documentation/devicetree/bindings/input/fsl,scu-key.yaml | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/fsl,scu-key.yaml b/Documentation/devicetree/bindings/input/fsl,scu-key.yaml
index e5a3c355ee1f..037d4aa7364f 100644
--- a/Documentation/devicetree/bindings/input/fsl,scu-key.yaml
+++ b/Documentation/devicetree/bindings/input/fsl,scu-key.yaml
@@ -24,6 +24,10 @@ properties:
linux,keycodes:
maxItems: 1

+ wakeup-source:
+ description: pwr key can be used as a wakeup source
+ type: boolean
+
required:
- compatible
- linux,keycodes
--
2.37.1


2023-03-23 09:32:18

by Peng Fan (OSS)

[permalink] [raw]
Subject: [PATCH 2/2] input: imx_sc_key: add wakeup support

From: Peng Fan <[email protected]>

Add support for waking up from system wide suspend.

Signed-off-by: Peng Fan <[email protected]>
---
drivers/input/keyboard/imx_sc_key.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/input/keyboard/imx_sc_key.c b/drivers/input/keyboard/imx_sc_key.c
index d18839f1f4f6..234f23cf9990 100644
--- a/drivers/input/keyboard/imx_sc_key.c
+++ b/drivers/input/keyboard/imx_sc_key.c
@@ -151,6 +151,8 @@ static int imx_sc_key_probe(struct platform_device *pdev)
priv->input = input;
platform_set_drvdata(pdev, priv);

+ device_init_wakeup(&pdev->dev, device_property_read_bool(&pdev->dev, "wakeup-source"));
+
error = imx_scu_irq_group_enable(SC_IRQ_GROUP_WAKE, SC_IRQ_BUTTON,
true);
if (error) {
--
2.37.1

2023-03-24 11:42:34

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH 1/2] dt-bindings: input: fsl,scu-key: add wakeup-source property

On 23/03/2023 10:31, Peng Fan (OSS) wrote:
> From: Peng Fan <[email protected]>
>
> Add wakeup-source to indicate whether it could work to wakeup the system
> from suspend mode.
>
> Signed-off-by: Peng Fan <[email protected]>
> ---

Reviewed-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof

2023-04-10 02:54:42

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH 2/2] input: imx_sc_key: add wakeup support

On Thu, Mar 23, 2023 at 05:31:41PM +0800, Peng Fan (OSS) wrote:
> From: Peng Fan <[email protected]>
>
> Add support for waking up from system wide suspend.
>
> Signed-off-by: Peng Fan <[email protected]>
> ---
> drivers/input/keyboard/imx_sc_key.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/input/keyboard/imx_sc_key.c b/drivers/input/keyboard/imx_sc_key.c
> index d18839f1f4f6..234f23cf9990 100644
> --- a/drivers/input/keyboard/imx_sc_key.c
> +++ b/drivers/input/keyboard/imx_sc_key.c
> @@ -151,6 +151,8 @@ static int imx_sc_key_probe(struct platform_device *pdev)
> priv->input = input;
> platform_set_drvdata(pdev, priv);
>
> + device_init_wakeup(&pdev->dev, device_property_read_bool(&pdev->dev, "wakeup-source"));
> +

I wonder - could we move this to the device core?

> error = imx_scu_irq_group_enable(SC_IRQ_GROUP_WAKE, SC_IRQ_BUTTON,
> true);
> if (error) {
> --
> 2.37.1
>

Thanks.

--
Dmitry

2023-04-12 12:29:04

by Peng Fan

[permalink] [raw]
Subject: RE: [PATCH 2/2] input: imx_sc_key: add wakeup support

> Subject: Re: [PATCH 2/2] input: imx_sc_key: add wakeup support
>
> On Thu, Mar 23, 2023 at 05:31:41PM +0800, Peng Fan (OSS) wrote:
> > From: Peng Fan <[email protected]>
> >
> > Add support for waking up from system wide suspend.
> >
> > Signed-off-by: Peng Fan <[email protected]>
> > ---
> > drivers/input/keyboard/imx_sc_key.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/input/keyboard/imx_sc_key.c
> b/drivers/input/keyboard/imx_sc_key.c
> > index d18839f1f4f6..234f23cf9990 100644
> > --- a/drivers/input/keyboard/imx_sc_key.c
> > +++ b/drivers/input/keyboard/imx_sc_key.c
> > @@ -151,6 +151,8 @@ static int imx_sc_key_probe(struct
> platform_device *pdev)
> > priv->input = input;
> > platform_set_drvdata(pdev, priv);
> >
> > + device_init_wakeup(&pdev->dev,
> device_property_read_bool(&pdev->dev, "wakeup-source"));
> > +
>
> I wonder - could we move this to the device core?

I see lots device drivers parse wakeup-source, so I also follow
That. Not sure whether could move this feature to device core,
but anyway I could give a try.

Thanks,
Peng.
>
> > error = imx_scu_irq_group_enable(SC_IRQ_GROUP_WAKE,
> SC_IRQ_BUTTON,
> > true);
> > if (error) {
> > --
> > 2.37.1
> >
>
> Thanks.
>
> --
> Dmitry

2023-04-12 16:02:21

by Peng Fan

[permalink] [raw]
Subject: RE: [PATCH 2/2] input: imx_sc_key: add wakeup support

+Ulf

> Subject: RE: [PATCH 2/2] input: imx_sc_key: add wakeup support
>
> > Subject: Re: [PATCH 2/2] input: imx_sc_key: add wakeup support
> >
> > On Thu, Mar 23, 2023 at 05:31:41PM +0800, Peng Fan (OSS) wrote:
> > > From: Peng Fan <[email protected]>
> > >
> > > Add support for waking up from system wide suspend.
> > >
> > > Signed-off-by: Peng Fan <[email protected]>
> > > ---
> > > drivers/input/keyboard/imx_sc_key.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/drivers/input/keyboard/imx_sc_key.c
> > b/drivers/input/keyboard/imx_sc_key.c
> > > index d18839f1f4f6..234f23cf9990 100644
> > > --- a/drivers/input/keyboard/imx_sc_key.c
> > > +++ b/drivers/input/keyboard/imx_sc_key.c
> > > @@ -151,6 +151,8 @@ static int imx_sc_key_probe(struct
> > platform_device *pdev)
> > > priv->input = input;
> > > platform_set_drvdata(pdev, priv);
> > >
> > > + device_init_wakeup(&pdev->dev,
> > device_property_read_bool(&pdev->dev, "wakeup-source"));
> > > +
> >
> > I wonder - could we move this to the device core?
>
> I see lots device drivers parse wakeup-source, so I also follow That. Not sure
> whether could move this feature to device core, but anyway I could give a
> try.

Do you think it is feasible to move device_init_wakeup into device core
part?

Thanks,
Peng.
>
> Thanks,
> Peng.
> >
> > > error = imx_scu_irq_group_enable(SC_IRQ_GROUP_WAKE,
> > SC_IRQ_BUTTON,
> > > true);
> > > if (error) {
> > > --
> > > 2.37.1
> > >
> >
> > Thanks.
> >
> > --
> > Dmitry

2023-04-18 08:35:49

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH 2/2] input: imx_sc_key: add wakeup support

On Wed, 12 Apr 2023 at 17:58, Peng Fan <[email protected]> wrote:
>
> +Ulf
>
> > Subject: RE: [PATCH 2/2] input: imx_sc_key: add wakeup support
> >
> > > Subject: Re: [PATCH 2/2] input: imx_sc_key: add wakeup support
> > >
> > > On Thu, Mar 23, 2023 at 05:31:41PM +0800, Peng Fan (OSS) wrote:
> > > > From: Peng Fan <[email protected]>
> > > >
> > > > Add support for waking up from system wide suspend.
> > > >
> > > > Signed-off-by: Peng Fan <[email protected]>
> > > > ---
> > > > drivers/input/keyboard/imx_sc_key.c | 2 ++
> > > > 1 file changed, 2 insertions(+)
> > > >
> > > > diff --git a/drivers/input/keyboard/imx_sc_key.c
> > > b/drivers/input/keyboard/imx_sc_key.c
> > > > index d18839f1f4f6..234f23cf9990 100644
> > > > --- a/drivers/input/keyboard/imx_sc_key.c
> > > > +++ b/drivers/input/keyboard/imx_sc_key.c
> > > > @@ -151,6 +151,8 @@ static int imx_sc_key_probe(struct
> > > platform_device *pdev)
> > > > priv->input = input;
> > > > platform_set_drvdata(pdev, priv);
> > > >
> > > > + device_init_wakeup(&pdev->dev,
> > > device_property_read_bool(&pdev->dev, "wakeup-source"));
> > > > +
> > >
> > > I wonder - could we move this to the device core?
> >
> > I see lots device drivers parse wakeup-source, so I also follow That. Not sure
> > whether could move this feature to device core, but anyway I could give a
> > try.
>
> Do you think it is feasible to move device_init_wakeup into device core
> part?

Not sure it would really improve things that much. Subsystems/drivers
need to make additional configurations based upon whether this DT
property is set anyway.

Perhaps an option is to make this a part of the common input subsystem
helper functions instead? Other subsystems do this, but I am not sure
how feasible that would be in the input case.

Kind regards
Uffe

2023-04-20 07:55:56

by Peng Fan (OSS)

[permalink] [raw]
Subject: Re: [PATCH 2/2] input: imx_sc_key: add wakeup support

Dmitry,Ulf

On 4/18/2023 4:32 PM, Ulf Hansson wrote:
> On Wed, 12 Apr 2023 at 17:58, Peng Fan <[email protected]> wrote:
>>
>> +Ulf
>>
>>> Subject: RE: [PATCH 2/2] input: imx_sc_key: add wakeup support
>>>
>>>> Subject: Re: [PATCH 2/2] input: imx_sc_key: add wakeup support
>>>>
>>>> On Thu, Mar 23, 2023 at 05:31:41PM +0800, Peng Fan (OSS) wrote:
>>>>> From: Peng Fan <[email protected]>
>>>>>
>>>>> Add support for waking up from system wide suspend.
>>>>>
>>>>> Signed-off-by: Peng Fan <[email protected]>
>>>>> ---
>>>>> drivers/input/keyboard/imx_sc_key.c | 2 ++
>>>>> 1 file changed, 2 insertions(+)
>>>>>
>>>>> diff --git a/drivers/input/keyboard/imx_sc_key.c
>>>> b/drivers/input/keyboard/imx_sc_key.c
>>>>> index d18839f1f4f6..234f23cf9990 100644
>>>>> --- a/drivers/input/keyboard/imx_sc_key.c
>>>>> +++ b/drivers/input/keyboard/imx_sc_key.c
>>>>> @@ -151,6 +151,8 @@ static int imx_sc_key_probe(struct
>>>> platform_device *pdev)
>>>>> priv->input = input;
>>>>> platform_set_drvdata(pdev, priv);
>>>>>
>>>>> + device_init_wakeup(&pdev->dev,
>>>> device_property_read_bool(&pdev->dev, "wakeup-source"));
>>>>> +
>>>>
>>>> I wonder - could we move this to the device core?
>>>
>>> I see lots device drivers parse wakeup-source, so I also follow That. Not sure
>>> whether could move this feature to device core, but anyway I could give a
>>> try.
>>
>> Do you think it is feasible to move device_init_wakeup into device core
>> part?
>
> Not sure it would really improve things that much. Subsystems/drivers
> need to make additional configurations based upon whether this DT
> property is set anyway.
>
> Perhaps an option is to make this a part of the common input subsystem
> helper functions instead? Other subsystems do this, but I am not sure
> how feasible that would be in the input case.

How do you think of below patch?

diff --git a/drivers/input/input.c b/drivers/input/input.c
index 37e876d45eb9..a98a9f37e1f5 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -2402,6 +2402,10 @@ int input_register_device(struct input_dev *dev)
__func__, dev_name(&dev->dev));
devres_add(dev->dev.parent, devres);
}
+
+ if (device_property_read_bool(input->dev.parent, "wakeup-source"))
+ device_init_wakeup(&pdev->dev, true);
+
return 0;

err_device_del:

Thanks,
Peng.

>
> Kind regards
> Uffe

2023-05-02 14:58:11

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH 2/2] input: imx_sc_key: add wakeup support

On Thu, 20 Apr 2023 at 09:54, Peng Fan <[email protected]> wrote:
>
> Dmitry,Ulf
>
> On 4/18/2023 4:32 PM, Ulf Hansson wrote:
> > On Wed, 12 Apr 2023 at 17:58, Peng Fan <[email protected]> wrote:
> >>
> >> +Ulf
> >>
> >>> Subject: RE: [PATCH 2/2] input: imx_sc_key: add wakeup support
> >>>
> >>>> Subject: Re: [PATCH 2/2] input: imx_sc_key: add wakeup support
> >>>>
> >>>> On Thu, Mar 23, 2023 at 05:31:41PM +0800, Peng Fan (OSS) wrote:
> >>>>> From: Peng Fan <[email protected]>
> >>>>>
> >>>>> Add support for waking up from system wide suspend.
> >>>>>
> >>>>> Signed-off-by: Peng Fan <[email protected]>
> >>>>> ---
> >>>>> drivers/input/keyboard/imx_sc_key.c | 2 ++
> >>>>> 1 file changed, 2 insertions(+)
> >>>>>
> >>>>> diff --git a/drivers/input/keyboard/imx_sc_key.c
> >>>> b/drivers/input/keyboard/imx_sc_key.c
> >>>>> index d18839f1f4f6..234f23cf9990 100644
> >>>>> --- a/drivers/input/keyboard/imx_sc_key.c
> >>>>> +++ b/drivers/input/keyboard/imx_sc_key.c
> >>>>> @@ -151,6 +151,8 @@ static int imx_sc_key_probe(struct
> >>>> platform_device *pdev)
> >>>>> priv->input = input;
> >>>>> platform_set_drvdata(pdev, priv);
> >>>>>
> >>>>> + device_init_wakeup(&pdev->dev,
> >>>> device_property_read_bool(&pdev->dev, "wakeup-source"));
> >>>>> +
> >>>>
> >>>> I wonder - could we move this to the device core?
> >>>
> >>> I see lots device drivers parse wakeup-source, so I also follow That. Not sure
> >>> whether could move this feature to device core, but anyway I could give a
> >>> try.
> >>
> >> Do you think it is feasible to move device_init_wakeup into device core
> >> part?
> >
> > Not sure it would really improve things that much. Subsystems/drivers
> > need to make additional configurations based upon whether this DT
> > property is set anyway.
> >
> > Perhaps an option is to make this a part of the common input subsystem
> > helper functions instead? Other subsystems do this, but I am not sure
> > how feasible that would be in the input case.
>
> How do you think of below patch?

Seems reasonable to me, but I can't really tell if this makes sense
for all input drivers.

Dmitry?

>
> diff --git a/drivers/input/input.c b/drivers/input/input.c
> index 37e876d45eb9..a98a9f37e1f5 100644
> --- a/drivers/input/input.c
> +++ b/drivers/input/input.c
> @@ -2402,6 +2402,10 @@ int input_register_device(struct input_dev *dev)
> __func__, dev_name(&dev->dev));
> devres_add(dev->dev.parent, devres);
> }
> +
> + if (device_property_read_bool(input->dev.parent, "wakeup-source"))
> + device_init_wakeup(&pdev->dev, true);
> +
> return 0;
>
> err_device_del:
>

Kind regards
Uffe