linux/drivers/pcmcia/pd6729.c

/*
 * Driver for the Cirrus PD6729 PCI-PCMCIA bridge.
 *
 * Based on the i82092.c driver.
 *
 * This software may be used and distributed according to the terms of
 * the GNU General Public License, incorporated herein by reference.
 */

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/workqueue.h>
#include <linux/interrupt.h>
#include <linux/device.h>
#include <linux/io.h>

#include <pcmcia/ss.h>


#include "pd6729.h"
#include "i82365.h"
#include "cirrus.h"

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

#define MAX_SOCKETS

/*
 * simple helper functions
 * External clock time, in nanoseconds.  120 ns = 8.33 MHz
 */
#define to_cycles(ns)

#ifndef NO_IRQ
#define NO_IRQ
#endif

/*
 * PARAMETERS
 *  irq_mode=n
 *     Specifies the interrupt delivery mode.  The default (1) is to use PCI
 *     interrupts; a value of 0 selects ISA interrupts. This must be set for
 *     correct operation of PCI card readers.
 */

static int irq_mode =; /* 0 = ISA interrupt, 1 = PCI interrupt */

module_param(irq_mode, int, 0444);
MODULE_PARM_DESC();

static DEFINE_SPINLOCK(port_lock);

/* basic value read/write functions */

static unsigned char indirect_read(struct pd6729_socket *socket,
				   unsigned short reg)
{}

static unsigned short indirect_read16(struct pd6729_socket *socket,
				      unsigned short reg)
{}

static void indirect_write(struct pd6729_socket *socket, unsigned short reg,
			   unsigned char value)
{}

static void indirect_setbit(struct pd6729_socket *socket, unsigned short reg,
			    unsigned char mask)
{}

static void indirect_resetbit(struct pd6729_socket *socket, unsigned short reg,
			      unsigned char mask)
{}

static void indirect_write16(struct pd6729_socket *socket, unsigned short reg,
			     unsigned short value)
{}

/* Interrupt handler functionality */

static irqreturn_t pd6729_interrupt(int irq, void *dev)
{}

/* socket functions */

static void pd6729_interrupt_wrapper(struct timer_list *t)
{}

static int pd6729_get_status(struct pcmcia_socket *sock, u_int *value)
{}


static int pd6729_set_socket(struct pcmcia_socket *sock, socket_state_t *state)
{}

static int pd6729_set_io_map(struct pcmcia_socket *sock,
			     struct pccard_io_map *io)
{}

static int pd6729_set_mem_map(struct pcmcia_socket *sock,
			      struct pccard_mem_map *mem)
{}

static int pd6729_init(struct pcmcia_socket *sock)
{}


/* the pccard structure and its functions */
static struct pccard_operations pd6729_operations =;

static irqreturn_t pd6729_test(int irq, void *dev)
{}

static int pd6729_check_irq(int irq)
{}

static u_int pd6729_isa_scan(void)
{}

static int pd6729_pci_probe(struct pci_dev *dev,
				      const struct pci_device_id *id)
{}

static void pd6729_pci_remove(struct pci_dev *dev)
{}

static const struct pci_device_id pd6729_pci_ids[] =;
MODULE_DEVICE_TABLE(pci, pd6729_pci_ids);

static struct pci_driver pd6729_pci_driver =;

module_pci_driver();