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> --- drivers/input/keyboard/imx_sc_key.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/input/keyboard/imx_sc_key.c b/drivers/input/keyboard/imx_sc_key.c index d18839f1f4f60..83025407065ba 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; + int wakeup; int error; priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); @@ -130,6 +132,8 @@ static int imx_sc_key_probe(struct platform_device *pdev) INIT_DELAYED_WORK(&priv->check_work, imx_sc_check_for_events); + wakeup = of_property_read_bool(np, "wakeup-source"); + input = devm_input_allocate_device(&pdev->dev); if (!input) { dev_err(&pdev->dev, "failed to allocate the input device\n"); @@ -151,6 +155,8 @@ static int imx_sc_key_probe(struct platform_device *pdev) priv->input = input; platform_set_drvdata(pdev, priv); + device_init_wakeup(&pdev->dev, !!wakeup); + error = imx_scu_irq_group_enable(SC_IRQ_GROUP_WAKE, SC_IRQ_BUTTON, true); if (error) { -- 2.34.1