Merge branches 'omap1-upstream' and 'omap2-upstream' into devel
[linux-2.6] / drivers / isdn / hardware / eicon / xdi_adapter.h
1 /* $Id: xdi_adapter.h,v 1.7 2004/03/21 17:26:01 armin Exp $ */
2
3 #ifndef __DIVA_OS_XDI_ADAPTER_H__
4 #define __DIVA_OS_XDI_ADAPTER_H__
5
6 #define DIVAS_XDI_ADAPTER_BUS_PCI  0
7 #define DIVAS_XDI_ADAPTER_BUS_ISA  1
8
9 typedef struct _divas_pci_card_resources {
10         byte bus;
11         byte func;
12         void *hdev;
13
14         dword bar[8];           /* contains context of appropriate BAR Register */
15         void __iomem *addr[8];          /* same bar, but mapped into memory */
16         dword length[8];        /* bar length */
17         int mem_type_id[MAX_MEM_TYPE];
18         unsigned int qoffset;
19         byte irq;
20 } divas_pci_card_resources_t;
21
22 typedef union _divas_card_resources {
23         divas_pci_card_resources_t pci;
24 } divas_card_resources_t;
25
26 struct _diva_os_xdi_adapter;
27 typedef int (*diva_init_card_proc_t) (struct _diva_os_xdi_adapter * a);
28 typedef int (*diva_cmd_card_proc_t) (struct _diva_os_xdi_adapter * a,
29                                      diva_xdi_um_cfg_cmd_t * data,
30                                      int length);
31 typedef void (*diva_xdi_clear_interrupts_proc_t) (struct
32                                                   _diva_os_xdi_adapter *);
33
34 #define DIVA_XDI_MBOX_BUSY                      1
35 #define DIVA_XDI_MBOX_WAIT_XLOG 2
36
37 typedef struct _xdi_mbox_t {
38         dword status;
39         diva_xdi_um_cfg_cmd_data_t cmd_data;
40         dword data_length;
41         void *data;
42 } xdi_mbox_t;
43
44 typedef struct _diva_os_idi_adapter_interface {
45         diva_init_card_proc_t cleanup_adapter_proc;
46         diva_cmd_card_proc_t cmd_proc;
47 } diva_os_idi_adapter_interface_t;
48
49 typedef struct _diva_os_xdi_adapter {
50         struct list_head link;
51         int CardIndex;
52         int CardOrdinal;
53         int controller;         /* number of this controller */
54         int Bus;                /* PCI, ISA, ... */
55         divas_card_resources_t resources;
56         char port_name[24];
57         ISDN_ADAPTER xdi_adapter;
58         xdi_mbox_t xdi_mbox;
59         diva_os_idi_adapter_interface_t interface;
60         struct _diva_os_xdi_adapter *slave_adapters[3];
61         void *slave_list;
62         void *proc_adapter_dir; /* adapterX proc entry */
63         void *proc_info;        /* info proc entry     */
64         void *proc_grp_opt;     /* group_optimization  */
65         void *proc_d_l1_down;   /* dynamic_l1_down     */
66         volatile diva_xdi_clear_interrupts_proc_t clear_interrupts_proc;
67         dword dsp_mask;
68 } diva_os_xdi_adapter_t;
69
70 #endif