]> git.openpandora.org Git - pandora-kernel.git/commitdiff
ARM: OMAP2+: PRM: add generic API for asserting hardware reset
authorTero Kristo <t-kristo@ti.com>
Thu, 3 Apr 2014 09:36:46 +0000 (12:36 +0300)
committerTero Kristo <t-kristo@ti.com>
Mon, 22 Sep 2014 12:52:27 +0000 (15:52 +0300)
PRM driver now has a generic API for asserting hardware resets. SoC
specific support functions are registered through the prm_ll_data.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Tested-by: Nishanth Menon <nm@ti.com>
arch/arm/mach-omap2/omap_hwmod.c
arch/arm/mach-omap2/prm.h
arch/arm/mach-omap2/prm2xxx.c
arch/arm/mach-omap2/prm2xxx_3xxx.c
arch/arm/mach-omap2/prm2xxx_3xxx.h
arch/arm/mach-omap2/prm33xx.c
arch/arm/mach-omap2/prm33xx.h
arch/arm/mach-omap2/prm3xxx.c
arch/arm/mach-omap2/prm44xx.c
arch/arm/mach-omap2/prm_common.c

index 02518c5fdaa90bb014e52a5e5e23cd432ee9d7fc..ea8a2ca2e4ea63487691a171e422d8d238c97892 100644 (file)
@@ -2910,8 +2910,8 @@ static int _omap4_wait_target_ready(struct omap_hwmod *oh)
 static int _omap2_assert_hardreset(struct omap_hwmod *oh,
                                   struct omap_hwmod_rst_info *ohri)
 {
-       return omap2_prm_assert_hardreset(oh->prcm.omap2.module_offs,
-                                         ohri->rst_shift);
+       return omap_prm_assert_hardreset(ohri->rst_shift, 0,
+                                        oh->prcm.omap2.module_offs, 0);
 }
 
 /**
@@ -2970,10 +2970,10 @@ static int _omap4_assert_hardreset(struct omap_hwmod *oh,
        if (!oh->clkdm)
                return -EINVAL;
 
-       return omap4_prminst_assert_hardreset(ohri->rst_shift,
-                               oh->clkdm->pwrdm.ptr->prcm_partition,
-                               oh->clkdm->pwrdm.ptr->prcm_offs,
-                               oh->prcm.omap4.rstctrl_offs);
+       return omap_prm_assert_hardreset(ohri->rst_shift,
+                                        oh->clkdm->pwrdm.ptr->prcm_partition,
+                                        oh->clkdm->pwrdm.ptr->prcm_offs,
+                                        oh->prcm.omap4.rstctrl_offs);
 }
 
 /**
@@ -3043,9 +3043,9 @@ static int _am33xx_assert_hardreset(struct omap_hwmod *oh,
                                   struct omap_hwmod_rst_info *ohri)
 
 {
-       return am33xx_prm_assert_hardreset(ohri->rst_shift,
-                               oh->clkdm->pwrdm.ptr->prcm_offs,
-                               oh->prcm.omap4.rstctrl_offs);
+       return omap_prm_assert_hardreset(ohri->rst_shift, 0,
+                                        oh->clkdm->pwrdm.ptr->prcm_offs,
+                                        oh->prcm.omap4.rstctrl_offs);
 }
 
 /**
index 9f4d747586162c7fc25b50de3c7cceab5af1ab3f..9b8711b6adde40faeeaf205acb89cd86bddfe335 100644 (file)
@@ -128,6 +128,7 @@ struct prm_reset_src_map {
  * @was_any_context_lost_old: ptr to the SoC PRM context loss test fn
  * @clear_context_loss_flags_old: ptr to the SoC PRM context loss flag clear fn
  * @late_init: ptr to the late init function
+ * @assert_hardreset: ptr to the SoC PRM hardreset assert impl
  *
  * XXX @was_any_context_lost_old and @clear_context_loss_flags_old are
  * deprecated.
@@ -137,11 +138,13 @@ struct prm_ll_data {
        bool (*was_any_context_lost_old)(u8 part, s16 inst, u16 idx);
        void (*clear_context_loss_flags_old)(u8 part, s16 inst, u16 idx);
        int (*late_init)(void);
+       int (*assert_hardreset)(u8 shift, u8 part, s16 prm_mod, u16 offset);
 };
 
 extern int prm_register(struct prm_ll_data *pld);
 extern int prm_unregister(struct prm_ll_data *pld);
 
+int omap_prm_assert_hardreset(u8 shift, u8 part, s16 prm_mod, u16 offset);
 extern u32 prm_read_reset_sources(void);
 extern bool prm_was_any_context_lost_old(u8 part, s16 inst, u16 idx);
 extern void prm_clear_context_loss_flags_old(u8 part, s16 inst, u16 idx);
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge