diff options
Diffstat (limited to 'arch/arm/plat-omap/include/plat/omap_hwmod.h')
| -rw-r--r-- | arch/arm/plat-omap/include/plat/omap_hwmod.h | 27 | 
1 files changed, 19 insertions, 8 deletions
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 6132972aff3..09e14ce3ec5 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h @@ -2,7 +2,7 @@   * omap_hwmod macros, structures   *   * Copyright (C) 2009-2011 Nokia Corporation - * Copyright (C) 2011 Texas Instruments, Inc. + * Copyright (C) 2012 Texas Instruments, Inc.   * Paul Walmsley   *   * Created in collaboration with (alphabetical order): BenoƮt Cousson, @@ -384,21 +384,38 @@ struct omap_hwmod_omap2_prcm {  	u8 idlest_stdby_bit;  }; +/* + * Possible values for struct omap_hwmod_omap4_prcm.flags + * + * HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT: Some IP blocks don't have a PRCM + *     module-level context loss register associated with them; this + *     flag bit should be set in those cases + */ +#define HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT		(1 << 0)  /**   * struct omap_hwmod_omap4_prcm - OMAP4-specific PRCM data   * @clkctrl_reg: PRCM address of the clock control register   * @rstctrl_reg: address of the XXX_RSTCTRL register located in the PRM + * @lostcontext_mask: bitmask for selecting bits from RM_*_CONTEXT register   * @rstst_reg: (AM33XX only) address of the XXX_RSTST register in the PRM   * @submodule_wkdep_bit: bit shift of the WKDEP range + * @flags: PRCM register capabilities for this IP block + * + * If @lostcontext_mask is not defined, context loss check code uses + * whole register without masking. @lostcontext_mask should only be + * defined in cases where @context_offs register is shared by two or + * more hwmods.   */  struct omap_hwmod_omap4_prcm {  	u16		clkctrl_offs;  	u16		rstctrl_offs;  	u16		rstst_offs;  	u16		context_offs; +	u32		lostcontext_mask;  	u8		submodule_wkdep_bit;  	u8		modulemode; +	u8		flags;  }; @@ -591,9 +608,7 @@ int omap_hwmod_for_each(int (*fn)(struct omap_hwmod *oh, void *data),  int __init omap_hwmod_setup_one(const char *name);  int omap_hwmod_enable(struct omap_hwmod *oh); -int _omap_hwmod_enable(struct omap_hwmod *oh);  int omap_hwmod_idle(struct omap_hwmod *oh); -int _omap_hwmod_idle(struct omap_hwmod *oh);  int omap_hwmod_shutdown(struct omap_hwmod *oh);  int omap_hwmod_assert_hardreset(struct omap_hwmod *oh, const char *name); @@ -626,11 +641,6 @@ int omap_hwmod_add_initiator_dep(struct omap_hwmod *oh,  int omap_hwmod_del_initiator_dep(struct omap_hwmod *oh,  				 struct omap_hwmod *init_oh); -int omap_hwmod_set_clockact_both(struct omap_hwmod *oh); -int omap_hwmod_set_clockact_main(struct omap_hwmod *oh); -int omap_hwmod_set_clockact_iclk(struct omap_hwmod *oh); -int omap_hwmod_set_clockact_none(struct omap_hwmod *oh); -  int omap_hwmod_enable_wakeup(struct omap_hwmod *oh);  int omap_hwmod_disable_wakeup(struct omap_hwmod *oh); @@ -658,6 +668,7 @@ extern int omap2420_hwmod_init(void);  extern int omap2430_hwmod_init(void);  extern int omap3xxx_hwmod_init(void);  extern int omap44xx_hwmod_init(void); +extern int am33xx_hwmod_init(void);  extern int __init omap_hwmod_register_links(struct omap_hwmod_ocp_if **ois);  |