ARM: OMAP4+: PRM: Add AM437x specific data
authorKeerthy <j-keerthy@ti.com>
Thu, 16 Jul 2015 11:53:18 +0000 (17:23 +0530)
committerPaul Walmsley <paul@pwsan.com>
Thu, 23 Jul 2015 12:08:24 +0000 (06:08 -0600)
The register offsets for some of the PRM Registers are different
hence populating the differing fields. This is needed to support
IO wake up feature for am437x family.

Signed-off-by: Keerthy <j-keerthy@ti.com>
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
arch/arm/mach-omap2/prm44xx.c

index e6262d39030ac5f34f1124c412325ede17be06c1..30768003f8543b4b9080db78c91ea9a3f919a38a 100644 (file)
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/of_irq.h>
-
+#include <linux/of.h>
 
 #include "soc.h"
 #include "iomap.h"
 #include "common.h"
 #include "vp.h"
 #include "prm44xx.h"
+#include "prcm43xx.h"
 #include "prm-regbits-44xx.h"
 #include "prcm44xx.h"
 #include "prminst44xx.h"
@@ -722,6 +723,15 @@ int __init omap44xx_prm_init(const struct omap_prcm_init_data *data)
 
        omap4_prminst_set_prm_dev_inst(data->device_inst_offset);
 
+       /* Add AM437X specific differences */
+       if (of_device_is_compatible(data->np, "ti,am4-prcm")) {
+               omap4_prcm_irq_setup.nr_irqs = 1;
+               omap4_prcm_irq_setup.nr_regs = 1;
+               omap4_prcm_irq_setup.pm_ctrl = AM43XX_PRM_IO_PMCTRL_OFFSET;
+               omap4_prcm_irq_setup.ack = AM43XX_PRM_IRQSTATUS_MPU_OFFSET;
+               omap4_prcm_irq_setup.mask = AM43XX_PRM_IRQENABLE_MPU_OFFSET;
+       }
+
        return prm_register(&omap44xx_prm_ll_data);
 }