Hi Frank, On Fri, Jul 19, 2024 at 11:22:58AM -0400, Frank Li wrote: > From: Abel Vesa <abel.vesa@xxxxxxx> > > Enable default wakeup according to dts property 'wakeup-source'. > > Signed-off-by: Abel Vesa <abel.vesa@xxxxxxx> > Reviewed-by: Nitin Garg <nitin.garg@xxxxxxx> > Signed-off-by: Frank Li <Frank.Li@xxxxxxx> > --- > Change from v1 to v2 > - change int to bool > - move of_property_read_bool() just before device_init_wakeup() > - drop !! > --- > drivers/input/keyboard/imx_sc_key.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/input/keyboard/imx_sc_key.c b/drivers/input/keyboard/imx_sc_key.c > index d18839f1f4f60..fc1492088b645 100644 > --- a/drivers/input/keyboard/imx_sc_key.c > +++ b/drivers/input/keyboard/imx_sc_key.c > @@ -110,8 +110,10 @@ static void imx_sc_key_action(void *data) > > static int imx_sc_key_probe(struct platform_device *pdev) > { > + struct device_node *np = pdev->dev.of_node; > struct imx_key_drv_data *priv; > struct input_dev *input; > + bool wakeup; > int error; > > priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > @@ -151,6 +153,9 @@ static int imx_sc_key_probe(struct platform_device *pdev) > priv->input = input; > platform_set_drvdata(pdev, priv); > > + wakeup = of_property_read_bool(np, "wakeup-source"); The driver uses generic device properties, why do you use OF-specific variant here? > + device_init_wakeup(&pdev->dev, wakeup); > + How does this actually work? Doesn't the call directly below unconditionally configures button as a wakeup source? > error = imx_scu_irq_group_enable(SC_IRQ_GROUP_WAKE, SC_IRQ_BUTTON, > true); > if (error) { Thanks. -- Dmitry