Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Variables
omap_hwmod.h File Reference
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/list.h>
#include <linux/ioport.h>
#include <linux/spinlock.h>
#include <plat/cpu.h>

Go to the source code of this file.

Data Structures

struct  omap_hwmod_mux_info
 
struct  omap_hwmod_irq_info
 
struct  omap_hwmod_dma_info
 
struct  omap_hwmod_rst_info
 
struct  omap_hwmod_opt_clk
 
struct  omap_hwmod_omap2_firewall
 
struct  omap_hwmod_addr_space
 
struct  omap_hwmod_ocp_if
 
struct  omap_hwmod_sysc_fields
 
struct  omap_hwmod_class_sysconfig
 
struct  omap_hwmod_omap2_prcm
 
struct  omap_hwmod_omap4_prcm
 
struct  omap_hwmod_class
 
struct  omap_hwmod_link
 
struct  omap_hwmod
 

Macros

#define SYSC_TYPE1_MIDLEMODE_SHIFT   12
 
#define SYSC_TYPE1_MIDLEMODE_MASK   (0x3 << SYSC_TYPE1_MIDLEMODE_SHIFT)
 
#define SYSC_TYPE1_CLOCKACTIVITY_SHIFT   8
 
#define SYSC_TYPE1_CLOCKACTIVITY_MASK   (0x3 << SYSC_TYPE1_CLOCKACTIVITY_SHIFT)
 
#define SYSC_TYPE1_SIDLEMODE_SHIFT   3
 
#define SYSC_TYPE1_SIDLEMODE_MASK   (0x3 << SYSC_TYPE1_SIDLEMODE_SHIFT)
 
#define SYSC_TYPE1_ENAWAKEUP_SHIFT   2
 
#define SYSC_TYPE1_ENAWAKEUP_MASK   (1 << SYSC_TYPE1_ENAWAKEUP_SHIFT)
 
#define SYSC_TYPE1_SOFTRESET_SHIFT   1
 
#define SYSC_TYPE1_SOFTRESET_MASK   (1 << SYSC_TYPE1_SOFTRESET_SHIFT)
 
#define SYSC_TYPE1_AUTOIDLE_SHIFT   0
 
#define SYSC_TYPE1_AUTOIDLE_MASK   (1 << SYSC_TYPE1_AUTOIDLE_SHIFT)
 
#define SYSC_TYPE2_SOFTRESET_SHIFT   0
 
#define SYSC_TYPE2_SOFTRESET_MASK   (1 << SYSC_TYPE2_SOFTRESET_SHIFT)
 
#define SYSC_TYPE2_SIDLEMODE_SHIFT   2
 
#define SYSC_TYPE2_SIDLEMODE_MASK   (0x3 << SYSC_TYPE2_SIDLEMODE_SHIFT)
 
#define SYSC_TYPE2_MIDLEMODE_SHIFT   4
 
#define SYSC_TYPE2_MIDLEMODE_MASK   (0x3 << SYSC_TYPE2_MIDLEMODE_SHIFT)
 
#define SYSC_TYPE2_DMADISABLE_SHIFT   16
 
#define SYSC_TYPE2_DMADISABLE_MASK   (0x1 << SYSC_TYPE2_DMADISABLE_SHIFT)
 
#define SYSC_TYPE3_SIDLEMODE_SHIFT   0
 
#define SYSC_TYPE3_SIDLEMODE_MASK   (0x3 << SYSC_TYPE3_SIDLEMODE_SHIFT)
 
#define SYSC_TYPE3_MIDLEMODE_SHIFT   2
 
#define SYSC_TYPE3_MIDLEMODE_MASK   (0x3 << SYSC_TYPE3_MIDLEMODE_SHIFT)
 
#define SYSS_RESETDONE_SHIFT   0
 
#define SYSS_RESETDONE_MASK   (1 << SYSS_RESETDONE_SHIFT)
 
#define HWMOD_IDLEMODE_FORCE   (1 << 0)
 
#define HWMOD_IDLEMODE_NO   (1 << 1)
 
#define HWMOD_IDLEMODE_SMART   (1 << 2)
 
#define HWMOD_IDLEMODE_SMART_WKUP   (1 << 3)
 
#define MODULEMODE_HWCTRL   1
 
#define MODULEMODE_SWCTRL   2
 
should be something short, e.g., "cpu0" or "rst". It is defined

locally to the hwmod.

#define OMAP_FIREWALL_L3   (1 << 0)
 
#define OMAP_FIREWALL_L4   (1 << 1)
 
#define ADDR_MAP_ON_INIT   (1 << 0) /* XXX does not belong */
 
#define ADDR_TYPE_RT   (1 << 1)
 
: name of the address space

struct omap_hwmod_addr_space - address space handled by the hwmod

: starting physical address : ending physical address : (see omap_hwmod_addr_space.flags macros above)

Address space doesn't necessarily follow physical interconnect structure. GPMC is one example.

#define OCP_USER_MPU   (1 << 0)
 
#define OCP_USER_SDMA   (1 << 1)
 
#define OCP_USER_DSP   (1 << 2)
 
#define OCP_USER_IVA   (1 << 3)
 
#define OCPIF_SWSUP_IDLE   (1 << 0)
 
#define OCPIF_CAN_BURST   (1 << 1)
 
#define _OCPIF_INT_FLAGS_REGISTERED   (1 << 0)
 
#define MASTER_STANDBY_SHIFT   4
 
#define SLAVE_IDLE_SHIFT   0
 
#define SIDLE_FORCE   (HWMOD_IDLEMODE_FORCE << SLAVE_IDLE_SHIFT)
 
#define SIDLE_NO   (HWMOD_IDLEMODE_NO << SLAVE_IDLE_SHIFT)
 
#define SIDLE_SMART   (HWMOD_IDLEMODE_SMART << SLAVE_IDLE_SHIFT)
 
#define SIDLE_SMART_WKUP   (HWMOD_IDLEMODE_SMART_WKUP << SLAVE_IDLE_SHIFT)
 
#define MSTANDBY_FORCE   (HWMOD_IDLEMODE_FORCE << MASTER_STANDBY_SHIFT)
 
#define MSTANDBY_NO   (HWMOD_IDLEMODE_NO << MASTER_STANDBY_SHIFT)
 
#define MSTANDBY_SMART   (HWMOD_IDLEMODE_SMART << MASTER_STANDBY_SHIFT)
 
#define MSTANDBY_SMART_WKUP   (HWMOD_IDLEMODE_SMART_WKUP << MASTER_STANDBY_SHIFT)
 
#define SYSC_HAS_AUTOIDLE   (1 << 0)
 
#define SYSC_HAS_SOFTRESET   (1 << 1)
 
#define SYSC_HAS_ENAWAKEUP   (1 << 2)
 
#define SYSC_HAS_EMUFREE   (1 << 3)
 
#define SYSC_HAS_CLOCKACTIVITY   (1 << 4)
 
#define SYSC_HAS_SIDLEMODE   (1 << 5)
 
#define SYSC_HAS_MIDLEMODE   (1 << 6)
 
#define SYSS_HAS_RESET_STATUS   (1 << 7)
 
#define SYSC_NO_CACHE   (1 << 8) /* XXX SW flag, belongs elsewhere */
 
#define SYSC_HAS_RESET_STATUS   (1 << 9)
 
#define SYSC_HAS_DMADISABLE   (1 << 10)
 
#define CLOCKACT_TEST_BOTH   0x0
 
#define CLOCKACT_TEST_MAIN   0x1
 
#define CLOCKACT_TEST_ICLK   0x2
 
#define CLOCKACT_TEST_NONE   0x3
 
#define HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT   (1 << 0)
 
#define HWMOD_SWSUP_SIDLE   (1 << 0)
 
#define HWMOD_SWSUP_MSTANDBY   (1 << 1)
 
#define HWMOD_INIT_NO_RESET   (1 << 2)
 
#define HWMOD_INIT_NO_IDLE   (1 << 3)
 
#define HWMOD_NO_OCP_AUTOIDLE   (1 << 4)
 
#define HWMOD_SET_DEFAULT_CLOCKACT   (1 << 5)
 
#define HWMOD_NO_IDLEST   (1 << 6)
 
#define HWMOD_CONTROL_OPT_CLKS_IN_RESET   (1 << 7)
 
#define HWMOD_16BIT_REG   (1 << 8)
 
#define HWMOD_EXT_OPT_MAIN_CLK   (1 << 9)
 
#define _HWMOD_NO_MPU_PORT   (1 << 0)
 
#define _HWMOD_WAKEUP_ENABLED   (1 << 1)
 
#define _HWMOD_SYSCONFIG_LOADED   (1 << 2)
 
#define _HWMOD_SKIP_ENABLE   (1 << 3)
 
#define _HWMOD_STATE_UNKNOWN   0
 
#define _HWMOD_STATE_REGISTERED   1
 
#define _HWMOD_STATE_CLKS_INITED   2
 
#define _HWMOD_STATE_INITIALIZED   3
 
#define _HWMOD_STATE_ENABLED   4
 
#define _HWMOD_STATE_IDLE   5
 
#define _HWMOD_STATE_DISABLED   6
 

Functions

: name of the hwmod

struct omap_hwmod - integration data for OMAP hardware "modules" (IP blocks)

struct omap_hwmodomap_hwmod_lookup (const char *name)
 
int omap_hwmod_for_each (int(*fn)(struct omap_hwmod *oh, void *data), void *data)
 
int __init omap_hwmod_setup_one (const char *name)
 
int omap_hwmod_enable (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)
 
int omap_hwmod_deassert_hardreset (struct omap_hwmod *oh, const char *name)
 
int omap_hwmod_read_hardreset (struct omap_hwmod *oh, const char *name)
 
int omap_hwmod_enable_clocks (struct omap_hwmod *oh)
 
int omap_hwmod_disable_clocks (struct omap_hwmod *oh)
 
int omap_hwmod_set_slave_idlemode (struct omap_hwmod *oh, u8 idlemode)
 
int omap_hwmod_set_ocp_autoidle (struct omap_hwmod *oh, u8 autoidle)
 
int omap_hwmod_reset (struct omap_hwmod *oh)
 
void omap_hwmod_ocp_barrier (struct omap_hwmod *oh)
 
void omap_hwmod_write (u32 v, struct omap_hwmod *oh, u16 reg_offs)
 
u32 omap_hwmod_read (struct omap_hwmod *oh, u16 reg_offs)
 
int omap_hwmod_softreset (struct omap_hwmod *oh)
 
int omap_hwmod_count_resources (struct omap_hwmod *oh)
 
int omap_hwmod_fill_resources (struct omap_hwmod *oh, struct resource *res)
 
int omap_hwmod_fill_dma_resources (struct omap_hwmod *oh, struct resource *res)
 
int omap_hwmod_get_resource_byname (struct omap_hwmod *oh, unsigned int type, const char *name, struct resource *res)
 
struct powerdomainomap_hwmod_get_pwrdm (struct omap_hwmod *oh)
 
void __iomemomap_hwmod_get_mpu_rt_va (struct omap_hwmod *oh)
 
int omap_hwmod_add_initiator_dep (struct omap_hwmod *oh, struct omap_hwmod *init_oh)
 
int omap_hwmod_del_initiator_dep (struct omap_hwmod *oh, struct omap_hwmod *init_oh)
 
int omap_hwmod_enable_wakeup (struct omap_hwmod *oh)
 
int omap_hwmod_disable_wakeup (struct omap_hwmod *oh)
 
int omap_hwmod_for_each_by_class (const char *classname, int(*fn)(struct omap_hwmod *oh, void *user), void *user)
 
int omap_hwmod_set_postsetup_state (struct omap_hwmod *oh, u8 state)
 
int omap_hwmod_get_context_loss_count (struct omap_hwmod *oh)
 
int omap_hwmod_no_setup_reset (struct omap_hwmod *oh)
 
int omap_hwmod_pad_route_irq (struct omap_hwmod *oh, int pad_idx, int irq_idx)
 
void __init omap_hwmod_init (void)
 
const charomap_hwmod_get_main_clk (struct omap_hwmod *oh)
 
int omap2420_hwmod_init (void)
 
int omap2430_hwmod_init (void)
 
int omap3xxx_hwmod_init (void)
 
int omap44xx_hwmod_init (void)
 
int am33xx_hwmod_init (void)
 
int __init omap_hwmod_register_links (struct omap_hwmod_ocp_if **ois)
 

Variables

struct omap_hwmod_sysc_fields omap_hwmod_sysc_type1
 
struct omap_hwmod_sysc_fields omap_hwmod_sysc_type2
 
struct omap_hwmod_sysc_fields omap_hwmod_sysc_type3
 

Macro Definition Documentation

#define _HWMOD_NO_MPU_PORT   (1 << 0)

Definition at line 473 of file omap_hwmod.h.

#define _HWMOD_SKIP_ENABLE   (1 << 3)

Definition at line 476 of file omap_hwmod.h.

#define _HWMOD_STATE_CLKS_INITED   2

Definition at line 488 of file omap_hwmod.h.

#define _HWMOD_STATE_DISABLED   6

Definition at line 492 of file omap_hwmod.h.

#define _HWMOD_STATE_ENABLED   4

Definition at line 490 of file omap_hwmod.h.

#define _HWMOD_STATE_IDLE   5

Definition at line 491 of file omap_hwmod.h.

#define _HWMOD_STATE_INITIALIZED   3

Definition at line 489 of file omap_hwmod.h.

#define _HWMOD_STATE_REGISTERED   1

Definition at line 487 of file omap_hwmod.h.

#define _HWMOD_STATE_UNKNOWN   0

Definition at line 486 of file omap_hwmod.h.

#define _HWMOD_SYSCONFIG_LOADED   (1 << 2)

Definition at line 475 of file omap_hwmod.h.

#define _HWMOD_WAKEUP_ENABLED   (1 << 1)

Definition at line 474 of file omap_hwmod.h.

#define _OCPIF_INT_FLAGS_REGISTERED   (1 << 0)

Definition at line 236 of file omap_hwmod.h.

#define ADDR_MAP_ON_INIT   (1 << 0) /* XXX does not belong */

Definition at line 200 of file omap_hwmod.h.

#define ADDR_TYPE_RT   (1 << 1)

Definition at line 201 of file omap_hwmod.h.

#define CLOCKACT_TEST_BOTH   0x0

Definition at line 301 of file omap_hwmod.h.

#define CLOCKACT_TEST_ICLK   0x2

Definition at line 303 of file omap_hwmod.h.

#define CLOCKACT_TEST_MAIN   0x1

Definition at line 302 of file omap_hwmod.h.

#define CLOCKACT_TEST_NONE   0x3

Definition at line 304 of file omap_hwmod.h.

#define HWMOD_16BIT_REG   (1 << 8)

Definition at line 460 of file omap_hwmod.h.

#define HWMOD_CONTROL_OPT_CLKS_IN_RESET   (1 << 7)

Definition at line 459 of file omap_hwmod.h.

#define HWMOD_EXT_OPT_MAIN_CLK   (1 << 9)

Definition at line 461 of file omap_hwmod.h.

#define HWMOD_IDLEMODE_FORCE   (1 << 0)

Definition at line 90 of file omap_hwmod.h.

#define HWMOD_IDLEMODE_NO   (1 << 1)

Definition at line 91 of file omap_hwmod.h.

#define HWMOD_IDLEMODE_SMART   (1 << 2)

Definition at line 92 of file omap_hwmod.h.

#define HWMOD_IDLEMODE_SMART_WKUP   (1 << 3)

Definition at line 93 of file omap_hwmod.h.

#define HWMOD_INIT_NO_IDLE   (1 << 3)

Definition at line 455 of file omap_hwmod.h.

#define HWMOD_INIT_NO_RESET   (1 << 2)

Definition at line 454 of file omap_hwmod.h.

#define HWMOD_NO_IDLEST   (1 << 6)

Definition at line 458 of file omap_hwmod.h.

#define HWMOD_NO_OCP_AUTOIDLE   (1 << 4)

Definition at line 456 of file omap_hwmod.h.

#define HWMOD_OMAP4_NO_CONTEXT_LOSS_BIT   (1 << 0)

Definition at line 394 of file omap_hwmod.h.

#define HWMOD_SET_DEFAULT_CLOCKACT   (1 << 5)

Definition at line 457 of file omap_hwmod.h.

#define HWMOD_SWSUP_MSTANDBY   (1 << 1)

Definition at line 453 of file omap_hwmod.h.

#define HWMOD_SWSUP_SIDLE   (1 << 0)

Definition at line 452 of file omap_hwmod.h.

#define MASTER_STANDBY_SHIFT   4

Definition at line 276 of file omap_hwmod.h.

#define MODULEMODE_HWCTRL   1

Definition at line 96 of file omap_hwmod.h.

#define MODULEMODE_SWCTRL   2

Definition at line 97 of file omap_hwmod.h.

#define MSTANDBY_FORCE   (HWMOD_IDLEMODE_FORCE << MASTER_STANDBY_SHIFT)

Definition at line 282 of file omap_hwmod.h.

#define MSTANDBY_NO   (HWMOD_IDLEMODE_NO << MASTER_STANDBY_SHIFT)

Definition at line 283 of file omap_hwmod.h.

#define MSTANDBY_SMART   (HWMOD_IDLEMODE_SMART << MASTER_STANDBY_SHIFT)

Definition at line 284 of file omap_hwmod.h.

#define MSTANDBY_SMART_WKUP   (HWMOD_IDLEMODE_SMART_WKUP << MASTER_STANDBY_SHIFT)

Definition at line 285 of file omap_hwmod.h.

#define OCP_USER_DSP   (1 << 2)

Definition at line 228 of file omap_hwmod.h.

#define OCP_USER_IVA   (1 << 3)

Definition at line 229 of file omap_hwmod.h.

#define OCP_USER_MPU   (1 << 0)

Definition at line 226 of file omap_hwmod.h.

#define OCP_USER_SDMA   (1 << 1)

Definition at line 227 of file omap_hwmod.h.

#define OCPIF_CAN_BURST   (1 << 1)

Definition at line 233 of file omap_hwmod.h.

#define OCPIF_SWSUP_IDLE   (1 << 0)

Definition at line 232 of file omap_hwmod.h.

#define OMAP_FIREWALL_L3   (1 << 0)

Definition at line 176 of file omap_hwmod.h.

#define OMAP_FIREWALL_L4   (1 << 1)

Definition at line 177 of file omap_hwmod.h.

#define SIDLE_FORCE   (HWMOD_IDLEMODE_FORCE << SLAVE_IDLE_SHIFT)

Definition at line 278 of file omap_hwmod.h.

#define SIDLE_NO   (HWMOD_IDLEMODE_NO << SLAVE_IDLE_SHIFT)

Definition at line 279 of file omap_hwmod.h.

#define SIDLE_SMART   (HWMOD_IDLEMODE_SMART << SLAVE_IDLE_SHIFT)

Definition at line 280 of file omap_hwmod.h.

#define SIDLE_SMART_WKUP   (HWMOD_IDLEMODE_SMART_WKUP << SLAVE_IDLE_SHIFT)

Definition at line 281 of file omap_hwmod.h.

#define SLAVE_IDLE_SHIFT   0

Definition at line 277 of file omap_hwmod.h.

#define SYSC_HAS_AUTOIDLE   (1 << 0)

Definition at line 288 of file omap_hwmod.h.

#define SYSC_HAS_CLOCKACTIVITY   (1 << 4)

Definition at line 292 of file omap_hwmod.h.

#define SYSC_HAS_DMADISABLE   (1 << 10)

Definition at line 298 of file omap_hwmod.h.

#define SYSC_HAS_EMUFREE   (1 << 3)

Definition at line 291 of file omap_hwmod.h.

#define SYSC_HAS_ENAWAKEUP   (1 << 2)

Definition at line 290 of file omap_hwmod.h.

#define SYSC_HAS_MIDLEMODE   (1 << 6)

Definition at line 294 of file omap_hwmod.h.

#define SYSC_HAS_RESET_STATUS   (1 << 9)

Definition at line 297 of file omap_hwmod.h.

#define SYSC_HAS_SIDLEMODE   (1 << 5)

Definition at line 293 of file omap_hwmod.h.

#define SYSC_HAS_SOFTRESET   (1 << 1)

Definition at line 289 of file omap_hwmod.h.

#define SYSC_NO_CACHE   (1 << 8) /* XXX SW flag, belongs elsewhere */

Definition at line 296 of file omap_hwmod.h.

#define SYSC_TYPE1_AUTOIDLE_MASK   (1 << SYSC_TYPE1_AUTOIDLE_SHIFT)

Definition at line 61 of file omap_hwmod.h.

#define SYSC_TYPE1_AUTOIDLE_SHIFT   0

Definition at line 60 of file omap_hwmod.h.

#define SYSC_TYPE1_CLOCKACTIVITY_MASK   (0x3 << SYSC_TYPE1_CLOCKACTIVITY_SHIFT)

Definition at line 53 of file omap_hwmod.h.

#define SYSC_TYPE1_CLOCKACTIVITY_SHIFT   8

Definition at line 52 of file omap_hwmod.h.

#define SYSC_TYPE1_ENAWAKEUP_MASK   (1 << SYSC_TYPE1_ENAWAKEUP_SHIFT)

Definition at line 57 of file omap_hwmod.h.

#define SYSC_TYPE1_ENAWAKEUP_SHIFT   2

Definition at line 56 of file omap_hwmod.h.

#define SYSC_TYPE1_MIDLEMODE_MASK   (0x3 << SYSC_TYPE1_MIDLEMODE_SHIFT)

Definition at line 51 of file omap_hwmod.h.

#define SYSC_TYPE1_MIDLEMODE_SHIFT   12

Definition at line 50 of file omap_hwmod.h.

#define SYSC_TYPE1_SIDLEMODE_MASK   (0x3 << SYSC_TYPE1_SIDLEMODE_SHIFT)

Definition at line 55 of file omap_hwmod.h.

#define SYSC_TYPE1_SIDLEMODE_SHIFT   3

Definition at line 54 of file omap_hwmod.h.

#define SYSC_TYPE1_SOFTRESET_MASK   (1 << SYSC_TYPE1_SOFTRESET_SHIFT)

Definition at line 59 of file omap_hwmod.h.

#define SYSC_TYPE1_SOFTRESET_SHIFT   1

Definition at line 58 of file omap_hwmod.h.

#define SYSC_TYPE2_DMADISABLE_MASK   (0x1 << SYSC_TYPE2_DMADISABLE_SHIFT)

Definition at line 74 of file omap_hwmod.h.

#define SYSC_TYPE2_DMADISABLE_SHIFT   16

Definition at line 73 of file omap_hwmod.h.

#define SYSC_TYPE2_MIDLEMODE_MASK   (0x3 << SYSC_TYPE2_MIDLEMODE_SHIFT)

Definition at line 72 of file omap_hwmod.h.

#define SYSC_TYPE2_MIDLEMODE_SHIFT   4

Definition at line 71 of file omap_hwmod.h.

#define SYSC_TYPE2_SIDLEMODE_MASK   (0x3 << SYSC_TYPE2_SIDLEMODE_SHIFT)

Definition at line 70 of file omap_hwmod.h.

#define SYSC_TYPE2_SIDLEMODE_SHIFT   2

Definition at line 69 of file omap_hwmod.h.

#define SYSC_TYPE2_SOFTRESET_MASK   (1 << SYSC_TYPE2_SOFTRESET_SHIFT)

Definition at line 68 of file omap_hwmod.h.

#define SYSC_TYPE2_SOFTRESET_SHIFT   0

Definition at line 67 of file omap_hwmod.h.

#define SYSC_TYPE3_MIDLEMODE_MASK   (0x3 << SYSC_TYPE3_MIDLEMODE_SHIFT)

Definition at line 83 of file omap_hwmod.h.

#define SYSC_TYPE3_MIDLEMODE_SHIFT   2

Definition at line 82 of file omap_hwmod.h.

#define SYSC_TYPE3_SIDLEMODE_MASK   (0x3 << SYSC_TYPE3_SIDLEMODE_SHIFT)

Definition at line 81 of file omap_hwmod.h.

#define SYSC_TYPE3_SIDLEMODE_SHIFT   0

Definition at line 80 of file omap_hwmod.h.

#define SYSS_HAS_RESET_STATUS   (1 << 7)

Definition at line 295 of file omap_hwmod.h.

#define SYSS_RESETDONE_MASK   (1 << SYSS_RESETDONE_SHIFT)

Definition at line 87 of file omap_hwmod.h.

#define SYSS_RESETDONE_SHIFT   0

Definition at line 86 of file omap_hwmod.h.

Function Documentation

int am33xx_hwmod_init ( void  )

Definition at line 3377 of file omap_hwmod_33xx_data.c.

int omap2420_hwmod_init ( void  )

Definition at line 612 of file omap_hwmod_2420_data.c.

int omap2430_hwmod_init ( void  )

Definition at line 971 of file omap_hwmod_2430_data.c.

int omap3xxx_hwmod_init ( void  )

Definition at line 3702 of file omap_hwmod_3xxx_data.c.

int omap44xx_hwmod_init ( void  )

Definition at line 6405 of file omap_hwmod_44xx_data.c.

int omap_hwmod_add_initiator_dep ( struct omap_hwmod oh,
struct omap_hwmod init_oh 
)

omap_hwmod_add_initiator_dep - add sleepdep from to : struct omap_hwmod * : struct omap_hwmod * (initiator)

Add a sleep dependency between the initiator and . Intended to be called by DSP/Bridge code via platform_data for the DSP case; and by the DMA code in the sDMA case. DMA code, *Bridge code needs to add/del initiator dependencies dynamically before/after accessing a device. Returns the return value from _add_initiator_dep().

XXX Keep a usecount in the clockdomain code

Definition at line 3625 of file omap_hwmod.c.

int omap_hwmod_assert_hardreset ( struct omap_hwmod oh,
const char name 
)

Definition at line 3734 of file omap_hwmod.c.

int omap_hwmod_count_resources ( struct omap_hwmod oh)

omap_hwmod_count_resources - count number of struct resources needed by hwmod : struct omap_hwmod * : pointer to the first element of an array of struct resource to fill

Count the number of struct resource array elements necessary to contain omap_hwmod resources. Intended to be called by code that registers omap_devices. Intended to be used to determine the size of a dynamically-allocated struct resource array, before calling omap_hwmod_fill_resources(). Returns the number of struct resource array elements needed.

XXX This code is not optimized. It could attempt to merge adjacent resource IDs.

Definition at line 3388 of file omap_hwmod.c.

int omap_hwmod_deassert_hardreset ( struct omap_hwmod oh,
const char name 
)

Definition at line 3761 of file omap_hwmod.c.

int omap_hwmod_del_initiator_dep ( struct omap_hwmod oh,
struct omap_hwmod init_oh 
)

omap_hwmod_del_initiator_dep - remove sleepdep from to : struct omap_hwmod * : struct omap_hwmod * (initiator)

Remove a sleep dependency between the initiator and . Intended to be called by DSP/Bridge code via platform_data for the DSP case; and by the DMA code in the sDMA case. DMA code, *Bridge code needs to add/del initiator dependencies dynamically before/after accessing a device. Returns the return value from _del_initiator_dep().

XXX Keep a usecount in the clockdomain code

Definition at line 3650 of file omap_hwmod.c.

int omap_hwmod_disable_clocks ( struct omap_hwmod oh)

omap_hwmod_disable_clocks - disable main_clk, all interface clocks : struct omap_hwmod *oh

Intended to be called by the omap_device code.

Definition at line 3306 of file omap_hwmod.c.

int omap_hwmod_disable_wakeup ( struct omap_hwmod oh)

omap_hwmod_disable_wakeup - prevent device from waking the system : struct omap_hwmod *

Clears the module OCP socket ENAWAKEUP bit to prevent the module from sending wakeups to the PRCM, and disable I/O ring wakeup events for this IP block if it has dynamic mux entries. Eventually this should clear PRCM wakeup registers to cause the PRCM to ignore wakeup events from the module. Does not set any wakeup routing registers beyond this point - if the module is to wake up any other module or subsystem, that must be set separately. Called by omap_device code. Returns -EINVAL on error or 0 upon success.

Definition at line 3702 of file omap_hwmod.c.

int omap_hwmod_enable ( struct omap_hwmod oh)

omap_hwmod_enable - enable an omap_hwmod : struct omap_hwmod *

Enable an omap_hwmod . Intended to be called by omap_device_enable(). Returns -EINVAL on error or passes along the return value from _enable().

Definition at line 3225 of file omap_hwmod.c.

int omap_hwmod_enable_clocks ( struct omap_hwmod oh)

omap_hwmod_enable_clocks - enable main_clk, all interface clocks : struct omap_hwmod *oh

Intended to be called by the omap_device code.

Definition at line 3289 of file omap_hwmod.c.

int omap_hwmod_enable_wakeup ( struct omap_hwmod oh)

omap_hwmod_enable_wakeup - allow device to wake up the system : struct omap_hwmod *

Sets the module OCP socket ENAWAKEUP bit to allow the module to send wakeups to the PRCM, and enable I/O ring wakeup events for this IP block if it has dynamic mux entries. Eventually this should set PRCM wakeup registers to cause the PRCM to receive wakeup events from the module. Does not set any wakeup routing registers beyond this point - if the module is to wake up any other module or subsystem, that must be set separately. Called by omap_device code. Returns -EINVAL on error or 0 upon success.

Definition at line 3669 of file omap_hwmod.c.

int omap_hwmod_fill_dma_resources ( struct omap_hwmod oh,
struct resource res 
)

omap_hwmod_fill_dma_resources - fill struct resource array with dma data : struct omap_hwmod * : pointer to the array of struct resource to fill

Fill the struct resource array with dma resource data from the omap_hwmod . Intended to be called by code that registers omap_devices. See also omap_hwmod_count_resources(). Returns the number of array elements filled.

Definition at line 3473 of file omap_hwmod.c.

int omap_hwmod_fill_resources ( struct omap_hwmod oh,
struct resource res 
)

omap_hwmod_fill_resources - fill struct resource array with hwmod data : struct omap_hwmod * : pointer to the first element of an array of struct resource to fill

Fill the struct resource array with resource data from the omap_hwmod . Intended to be called by code that registers omap_devices. See also omap_hwmod_count_resources(). Returns the number of array elements filled.

Definition at line 3417 of file omap_hwmod.c.

int omap_hwmod_for_each ( int(*)(struct omap_hwmod *oh, void *data fn,
void data 
)

Definition at line 3092 of file omap_hwmod.c.

int omap_hwmod_for_each_by_class ( const char classname,
int(*)(struct omap_hwmod *oh, void *user fn,
void user 
)

Definition at line 3815 of file omap_hwmod.c.

int omap_hwmod_get_context_loss_count ( struct omap_hwmod oh)

omap_hwmod_get_context_loss_count - get lost context count : struct omap_hwmod *

Query the powerdomain of of to get the context loss count for this device.

Returns the context loss count of the powerdomain assocated with upon success, or zero if no powerdomain exists for .

Definition at line 3896 of file omap_hwmod.c.

const char* omap_hwmod_get_main_clk ( struct omap_hwmod oh)

omap_hwmod_get_main_clk - get pointer to main clock name : struct omap_hwmod *

Returns the main clock name assocated with upon success, or NULL if is NULL.

Definition at line 4032 of file omap_hwmod.c.

void __iomem* omap_hwmod_get_mpu_rt_va ( struct omap_hwmod oh)

omap_hwmod_get_mpu_rt_va - return the module's base address (for the MPU) : struct omap_hwmod *

Returns the virtual address corresponding to the beginning of the module's register target, in the address range that is intended to be used by the MPU. Returns the virtual address upon success or NULL upon error.

Definition at line 3597 of file omap_hwmod.c.

struct powerdomain* omap_hwmod_get_pwrdm ( struct omap_hwmod oh)
read

omap_hwmod_get_pwrdm - return pointer to this module's main powerdomain : struct omap_hwmod *

Return the powerdomain pointer associated with the OMAP module 's main clock. If does not have a main clk, return the powerdomain associated with the interface clock associated with the module's MPU port. (XXX Perhaps this should use the SDMA port instead?) Returns NULL on error, or a struct powerdomain * on success.

Definition at line 3564 of file omap_hwmod.c.

int omap_hwmod_get_resource_byname ( struct omap_hwmod oh,
unsigned int  type,
const char name,
struct resource res 
)

Definition at line 3512 of file omap_hwmod.c.

int omap_hwmod_idle ( struct omap_hwmod oh)

omap_hwmod_idle - idle an omap_hwmod : struct omap_hwmod *

Idle an omap_hwmod . Intended to be called by omap_device_idle(). Returns -EINVAL on error or passes along the return value from _idle().

Definition at line 3247 of file omap_hwmod.c.

void __init omap_hwmod_init ( void  )

omap_hwmod_init - initialize the hwmod code

Sets up some function pointers needed by the hwmod code to operate on the currently-booted SoC. Intended to be called once during kernel init before any hwmods are registered. No return value.

Definition at line 3995 of file omap_hwmod.c.

struct omap_hwmod* omap_hwmod_lookup ( const char name)
read

Definition at line 3068 of file omap_hwmod.c.

int omap_hwmod_no_setup_reset ( struct omap_hwmod oh)

omap_hwmod_no_setup_reset - prevent a hwmod from being reset upon setup : struct omap_hwmod *

Prevent the hwmod from being reset during the setup process. Intended for use by board-*.c files on boards with devices that cannot tolerate being reset. Must be called before the hwmod has been set up. Returns 0 upon success or negative error code upon failure.

Definition at line 3918 of file omap_hwmod.c.

void omap_hwmod_ocp_barrier ( struct omap_hwmod oh)

omap_hwmod_ocp_barrier - wait for posted writes against the hwmod to complete : struct omap_hwmod *oh

Intended to be called by drivers and core code when all posted writes to a device must complete before continuing further execution (for example, after clearing some device IRQSTATUS register bits)

XXX what about targets with multiple OCP threads?

Definition at line 3328 of file omap_hwmod.c.

int omap_hwmod_pad_route_irq ( struct omap_hwmod oh,
int  pad_idx,
int  irq_idx 
)

omap_hwmod_pad_route_irq - route an I/O pad wakeup to a particular MPU IRQ : struct omap_hwmod * containing hwmod mux entries : array index in oh->mux of the hwmod mux entry to route wakeup : the hwmod mpu_irqs array index of the IRQ to trigger on wakeup

When an I/O pad wakeup arrives for the dynamic or wakeup hwmod mux entry number for the hwmod , trigger the interrupt service routine for the hwmod's mpu_irqs array index . If this function is not called for a given pad_idx, then the ISR associated with 's first MPU IRQ will be triggered when an I/O pad wakeup occurs on that pad. Note that is the index of the dynamic or wakeup entry: if there are other entries not marked with OMAP_DEVICE_PAD_WAKEUP or OMAP_DEVICE_PAD_REMUX, these entries are NOT COUNTED in the dynamic pad index. This function must be called separately for each pad that requires its interrupt to be re-routed this way. Returns -EINVAL if there is an argument problem or if does not have hwmod mux entries or MPU IRQs; returns -ENOMEM if memory cannot be allocated; or 0 upon success.

XXX This function interface is fragile. Rather than using array indexes, which are subject to unpredictable change, it should be using hwmod IRQ names, and some other stable key for the hwmod mux pad records.

Definition at line 3959 of file omap_hwmod.c.

u32 omap_hwmod_read ( struct omap_hwmod oh,
u16  reg_offs 
)

Definition at line 2986 of file omap_hwmod.c.

int omap_hwmod_read_hardreset ( struct omap_hwmod oh,
const char name 
)

Definition at line 3787 of file omap_hwmod.c.

int __init omap_hwmod_register_links ( struct omap_hwmod_ocp_if **  ois)

omap_hwmod_register_links - register an array of hwmod links : pointer to an array of omap_hwmod_ocp_if to register

Intended to be called early in boot before the clock framework is initialized. If is not null, will register all omap_hwmods listed in that are valid for this chip. Returns -EINVAL if omap_hwmod_init() hasn't been called before calling this function, -ENOMEM if the link memory area can't be allocated, or 0 upon success.

Definition at line 3121 of file omap_hwmod.c.

int omap_hwmod_reset ( struct omap_hwmod oh)

omap_hwmod_reset - reset the hwmod : struct omap_hwmod *

Under some conditions, a driver may wish to reset the entire device. Called from omap_device code. Returns -EINVAL on error or passes along the return value from _reset().

Definition at line 3353 of file omap_hwmod.c.

int omap_hwmod_set_ocp_autoidle ( struct omap_hwmod oh,
u8  autoidle 
)

omap_hwmod_set_ocp_autoidle - set the hwmod's OCP autoidle bit : struct omap_hwmod * : desired AUTOIDLE bitfield value (0 or 1)

Sets the IP block's OCP autoidle bit in hardware, and updates our local copy. Intended to be used by drivers that require direct manipulation of the AUTOIDLE bits. Returns -EINVAL if is null or is not in the ENABLED state, or passes along the return value from _set_module_autoidle().

Any users of this function should be scrutinized carefully.

Definition at line 2172 of file omap_hwmod.c.

int omap_hwmod_set_postsetup_state ( struct omap_hwmod oh,
u8  state 
)

omap_hwmod_set_postsetup_state - set the post-_setup() state for this hwmod : struct omap_hwmod * : state that _setup() should leave the hwmod in

Sets the hwmod state that will enter at the end of setup() (called by omap_hwmod_setup*()). See also the documentation for _setup_postsetup(), above. Returns 0 upon success or -EINVAL if there is a problem with the arguments or if the hwmod is in the wrong state.

Definition at line 3857 of file omap_hwmod.c.

int omap_hwmod_set_slave_idlemode ( struct omap_hwmod oh,
u8  idlemode 
)

omap_hwmod_set_slave_idlemode - set the hwmod's OCP slave idlemode : struct omap_hwmod * : SIDLEMODE field bits (shifted to bit 0)

Sets the IP block's OCP slave idlemode in hardware, and updates our local copy. Intended to be used by drivers that have some erratum that requires direct manipulation of the SIDLEMODE bits. Returns -EINVAL if is null, or passes along the return value from _set_slave_idlemode().

XXX Does this function have any current users? If not, we should remove it; it is better to let the rest of the hwmod code handle this. Any users of this function should be scrutinized carefully.

Definition at line 3044 of file omap_hwmod.c.

int __init omap_hwmod_setup_one ( const char oh_name)

omap_hwmod_setup_one - set up a single hwmod : const char * name of the already-registered hwmod to set up

Initialize and set up a single hwmod. Intended to be used for a small number of early devices, such as the timer IP blocks used for the scheduler clock. Must be called after omap2_clk_init(). Resolves the struct clk names to struct clk pointers for each registered omap_hwmod. Also calls _setup() on each hwmod. Returns -EINVAL upon error or 0 upon success.

Definition at line 3179 of file omap_hwmod.c.

int omap_hwmod_shutdown ( struct omap_hwmod oh)

omap_hwmod_shutdown - shutdown an omap_hwmod : struct omap_hwmod *

Shutdown an omap_hwmod . Intended to be called by omap_device_shutdown(). Returns -EINVAL on error or passes along the return value from _shutdown().

Definition at line 3269 of file omap_hwmod.c.

int omap_hwmod_softreset ( struct omap_hwmod oh)

omap_hwmod_softreset - reset a module via SYSCONFIG.SOFTRESET bit : struct omap_hwmod *

This is a public function exposed to drivers. Some drivers may need to do some settings before and after resetting the device. Those drivers after doing the necessary settings could use this function to start a reset by setting the SYSCONFIG.SOFTRESET bit.

Definition at line 3011 of file omap_hwmod.c.

void omap_hwmod_write ( u32  v,
struct omap_hwmod oh,
u16  reg_offs 
)

Definition at line 2994 of file omap_hwmod.c.

Variable Documentation

struct omap_hwmod_sysc_fields omap_hwmod_sysc_type1

struct omap_hwmod_sysc_type1 - TYPE1 sysconfig scheme.

To be used by hwmod structure to specify the sysconfig offsets if the device ip is compliant with the original PRCM protocol defined for OMAP2420.

Definition at line 30 of file omap_hwmod_common_data.c.

struct omap_hwmod_sysc_fields omap_hwmod_sysc_type2

struct omap_hwmod_sysc_type2 - TYPE2 sysconfig scheme.

To be used by hwmod structure to specify the sysconfig offsets if the device ip is compliant with the new PRCM protocol defined for new OMAP4 IPs.

Definition at line 46 of file omap_hwmod_common_data.c.

struct omap_hwmod_sysc_fields omap_hwmod_sysc_type3

struct omap_hwmod_sysc_type3 - TYPE3 sysconfig scheme. Used by some IPs on AM33xx

Definition at line 57 of file omap_hwmod_common_data.c.