};
        };
 
+       fpga_regs: system-controller@1f000000 {
+               compatible = "mti,sead3-fpga", "syscon", "simple-mfd";
+               reg = <0x1f000000 0x200>;
+
+               reboot {
+                       compatible = "syscon-reboot";
+                       regmap = <&fpga_regs>;
+                       offset = <0x50>;
+                       mask = <0x4d>;
+               };
+       };
+
        system-controller@1f000200 {
                compatible = "mti,sead3-cpld", "syscon", "simple-mfd";
                reg = <0x1f000200 0x300>;
 
 CONFIG_I2C_CHARDEV=y
 # CONFIG_I2C_HELPER_AUTO is not set
 CONFIG_SPI=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_SYSCON=y
 CONFIG_SENSORS_ADT7475=y
-CONFIG_MFD_SYSCON=y
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 
 #define SOFTRES_REG    0x1f000050
 #define GORESET                0x4d
 
-static void mips_machine_restart(char *command)
-{
-       unsigned int __iomem *softres_reg =
-               ioremap(SOFTRES_REG, sizeof(unsigned int));
-
-       __raw_writel(GORESET, softres_reg);
-}
-
 static void mips_machine_halt(void)
 {
        unsigned int __iomem *softres_reg =
 
 static int __init mips_reboot_setup(void)
 {
-       _machine_restart = mips_machine_restart;
        _machine_halt = mips_machine_halt;
        pm_power_off = mips_machine_halt;