Message ID | 20230323093141.4070840-2-peng.fan@oss.nxp.com |
---|---|
State | New |
Headers | show |
Series | [1/2] dt-bindings: input: fsl,scu-key: add wakeup-source property | expand |
On Thu, Mar 23, 2023 at 05:31:41PM +0800, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@nxp.com> > > Add support for waking up from system wide suspend. > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > 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.
> 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 <peng.fan@nxp.com> > > > > Add support for waking up from system wide suspend. > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > --- > > 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
+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 <peng.fan@nxp.com> > > > > > > Add support for waking up from system wide suspend. > > > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > > --- > > > 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
On Wed, 12 Apr 2023 at 17:58, Peng Fan <peng.fan@nxp.com> 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 <peng.fan@nxp.com> > > > > > > > > Add support for waking up from system wide suspend. > > > > > > > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > > > > --- > > > > 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
Dmitry,Ulf On 4/18/2023 4:32 PM, Ulf Hansson wrote: > On Wed, 12 Apr 2023 at 17:58, Peng Fan <peng.fan@nxp.com> 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 <peng.fan@nxp.com> >>>>> >>>>> Add support for waking up from system wide suspend. >>>>> >>>>> Signed-off-by: Peng Fan <peng.fan@nxp.com> >>>>> --- >>>>> 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
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) {