162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * IPWireless 3G PCMCIA Network Driver 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Original code 662306a36Sopenharmony_ci * by Stephen Blackheath <stephen@blacksapphire.com>, 762306a36Sopenharmony_ci * Ben Martel <benm@symmetric.co.nz> 862306a36Sopenharmony_ci * 962306a36Sopenharmony_ci * Copyrighted as follows: 1062306a36Sopenharmony_ci * Copyright (C) 2004 by Symmetric Systems Ltd (NZ) 1162306a36Sopenharmony_ci * 1262306a36Sopenharmony_ci * Various driver changes and rewrites, port to new kernels 1362306a36Sopenharmony_ci * Copyright (C) 2006-2007 Jiri Kosina 1462306a36Sopenharmony_ci * 1562306a36Sopenharmony_ci * Misc code cleanups and updates 1662306a36Sopenharmony_ci * Copyright (C) 2007 David Sterba 1762306a36Sopenharmony_ci */ 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#ifndef _IPWIRELESS_CS_HARDWARE_H_ 2062306a36Sopenharmony_ci#define _IPWIRELESS_CS_HARDWARE_H_ 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#include <linux/types.h> 2362306a36Sopenharmony_ci#include <linux/sched.h> 2462306a36Sopenharmony_ci#include <linux/interrupt.h> 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci#define IPW_CONTROL_LINE_CTS 0x0001 2762306a36Sopenharmony_ci#define IPW_CONTROL_LINE_DCD 0x0002 2862306a36Sopenharmony_ci#define IPW_CONTROL_LINE_DSR 0x0004 2962306a36Sopenharmony_ci#define IPW_CONTROL_LINE_RI 0x0008 3062306a36Sopenharmony_ci#define IPW_CONTROL_LINE_DTR 0x0010 3162306a36Sopenharmony_ci#define IPW_CONTROL_LINE_RTS 0x0020 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_cistruct ipw_hardware; 3462306a36Sopenharmony_cistruct ipw_network; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_cistruct ipw_hardware *ipwireless_hardware_create(void); 3762306a36Sopenharmony_civoid ipwireless_hardware_free(struct ipw_hardware *hw); 3862306a36Sopenharmony_ciirqreturn_t ipwireless_interrupt(int irq, void *dev_id); 3962306a36Sopenharmony_ciint ipwireless_set_DTR(struct ipw_hardware *hw, unsigned int channel_idx, 4062306a36Sopenharmony_ci int state); 4162306a36Sopenharmony_ciint ipwireless_set_RTS(struct ipw_hardware *hw, unsigned int channel_idx, 4262306a36Sopenharmony_ci int state); 4362306a36Sopenharmony_ciint ipwireless_send_packet(struct ipw_hardware *hw, 4462306a36Sopenharmony_ci unsigned int channel_idx, 4562306a36Sopenharmony_ci const unsigned char *data, 4662306a36Sopenharmony_ci unsigned int length, 4762306a36Sopenharmony_ci void (*packet_sent_callback) (void *cb, 4862306a36Sopenharmony_ci unsigned int length), 4962306a36Sopenharmony_ci void *sent_cb_data); 5062306a36Sopenharmony_civoid ipwireless_associate_network(struct ipw_hardware *hw, 5162306a36Sopenharmony_ci struct ipw_network *net); 5262306a36Sopenharmony_civoid ipwireless_stop_interrupts(struct ipw_hardware *hw); 5362306a36Sopenharmony_civoid ipwireless_init_hardware_v1(struct ipw_hardware *hw, 5462306a36Sopenharmony_ci unsigned int base_port, 5562306a36Sopenharmony_ci void __iomem *attr_memory, 5662306a36Sopenharmony_ci void __iomem *common_memory, 5762306a36Sopenharmony_ci int is_v2_card, 5862306a36Sopenharmony_ci void (*reboot_cb) (void *data), 5962306a36Sopenharmony_ci void *reboot_cb_data); 6062306a36Sopenharmony_civoid ipwireless_init_hardware_v2_v3(struct ipw_hardware *hw); 6162306a36Sopenharmony_civoid ipwireless_sleep(unsigned int tenths); 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci#endif 64