/* * Copyright (C) 2013 Jean-Christophe PLAGNIOL-VILLARD * * GPLv2 only */ #include #include #include #include #include #include void __iomem *v2m_wdt_base; static void vexpress_reset_soc(struct restart_handler *rst) { writel(LOAD_MIN, v2m_wdt_base + WDTLOAD); writeb(RESET_ENABLE, v2m_wdt_base + WDTCONTROL); hang(); } static int restart_register_feature(void) { restart_handler_register_fn("soc-wdt", vexpress_reset_soc); return 0; } coredevice_initcall(restart_register_feature);