aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSuman Anna <s-anna@ti.com>2013-05-07 18:30:27 -0400
committerSuman Anna <s-anna@ti.com>2013-06-11 12:41:30 -0400
commitfe32c1f6024e357f586b1d666237cab80a1215ce (patch)
tree04ba3a27a26419441e464b2d152e1cbb0ac8d447
parentb8a7cf8e2b15a3abac0a9e376b6b7ed4bbb6ee8e (diff)
ARM: OMAP2+: add user and fifo info to mailbox platform data
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>
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2420_data.c2
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2430_data.c2
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_3xxx_data.c2
-rw-r--r--include/linux/platform_data/mailbox-omap.h5
4 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
index dbcb928eea50..d8b9d60f854f 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
@@ -173,6 +173,8 @@ static struct omap_mbox_dev_info omap2420_mailbox_info[] = {
173}; 173};
174 174
175static struct omap_mbox_pdata omap2420_mailbox_attrs = { 175static struct omap_mbox_pdata omap2420_mailbox_attrs = {
176 .num_users = 4,
177 .num_fifos = 6,
176 .info_cnt = ARRAY_SIZE(omap2420_mailbox_info), 178 .info_cnt = ARRAY_SIZE(omap2420_mailbox_info),
177 .info = omap2420_mailbox_info, 179 .info = omap2420_mailbox_info,
178}; 180};
diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
index df2f8742fe41..5b9083461dc5 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c
@@ -176,6 +176,8 @@ static struct omap_mbox_dev_info omap2430_mailbox_info[] = {
176}; 176};
177 177
178static struct omap_mbox_pdata omap2430_mailbox_attrs = { 178static struct omap_mbox_pdata omap2430_mailbox_attrs = {
179 .num_users = 4,
180 .num_fifos = 6,
179 .info_cnt = ARRAY_SIZE(omap2430_mailbox_info), 181 .info_cnt = ARRAY_SIZE(omap2430_mailbox_info),
180 .info = omap2430_mailbox_info, 182 .info = omap2430_mailbox_info,
181}; 183};
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 9ac5122396d8..8e4cbc99ce28 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -1511,6 +1511,8 @@ static struct omap_mbox_dev_info omap3xxx_mailbox_info[] = {
1511}; 1511};
1512 1512
1513static struct omap_mbox_pdata omap3xxx_mailbox_attrs = { 1513static struct omap_mbox_pdata omap3xxx_mailbox_attrs = {
1514 .num_users = 2,
1515 .num_fifos = 2,
1514 .info_cnt = ARRAY_SIZE(omap3xxx_mailbox_info), 1516 .info_cnt = ARRAY_SIZE(omap3xxx_mailbox_info),
1515 .info = omap3xxx_mailbox_info, 1517 .info = omap3xxx_mailbox_info,
1516}; 1518};
diff --git a/include/linux/platform_data/mailbox-omap.h b/include/linux/platform_data/mailbox-omap.h
index 676cd642bb3f..4631dbb4255e 100644
--- a/include/linux/platform_data/mailbox-omap.h
+++ b/include/linux/platform_data/mailbox-omap.h
@@ -41,11 +41,16 @@ struct omap_mbox_dev_info {
41 * struct omap_mbox_pdata - OMAP mailbox platform data 41 * struct omap_mbox_pdata - OMAP mailbox platform data
42 * @intr_type: type of interrupt configuration registers used 42 * @intr_type: type of interrupt configuration registers used
43 while programming mailbox queue interrupts 43 while programming mailbox queue interrupts
44 * @num_users: number of users (processor devices) that the mailbox
45 * h/w block can interrupt
46 * @num_fifos: number of h/w fifos within the mailbox h/w block
44 * @info_cnt: number of mailbox devices for the platform 47 * @info_cnt: number of mailbox devices for the platform
45 * @info: array of mailbox device attributes 48 * @info: array of mailbox device attributes
46 */ 49 */
47struct omap_mbox_pdata { 50struct omap_mbox_pdata {
48 u32 intr_type; 51 u32 intr_type;
52 u32 num_users;
53 u32 num_fifos;
49 u32 info_cnt; 54 u32 info_cnt;
50 struct omap_mbox_dev_info *info; 55 struct omap_mbox_dev_info *info;
51}; 56};