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 | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 65285317f80b..09679032603c 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h | |||
@@ -219,6 +219,10 @@ struct omap_hwmod_addr_space { | |||
219 | #define OCPIF_SWSUP_IDLE (1 << 0) | 219 | #define OCPIF_SWSUP_IDLE (1 << 0) |
220 | #define OCPIF_CAN_BURST (1 << 1) | 220 | #define OCPIF_CAN_BURST (1 << 1) |
221 | 221 | ||
222 | /* omap_hwmod_ocp_if._int_flags possibilities */ | ||
223 | #define _OCPIF_INT_FLAGS_REGISTERED (1 << 0) | ||
224 | |||
225 | |||
222 | /** | 226 | /** |
223 | * struct omap_hwmod_ocp_if - OCP interface data | 227 | * struct omap_hwmod_ocp_if - OCP interface data |
224 | * @master: struct omap_hwmod that initiates OCP transactions on this link | 228 | * @master: struct omap_hwmod that initiates OCP transactions on this link |
@@ -230,6 +234,7 @@ struct omap_hwmod_addr_space { | |||
230 | * @width: OCP data width | 234 | * @width: OCP data width |
231 | * @user: initiators using this interface (see OCP_USER_* macros above) | 235 | * @user: initiators using this interface (see OCP_USER_* macros above) |
232 | * @flags: OCP interface flags (see OCPIF_* macros above) | 236 | * @flags: OCP interface flags (see OCPIF_* macros above) |
237 | * @_int_flags: internal flags (see _OCPIF_INT_FLAGS* macros above) | ||
233 | * | 238 | * |
234 | * It may also be useful to add a tag_cnt field for OCP2.x devices. | 239 | * It may also be useful to add a tag_cnt field for OCP2.x devices. |
235 | * | 240 | * |
@@ -248,6 +253,7 @@ struct omap_hwmod_ocp_if { | |||
248 | u8 width; | 253 | u8 width; |
249 | u8 user; | 254 | u8 user; |
250 | u8 flags; | 255 | u8 flags; |
256 | u8 _int_flags; | ||
251 | }; | 257 | }; |
252 | 258 | ||
253 | 259 | ||
@@ -477,6 +483,16 @@ struct omap_hwmod_class { | |||
477 | }; | 483 | }; |
478 | 484 | ||
479 | /** | 485 | /** |
486 | * struct omap_hwmod_link - internal structure linking hwmods with ocp_ifs | ||
487 | * @ocp_if: OCP interface structure record pointer | ||
488 | * @node: list_head pointing to next struct omap_hwmod_link in a list | ||
489 | */ | ||
490 | struct omap_hwmod_link { | ||
491 | struct omap_hwmod_ocp_if *ocp_if; | ||
492 | struct list_head node; | ||
493 | }; | ||
494 | |||
495 | /** | ||
480 | * struct omap_hwmod - integration data for OMAP hardware "modules" (IP blocks) | 496 | * struct omap_hwmod - integration data for OMAP hardware "modules" (IP blocks) |
481 | * @name: name of the hwmod | 497 | * @name: name of the hwmod |
482 | * @class: struct omap_hwmod_class * to the class of this hwmod | 498 | * @class: struct omap_hwmod_class * to the class of this hwmod |
@@ -494,6 +510,7 @@ struct omap_hwmod_class { | |||
494 | * @_sysc_cache: internal-use hwmod flags | 510 | * @_sysc_cache: internal-use hwmod flags |
495 | * @_mpu_rt_va: cached register target start address (internal use) | 511 | * @_mpu_rt_va: cached register target start address (internal use) |
496 | * @_mpu_port_index: cached MPU register target slave ID (internal use) | 512 | * @_mpu_port_index: cached MPU register target slave ID (internal use) |
513 | * @_mpu_port: cached MPU register target slave (internal use) | ||
497 | * @opt_clks_cnt: number of @opt_clks | 514 | * @opt_clks_cnt: number of @opt_clks |
498 | * @master_cnt: number of @master entries | 515 | * @master_cnt: number of @master entries |
499 | * @slaves_cnt: number of @slave entries | 516 | * @slaves_cnt: number of @slave entries |
@@ -512,6 +529,8 @@ struct omap_hwmod_class { | |||
512 | * | 529 | * |
513 | * Parameter names beginning with an underscore are managed internally by | 530 | * Parameter names beginning with an underscore are managed internally by |
514 | * the omap_hwmod code and should not be set during initialization. | 531 | * the omap_hwmod code and should not be set during initialization. |
532 | * | ||
533 | * @masters and @slaves are now deprecated. | ||
515 | */ | 534 | */ |
516 | struct omap_hwmod { | 535 | struct omap_hwmod { |
517 | const char *name; | 536 | const char *name; |
@@ -532,11 +551,14 @@ struct omap_hwmod { | |||
532 | struct clockdomain *clkdm; | 551 | struct clockdomain *clkdm; |
533 | struct omap_hwmod_ocp_if **masters; /* connect to *_IA */ | 552 | struct omap_hwmod_ocp_if **masters; /* connect to *_IA */ |
534 | struct omap_hwmod_ocp_if **slaves; /* connect to *_TA */ | 553 | struct omap_hwmod_ocp_if **slaves; /* connect to *_TA */ |
554 | struct list_head master_ports; /* connect to *_IA */ | ||
555 | struct list_head slave_ports; /* connect to *_TA */ | ||
535 | void *dev_attr; | 556 | void *dev_attr; |
536 | u32 _sysc_cache; | 557 | u32 _sysc_cache; |
537 | void __iomem *_mpu_rt_va; | 558 | void __iomem *_mpu_rt_va; |
538 | spinlock_t _lock; | 559 | spinlock_t _lock; |
539 | struct list_head node; | 560 | struct list_head node; |
561 | struct omap_hwmod_ocp_if *_mpu_port; | ||
540 | u16 flags; | 562 | u16 flags; |
541 | u8 _mpu_port_index; | 563 | u8 _mpu_port_index; |
542 | u8 response_lat; | 564 | u8 response_lat; |
@@ -622,4 +644,6 @@ extern int omap2430_hwmod_init(void); | |||
622 | extern int omap3xxx_hwmod_init(void); | 644 | extern int omap3xxx_hwmod_init(void); |
623 | extern int omap44xx_hwmod_init(void); | 645 | extern int omap44xx_hwmod_init(void); |
624 | 646 | ||
647 | extern int __init omap_hwmod_register_links(struct omap_hwmod_ocp_if **ois); | ||
648 | |||
625 | #endif | 649 | #endif |