summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/prm_common.c
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2014-05-26 12:59:00 -0700
committerOlof Johansson <olof@lixom.net>2014-05-26 12:59:00 -0700
commitae0cda2f2a243126aa84725183d463b4e1064024 (patch)
tree95c5f1e15dc449fa6a3467808a4346e0f31482d2 /arch/arm/mach-omap2/prm_common.c
parentb33cdd283bd917d431469c29419c2cf2624bd683 (diff)
parentea351c1603df0607b68eb4663b82ba7a70519d2e (diff)
Merge tag 'omap-for-v3.16/prcm-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/cleanup
Merge "ARM: omap prcm changes for v3.16 merge window" from Tony Lindgren: PRCM changes for omaps. I ended up merging these with the big endian changes because of the merge conflicts for read and write operations. Via Paul Walmsley <paul@pwsan.com>: Some OMAP PRCM cleanup patches. These help prepare to convert the PRCM code into drivers. Basic build, boot, and PM test results are available here: http://www.pwsan.com/omap/testlogs/prcm-cleanup-v3.16/20140515213244/ * tag 'omap-for-v3.16/prcm-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP4: PRCM: remove references to cm-regbits-44xx.h from PRCM core files ARM: OMAP3/4: PRM: add support of late_init call to prm_ll_ops ARM: OMAP3/OMAP4: PRM: add prm_features flags and add IO wakeup under it ARM: OMAP3/4: PRM: provide io chain reconfig function through irq setup ARM: OMAP2+: PRM: remove unnecessary cpu_is_XXX calls from prm_init / exit ARM: OMAP2+: PRCM: cleanup some header includes ARM: OMAP4: CM: use cm_base* in register address calculations ARM: OMAP2/3: CM: remove some external dependencies ARM: OMAP2+: prcm: add omap_test_timeout to prcm-common.h ARM: OMAP3: CM: remove a few OMAP34XX_CM_REGADDR defines ARM: OMAP: debug-leds: raw read and write endian fix ARM: OMAP: counter-32k: raw read and write endian fix ARM: OMAP: dmtimer: raw read and write endian fix ARM: OMAP2+: raw read and write endian fix Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/mach-omap2/prm_common.c')
-rw-r--r--arch/arm/mach-omap2/prm_common.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c
index b4c4ab9c804..25e8b823211 100644
--- a/arch/arm/mach-omap2/prm_common.c
+++ b/arch/arm/mach-omap2/prm_common.c
@@ -62,6 +62,8 @@ static struct omap_prcm_irq_setup *prcm_irq_setup;
/* prm_base: base virtual address of the PRM IP block */
void __iomem *prm_base;
+u16 prm_features;
+
/*
* prm_ll_data: function pointers to SoC-specific implementations of
* common PRM functions
@@ -330,12 +332,7 @@ int omap_prcm_register_chain_handler(struct omap_prcm_irq_setup *irq_setup)
if (of_have_populated_dt()) {
int irq = omap_prcm_event_to_irq("io");
- if (cpu_is_omap34xx())
- omap_pcs_legacy_init(irq,
- omap3xxx_prm_reconfigure_io_chain);
- else
- omap_pcs_legacy_init(irq,
- omap44xx_prm_reconfigure_io_chain);
+ omap_pcs_legacy_init(irq, irq_setup->reconfigure_io_chain);
}
return 0;
@@ -530,3 +527,11 @@ int __init of_prcm_init(void)
return 0;
}
+
+static int __init prm_late_init(void)
+{
+ if (prm_ll_data->late_init)
+ return prm_ll_data->late_init();
+ return 0;
+}
+subsys_initcall(prm_late_init);