OSDN Git Service

microblaze: Switch to standard restart handler
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 23 Aug 2019 09:47:28 +0000 (11:47 +0200)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 19 Sep 2019 08:43:32 +0000 (10:43 +0200)
commit7cca9b8b7c5bcc56d627851550840586a25aaa1b
tree822845323a4631d5b6d20a7b90924bf4814a274e
parent1c62ed908363e249f3b0e1879d9d982e8431fb3f
microblaze: Switch to standard restart handler

The microblaze uses the legacy APIs to dig out a GPIO pin
defined in the root of the device tree to issue a hard
reset of the platform.

Asserting a hard reset should be done using the standard
DT-enabled and fully GPIO descriptor aware driver in
drivers/power/reset/gpio-restart.c using the bindings
from Documentation/devicetree/bindings/power/reset/gpio-restart.txt

To achieve this, first make sure microblaze makes use of
the standard kernel restart path utilizing do_kernel_restart()
from <linux/reboot.h>. Put in some grace time and an
emergency print if the restart does not properly assert.

As this is basic platform functionality we patch the DTS
file and defconfig in one go for a lockstep change.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Michal Simek <monstr@monstr.eu>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
[ Michal: Move machine_restart back to reset.c ]
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
arch/microblaze/boot/dts/system.dts
arch/microblaze/configs/mmu_defconfig
arch/microblaze/configs/nommu_defconfig
arch/microblaze/kernel/reset.c