return 0;
 }
 
+static void rpi_firmware_shutdown(struct platform_device *pdev)
+{
+       struct rpi_firmware *fw = platform_get_drvdata(pdev);
+
+       if (!fw)
+               return;
+
+       rpi_firmware_property(fw, RPI_FIRMWARE_NOTIFY_REBOOT, NULL, 0);
+}
+
 static int rpi_firmware_remove(struct platform_device *pdev)
 {
        struct rpi_firmware *fw = platform_get_drvdata(pdev);
                .of_match_table = rpi_firmware_of_match,
        },
        .probe          = rpi_firmware_probe,
+       .shutdown       = rpi_firmware_shutdown,
        .remove         = rpi_firmware_remove,
 };
 module_platform_driver(rpi_firmware_driver);