1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * IPWireless 3G PCMCIA Network Driver |
4 | * |
5 | * Original code |
6 | * by Stephen Blackheath <stephen@blacksapphire.com>, |
7 | * Ben Martel <benm@symmetric.co.nz> |
8 | * |
9 | * Copyrighted as follows: |
10 | * Copyright (C) 2004 by Symmetric Systems Ltd (NZ) |
11 | * |
12 | * Various driver changes and rewrites, port to new kernels |
13 | * Copyright (C) 2006-2007 Jiri Kosina |
14 | * |
15 | * Misc code cleanups and updates |
16 | * Copyright (C) 2007 David Sterba |
17 | */ |
18 | |
19 | #ifndef _IPWIRELESS_CS_HARDWARE_H_ |
20 | #define _IPWIRELESS_CS_HARDWARE_H_ |
21 | |
22 | #include <linux/types.h> |
23 | #include <linux/sched.h> |
24 | #include <linux/interrupt.h> |
25 | |
26 | #define IPW_CONTROL_LINE_CTS 0x0001 |
27 | #define IPW_CONTROL_LINE_DCD 0x0002 |
28 | #define IPW_CONTROL_LINE_DSR 0x0004 |
29 | #define IPW_CONTROL_LINE_RI 0x0008 |
30 | #define IPW_CONTROL_LINE_DTR 0x0010 |
31 | #define IPW_CONTROL_LINE_RTS 0x0020 |
32 | |
33 | struct ipw_hardware; |
34 | struct ipw_network; |
35 | |
36 | struct ipw_hardware *ipwireless_hardware_create(void); |
37 | void ipwireless_hardware_free(struct ipw_hardware *hw); |
38 | irqreturn_t ipwireless_interrupt(int irq, void *dev_id); |
39 | int ipwireless_set_DTR(struct ipw_hardware *hw, unsigned int channel_idx, |
40 | int state); |
41 | int ipwireless_set_RTS(struct ipw_hardware *hw, unsigned int channel_idx, |
42 | int state); |
43 | int ipwireless_send_packet(struct ipw_hardware *hw, |
44 | unsigned int channel_idx, |
45 | const unsigned char *data, |
46 | unsigned int length, |
47 | void (*packet_sent_callback) (void *cb, |
48 | unsigned int length), |
49 | void *sent_cb_data); |
50 | void ipwireless_associate_network(struct ipw_hardware *hw, |
51 | struct ipw_network *net); |
52 | void ipwireless_stop_interrupts(struct ipw_hardware *hw); |
53 | void ipwireless_init_hardware_v1(struct ipw_hardware *hw, |
54 | unsigned int base_port, |
55 | void __iomem *attr_memory, |
56 | void __iomem *common_memory, |
57 | int is_v2_card, |
58 | void (*reboot_cb) (void *data), |
59 | void *reboot_cb_data); |
60 | void ipwireless_init_hardware_v2_v3(struct ipw_hardware *hw); |
61 | void ipwireless_sleep(unsigned int tenths); |
62 | |
63 | #endif |
64 | |