aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mailbox/omap-mbox.h
diff options
context:
space:
mode:
authorSuman Anna <s-anna@ti.com>2014-06-24 20:43:41 -0400
committerTony Lindgren <tony@atomide.com>2014-07-29 04:57:25 -0400
commit5040f534385a300dee4f05af2484cdbf9ecef8a6 (patch)
treec0b9e9a84e1700f951986ada8ad6014c74898a75 /drivers/mailbox/omap-mbox.h
parentef45eae6e9f6af297c0cd0bfb98c85f3f51e96be (diff)
mailbox/omap: consolidate OMAP mailbox driver
There is no need for a separate common OMAP mailbox module now that the OMAP1 mailbox driver has been removed. So, consolidate the two individual OMAP mailbox modules into a single driver. This streamlines the driver for converting to mailbox framework. The following are the main changes: - collapse mailbox-omap2.c into omap-mailbox.c - remove omap_mbox_ops and replace the ops calls with the equivalent functionality. - simplify the sub-mailbox startup/shutdown functionality, the one-time operations are moved into probe, and the pm_runtime_get_sync and pm_runtime_put_sync can be invoked without using a configuration counter. - move all definitions from private omap_mbox.h into the source code, and eliminate this internal header. - rename some variables that used the omap2_mbox prefix with a generic omap_mbox prefix. Signed-off-by: Suman Anna <s-anna@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'drivers/mailbox/omap-mbox.h')
-rw-r--r--drivers/mailbox/omap-mbox.h62
1 files changed, 0 insertions, 62 deletions
diff --git a/drivers/mailbox/omap-mbox.h b/drivers/mailbox/omap-mbox.h
deleted file mode 100644
index fae215195590..000000000000
--- a/drivers/mailbox/omap-mbox.h
+++ /dev/null
@@ -1,62 +0,0 @@
1/*
2 * omap-mbox.h: OMAP mailbox internal definitions
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#ifndef OMAP_MBOX_H
10#define OMAP_MBOX_H
11
12#include <linux/device.h>
13#include <linux/interrupt.h>
14#include <linux/kfifo.h>
15#include <linux/spinlock.h>
16#include <linux/workqueue.h>
17#include <linux/omap-mailbox.h>
18
19struct omap_mbox_ops {
20 int (*startup)(struct omap_mbox *mbox);
21 void (*shutdown)(struct omap_mbox *mbox);
22 /* fifo */
23 mbox_msg_t (*fifo_read)(struct omap_mbox *mbox);
24 void (*fifo_write)(struct omap_mbox *mbox, mbox_msg_t msg);
25 int (*fifo_empty)(struct omap_mbox *mbox);
26 int (*fifo_full)(struct omap_mbox *mbox);
27 /* irq */
28 void (*enable_irq)(struct omap_mbox *mbox,
29 omap_mbox_irq_t irq);
30 void (*disable_irq)(struct omap_mbox *mbox,
31 omap_mbox_irq_t irq);
32 void (*ack_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq);
33 int (*is_irq)(struct omap_mbox *mbox, omap_mbox_irq_t irq);
34 /* ctx */
35 void (*save_ctx)(struct omap_mbox *mbox);
36 void (*restore_ctx)(struct omap_mbox *mbox);
37};
38
39struct omap_mbox_queue {
40 spinlock_t lock;
41 struct kfifo fifo;
42 struct work_struct work;
43 struct tasklet_struct tasklet;
44 struct omap_mbox *mbox;
45 bool full;
46};
47
48struct omap_mbox {
49 const char *name;
50 int irq;
51 struct omap_mbox_queue *txq, *rxq;
52 struct omap_mbox_ops *ops;
53 struct device *dev;
54 void *priv;
55 int use_count;
56 struct blocking_notifier_head notifier;
57};
58
59int omap_mbox_register(struct device *parent, struct omap_mbox **);
60int omap_mbox_unregister(void);
61
62#endif /* OMAP_MBOX_H */