1/*
2 * mailbox-omap.h
3 *
4 * Copyright (C) 2013 Texas Instruments, Inc.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * version 2 as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 */
15
16#ifndef _PLAT_MAILBOX_H
17#define _PLAT_MAILBOX_H
18
19/* Interrupt register configuration types */
20#define MBOX_INTR_CFG_TYPE1	(0)
21#define MBOX_INTR_CFG_TYPE2	(1)
22
23/**
24 * struct omap_mbox_dev_info - OMAP mailbox device attribute info
25 * @name:	name of the mailbox device
26 * @tx_id:	mailbox queue id used for transmitting messages
27 * @rx_id:	mailbox queue id on which messages are received
28 * @irq_id:	irq identifier number to use from the hwmod data
29 * @usr_id:	mailbox user id for identifying the interrupt into
30 *			the MPU interrupt controller.
31 */
32struct omap_mbox_dev_info {
33	const char *name;
34	u32 tx_id;
35	u32 rx_id;
36	u32 irq_id;
37	u32 usr_id;
38};
39
40/**
41 * struct omap_mbox_pdata - OMAP mailbox platform data
42 * @intr_type:	type of interrupt configuration registers used
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
47 * @info_cnt:	number of mailbox devices for the platform
48 * @info:	array of mailbox device attributes
49 */
50struct omap_mbox_pdata {
51	u32 intr_type;
52	u32 num_users;
53	u32 num_fifos;
54	u32 info_cnt;
55	struct omap_mbox_dev_info *info;
56};
57
58#endif /* _PLAT_MAILBOX_H */
59