1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2282361a0SGreg Kroah-Hartman /* 3282361a0SGreg Kroah-Hartman * IPWireless 3G PCMCIA Network Driver 4282361a0SGreg Kroah-Hartman * 5282361a0SGreg Kroah-Hartman * Original code 6282361a0SGreg Kroah-Hartman * by Stephen Blackheath <stephen@blacksapphire.com>, 7282361a0SGreg Kroah-Hartman * Ben Martel <benm@symmetric.co.nz> 8282361a0SGreg Kroah-Hartman * 9282361a0SGreg Kroah-Hartman * Copyrighted as follows: 10282361a0SGreg Kroah-Hartman * Copyright (C) 2004 by Symmetric Systems Ltd (NZ) 11282361a0SGreg Kroah-Hartman * 12282361a0SGreg Kroah-Hartman * Various driver changes and rewrites, port to new kernels 13282361a0SGreg Kroah-Hartman * Copyright (C) 2006-2007 Jiri Kosina 14282361a0SGreg Kroah-Hartman * 15282361a0SGreg Kroah-Hartman * Misc code cleanups and updates 16282361a0SGreg Kroah-Hartman * Copyright (C) 2007 David Sterba 17282361a0SGreg Kroah-Hartman */ 18282361a0SGreg Kroah-Hartman 19282361a0SGreg Kroah-Hartman #ifndef _IPWIRELESS_CS_HARDWARE_H_ 20282361a0SGreg Kroah-Hartman #define _IPWIRELESS_CS_HARDWARE_H_ 21282361a0SGreg Kroah-Hartman 22282361a0SGreg Kroah-Hartman #include <linux/types.h> 23282361a0SGreg Kroah-Hartman #include <linux/sched.h> 24282361a0SGreg Kroah-Hartman #include <linux/interrupt.h> 25282361a0SGreg Kroah-Hartman 26282361a0SGreg Kroah-Hartman #define IPW_CONTROL_LINE_CTS 0x0001 27282361a0SGreg Kroah-Hartman #define IPW_CONTROL_LINE_DCD 0x0002 28282361a0SGreg Kroah-Hartman #define IPW_CONTROL_LINE_DSR 0x0004 29282361a0SGreg Kroah-Hartman #define IPW_CONTROL_LINE_RI 0x0008 30282361a0SGreg Kroah-Hartman #define IPW_CONTROL_LINE_DTR 0x0010 31282361a0SGreg Kroah-Hartman #define IPW_CONTROL_LINE_RTS 0x0020 32282361a0SGreg Kroah-Hartman 33282361a0SGreg Kroah-Hartman struct ipw_hardware; 34282361a0SGreg Kroah-Hartman struct ipw_network; 35282361a0SGreg Kroah-Hartman 36282361a0SGreg Kroah-Hartman struct ipw_hardware *ipwireless_hardware_create(void); 37282361a0SGreg Kroah-Hartman void ipwireless_hardware_free(struct ipw_hardware *hw); 38282361a0SGreg Kroah-Hartman irqreturn_t ipwireless_interrupt(int irq, void *dev_id); 39282361a0SGreg Kroah-Hartman int ipwireless_set_DTR(struct ipw_hardware *hw, unsigned int channel_idx, 40282361a0SGreg Kroah-Hartman int state); 41282361a0SGreg Kroah-Hartman int ipwireless_set_RTS(struct ipw_hardware *hw, unsigned int channel_idx, 42282361a0SGreg Kroah-Hartman int state); 43282361a0SGreg Kroah-Hartman int ipwireless_send_packet(struct ipw_hardware *hw, 44282361a0SGreg Kroah-Hartman unsigned int channel_idx, 45282361a0SGreg Kroah-Hartman const unsigned char *data, 46282361a0SGreg Kroah-Hartman unsigned int length, 47282361a0SGreg Kroah-Hartman void (*packet_sent_callback) (void *cb, 48282361a0SGreg Kroah-Hartman unsigned int length), 49282361a0SGreg Kroah-Hartman void *sent_cb_data); 50282361a0SGreg Kroah-Hartman void ipwireless_associate_network(struct ipw_hardware *hw, 51282361a0SGreg Kroah-Hartman struct ipw_network *net); 52282361a0SGreg Kroah-Hartman void ipwireless_stop_interrupts(struct ipw_hardware *hw); 53282361a0SGreg Kroah-Hartman void ipwireless_init_hardware_v1(struct ipw_hardware *hw, 54282361a0SGreg Kroah-Hartman unsigned int base_port, 55282361a0SGreg Kroah-Hartman void __iomem *attr_memory, 56282361a0SGreg Kroah-Hartman void __iomem *common_memory, 57282361a0SGreg Kroah-Hartman int is_v2_card, 58282361a0SGreg Kroah-Hartman void (*reboot_cb) (void *data), 59282361a0SGreg Kroah-Hartman void *reboot_cb_data); 60282361a0SGreg Kroah-Hartman void ipwireless_init_hardware_v2_v3(struct ipw_hardware *hw); 61282361a0SGreg Kroah-Hartman void ipwireless_sleep(unsigned int tenths); 62282361a0SGreg Kroah-Hartman 63282361a0SGreg Kroah-Hartman #endif 64