linux/drivers/bluetooth/bt3c_cs.c

/*
 *
 *  Driver for the 3Com Bluetooth PCMCIA card
 *
 *  Copyright (C) 2001-2002  Marcel Holtmann <[email protected]>
 *                           Jose Orlando Pereira <[email protected]>
 *
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  published by the Free Software Foundation;
 *
 *  Software distributed under the License is distributed on an "AS
 *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
 *  implied. See the License for the specific language governing
 *  rights and limitations under the License.
 *
 *  The initial developer of the original code is David A. Hinds
 *  <[email protected]>.  Portions created by David A. Hinds
 *  are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
 *
 */

#include <linux/module.h>

#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/ptrace.h>
#include <linux/ioport.h>
#include <linux/spinlock.h>
#include <linux/moduleparam.h>

#include <linux/skbuff.h>
#include <linux/string.h>
#include <linux/serial.h>
#include <linux/serial_reg.h>
#include <linux/bitops.h>
#include <asm/io.h>

#include <linux/device.h>
#include <linux/firmware.h>

#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
#include <pcmcia/ds.h>
#include <pcmcia/cisreg.h>

#include <net/bluetooth/bluetooth.h>
#include <net/bluetooth/hci_core.h>



/* ======================== Module parameters ======================== */


MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_FIRMWARE();



/* ======================== Local structures ======================== */


struct bt3c_info {};


static int bt3c_config(struct pcmcia_device *link);
static void bt3c_release(struct pcmcia_device *link);

static void bt3c_detach(struct pcmcia_device *p_dev);


/* Transmit states  */
#define XMIT_SENDING
#define XMIT_WAKEUP
#define XMIT_WAITING

/* Receiver states */
#define RECV_WAIT_PACKET_TYPE
#define RECV_WAIT_EVENT_HEADER
#define RECV_WAIT_ACL_HEADER
#define RECV_WAIT_SCO_HEADER
#define RECV_WAIT_DATA



/* ======================== Special I/O functions ======================== */


#define DATA_L
#define DATA_H
#define ADDR_L
#define ADDR_H
#define CONTROL


static inline void bt3c_address(unsigned int iobase, unsigned short addr)
{}


static inline void bt3c_put(unsigned int iobase, unsigned short value)
{}


static inline void bt3c_io_write(unsigned int iobase, unsigned short addr, unsigned short value)
{}


static inline unsigned short bt3c_get(unsigned int iobase)
{}


static inline unsigned short bt3c_read(unsigned int iobase, unsigned short addr)
{}



/* ======================== Interrupt handling ======================== */


static int bt3c_write(unsigned int iobase, int fifo_size, __u8 *buf, int len)
{}


static void bt3c_write_wakeup(struct bt3c_info *info)
{}


static void bt3c_receive(struct bt3c_info *info)
{}


static irqreturn_t bt3c_interrupt(int irq, void *dev_inst)
{}



/* ======================== HCI interface ======================== */


static int bt3c_hci_flush(struct hci_dev *hdev)
{}


static int bt3c_hci_open(struct hci_dev *hdev)
{}


static int bt3c_hci_close(struct hci_dev *hdev)
{}


static int bt3c_hci_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
{}



/* ======================== Card services HCI interaction ======================== */


static int bt3c_load_firmware(struct bt3c_info *info,
			      const unsigned char *firmware,
			      int count)
{}


static int bt3c_open(struct bt3c_info *info)
{}


static int bt3c_close(struct bt3c_info *info)
{}

static int bt3c_probe(struct pcmcia_device *link)
{}


static void bt3c_detach(struct pcmcia_device *link)
{}

static int bt3c_check_config(struct pcmcia_device *p_dev, void *priv_data)
{}

static int bt3c_check_config_notpicky(struct pcmcia_device *p_dev,
				      void *priv_data)
{}

static int bt3c_config(struct pcmcia_device *link)
{}


static void bt3c_release(struct pcmcia_device *link)
{}


static const struct pcmcia_device_id bt3c_ids[] =;
MODULE_DEVICE_TABLE(pcmcia, bt3c_ids);

static struct pcmcia_driver bt3c_driver =;
module_pcmcia_driver();