static void __iomem *kona_reset_base;
 
-static int kona_reset_handler(struct notifier_block *this,
-                               unsigned long mode, void *cmd)
+static int kona_reset_handler(struct sys_off_data *data)
 {
        /*
         * A soft reset is triggered by writing a 0 to bit 0 of the soft reset
        return NOTIFY_DONE;
 }
 
-static struct notifier_block kona_reset_nb = {
-       .notifier_call = kona_reset_handler,
-       .priority = 128,
-};
-
 static int kona_reset_probe(struct platform_device *pdev)
 {
        kona_reset_base = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(kona_reset_base))
                return PTR_ERR(kona_reset_base);
 
-       return register_restart_handler(&kona_reset_nb);
+       return devm_register_sys_off_handler(&pdev->dev, SYS_OFF_MODE_RESTART,
+                                            128, kona_reset_handler, NULL);
 }
 
 static const struct of_device_id of_match[] = {