]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-socfpga/socfpga.c
Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[karo-tx-linux.git] / arch / arm / mach-socfpga / socfpga.c
index 19643a756c48b68b8eb57ca328785d55921ff7d7..a1c0efaa87944c096c1ab3c92d4adbef71c2e804 100644 (file)
@@ -74,6 +74,19 @@ static void socfpga_cyclone5_restart(enum reboot_mode mode, const char *cmd)
        writel(temp, rst_manager_base_addr + SOCFPGA_RSTMGR_CTRL);
 }
 
+static void socfpga_arria10_restart(enum reboot_mode mode, const char *cmd)
+{
+       u32 temp;
+
+       temp = readl(rst_manager_base_addr + SOCFPGA_A10_RSTMGR_CTRL);
+
+       if (mode == REBOOT_HARD)
+               temp |= RSTMGR_CTRL_SWCOLDRSTREQ;
+       else
+               temp |= RSTMGR_CTRL_SWWARMRSTREQ;
+       writel(temp, rst_manager_base_addr + SOCFPGA_A10_RSTMGR_CTRL);
+}
+
 static const char *altera_dt_match[] = {
        "altr,socfpga",
        NULL
@@ -86,3 +99,16 @@ DT_MACHINE_START(SOCFPGA, "Altera SOCFPGA")
        .restart        = socfpga_cyclone5_restart,
        .dt_compat      = altera_dt_match,
 MACHINE_END
+
+static const char *altera_a10_dt_match[] = {
+       "altr,socfpga-arria10",
+       NULL
+};
+
+DT_MACHINE_START(SOCFPGA_A10, "Altera SOCFPGA Arria10")
+       .l2c_aux_val    = 0,
+       .l2c_aux_mask   = ~0,
+       .init_irq       = socfpga_init_irq,
+       .restart        = socfpga_arria10_restart,
+       .dt_compat      = altera_a10_dt_match,
+MACHINE_END