summaryrefslogtreecommitdiffstats
path: root/com-on-air_cs-linux/com_on_air.h
blob: 1d5e0ba9ca614cf6e0d8c6cee22ea0de9cda13bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 * com_on_air_cs - basic driver for the Dosch and Amand "com on air" cards
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * authors:
 * (C) 2008  Andreas Schuler <krater at badterrorist dot com>
 * (C) 2008  Matthias Wenzel <dect at mazzoo dot de>
 *
 */

#ifndef COM_ON_AIR_H
#define COM_ON_AIR_H

#include <linux/kernel.h>
#include <linux/module.h>
#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>

struct coa_info
{
	struct pcmcia_device    *p_dev;
	int                     open;

	int                     irq;
	int                     irq_count;
	struct timespec         irq_timestamp;

	struct pcmcia_device    *links[2];

	caddr_t                 membase[2];
	u_int                   memsize[2];


        /* hardware configs */
        unsigned short          *sc14421_base;
        unsigned int            card_id; /* index into com_on_air_ids[] */
        unsigned int            radio_type;

	unsigned int            operation_mode;

        /* struct fp_cfg        *fp_config; */
        /* struct pp_cfg        *pp_config; */
        struct sniffer_cfg     *sniffer_config;

	struct kfifo           *rx_fifo;
	spinlock_t             rx_fifo_lock;
	struct kfifo           *tx_fifo;
	spinlock_t             tx_fifo_lock;
};


int get_card_id(void);

/* radio types */
#define COA_RADIO_TYPE_II	0
#define COA_RADIO_TYPE_III	1
#define COA_RADIO_FREEPAD	2

#endif