// SPDX-License-Identifier: GPL-2.0 // Copyright (c) 2019 Ahmad Fatoum, Pengutronix #include #include #include #include #include #include static void input_specialkeys_notify(struct input_notifier *in, struct input_event *ev) { switch (ev->code) { case KEY_RESTART: pr_info("Triggering reset due to special key.\n"); restart_machine(); break; case KEY_POWER: pr_info("Triggering poweroff due to special key.\n"); poweroff_machine(); break; } pr_debug("ignoring code: %d\n", ev->code); } static struct input_notifier notifier; static int input_specialkeys_init(void) { notifier.notify = input_specialkeys_notify; return input_register_notfier(¬ifier); } late_initcall(input_specialkeys_init);