1099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba/* 2099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * IPWireless 3G PCMCIA Network Driver 3099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * 4099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Original code 5099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * by Stephen Blackheath <stephen@blacksapphire.com>, 6099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Ben Martel <benm@symmetric.co.nz> 7099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * 8099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Copyrighted as follows: 9099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Copyright (C) 2004 by Symmetric Systems Ltd (NZ) 10099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * 11099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Various driver changes and rewrites, port to new kernels 12099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Copyright (C) 2006-2007 Jiri Kosina 13099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * 14099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Misc code cleanups and updates 15099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba * Copyright (C) 2007 David Sterba 16099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba */ 17099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 18099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#ifndef _IPWIRELESS_CS_HARDWARE_H_ 19099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define _IPWIRELESS_CS_HARDWARE_H_ 20099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 21099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#include <linux/types.h> 22099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#include <linux/sched.h> 23099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#include <linux/interrupt.h> 24099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 25099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define IPW_CONTROL_LINE_CTS 0x0001 26099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define IPW_CONTROL_LINE_DCD 0x0002 27099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define IPW_CONTROL_LINE_DSR 0x0004 28099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define IPW_CONTROL_LINE_RI 0x0008 29099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define IPW_CONTROL_LINE_DTR 0x0010 30099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#define IPW_CONTROL_LINE_RTS 0x0020 31099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 32099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct ipw_hardware; 33099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct ipw_network; 34099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 35099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbastruct ipw_hardware *ipwireless_hardware_create(void); 36099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbavoid ipwireless_hardware_free(struct ipw_hardware *hw); 372fc5577e1729ac303ad8b9547f8ccdb057076998David Sterbairqreturn_t ipwireless_interrupt(int irq, void *dev_id); 38099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbaint ipwireless_set_DTR(struct ipw_hardware *hw, unsigned int channel_idx, 39099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba int state); 40099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbaint ipwireless_set_RTS(struct ipw_hardware *hw, unsigned int channel_idx, 41099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba int state); 42099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbaint ipwireless_send_packet(struct ipw_hardware *hw, 43099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned int channel_idx, 44ff3e990e61a5a9124687a01a025c43b3564f82abDavid Sterba const unsigned char *data, 45099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned int length, 46099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba void (*packet_sent_callback) (void *cb, 47099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned int length), 48099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba void *sent_cb_data); 49099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbavoid ipwireless_associate_network(struct ipw_hardware *hw, 50099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba struct ipw_network *net); 51099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbavoid ipwireless_stop_interrupts(struct ipw_hardware *hw); 52099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbavoid ipwireless_init_hardware_v1(struct ipw_hardware *hw, 53099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba unsigned int base_port, 54099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba void __iomem *attr_memory, 55099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba void __iomem *common_memory, 56099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba int is_v2_card, 57099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba void (*reboot_cb) (void *data), 58099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba void *reboot_cb_data); 59099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbavoid ipwireless_init_hardware_v2_v3(struct ipw_hardware *hw); 60099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterbavoid ipwireless_sleep(unsigned int tenths); 61099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba 62099dc4fb62653f6019d78db55fba7a18ef02d65bDavid Sterba#endif 63