ARM: OMAP2+: add user and fifo info to mailbox platform data
authorSuman Anna <s-anna@ti.com>
Tue, 7 May 2013 22:30:27 +0000 (17:30 -0500)
committerSuman Anna <s-anna@ti.com>
Tue, 11 Jun 2013 16:41:30 +0000 (11:41 -0500)
The different generations of OMAP2+ SoCs have almost the same
mailbox IP, but the IP has configurable parameters for number
of users (interrupts it can generate out towards processors)
and number of fifos (the base unidirectional h/w communication
channel). This data cannot be read from any registers, and so
has been added to the platform data.

This data together with the interrupt-type configuration can be
used in properly figuring out the number of registers to save
and restore in the OMAP mailbox driver code.

Cc: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Suman Anna <s-anna@ti.com>
arch/arm/mach-omap2/omap_hwmod_2420_data.c
arch/arm/mach-omap2/omap_hwmod_2430_data.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
include/linux/platform_data/mailbox-omap.h

index dbcb928eea50dbeeb9ce60be507407046c8223b9..d8b9d60f854f9a1b4b2b633b4cede6f46d092183 100644 (file)
@@ -173,6 +173,8 @@ static struct omap_mbox_dev_info omap2420_mailbox_info[] = {
 };
 
 static struct omap_mbox_pdata omap2420_mailbox_attrs = {
+       .num_users      = 4,
+       .num_fifos      = 6,
        .info_cnt       = ARRAY_SIZE(omap2420_mailbox_info),
        .info           = omap2420_mailbox_info,
 };
index df2f8742fe41dc8f5c0611867aff140343287167..5b9083461dc5e025ba83ab05d63603861722a1fb 100644 (file)
@@ -176,6 +176,8 @@ static struct omap_mbox_dev_info omap2430_mailbox_info[] = {
 };
 
 static struct omap_mbox_pdata omap2430_mailbox_attrs = {
+       .num_users      = 4,
+       .num_fifos      = 6,
        .info_cnt       = ARRAY_SIZE(omap2430_mailbox_info),
        .info           = omap2430_mailbox_info,
 };
index 9ac5122396d858eed6e4b9a3d28d538e1727daea..8e4cbc99ce28982168bff836c58ed9ba9dd04a32 100644 (file)
@@ -1511,6 +1511,8 @@ static struct omap_mbox_dev_info omap3xxx_mailbox_info[] = {
 };
 
 static struct omap_mbox_pdata omap3xxx_mailbox_attrs = {
+       .num_users      = 2,
+       .num_fifos      = 2,
        .info_cnt       = ARRAY_SIZE(omap3xxx_mailbox_info),
        .info           = omap3xxx_mailbox_info,
 };
index 676cd642bb3f6184e0d36157de17ee73b858d1f8..4631dbb4255e03e719c24ed900b568cd16a1b376 100644 (file)
@@ -41,11 +41,16 @@ struct omap_mbox_dev_info {
  * struct omap_mbox_pdata - OMAP mailbox platform data
  * @intr_type: type of interrupt configuration registers used
                        while programming mailbox queue interrupts
+ * @num_users: number of users (processor devices) that the mailbox
+ *                     h/w block can interrupt
+ * @num_fifos: number of h/w fifos within the mailbox h/w block
  * @info_cnt:  number of mailbox devices for the platform
  * @info:      array of mailbox device attributes
  */
 struct omap_mbox_pdata {
        u32 intr_type;
+       u32 num_users;
+       u32 num_fifos;
        u32 info_cnt;
        struct omap_mbox_dev_info *info;
 };