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