+++ /dev/null
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (c) 2005 Stanislaw Skowronek <skylark@linux-mips.org>
- */
-
-#ifndef _LINUX_IOC3_H
-#define _LINUX_IOC3_H
-
-#include <asm/sn/ioc3.h>
-
-#define IOC3_MAX_SUBMODULES    32
-
-#define IOC3_CLASS_NONE                0
-#define IOC3_CLASS_BASE_IP27   1
-#define IOC3_CLASS_BASE_IP30   2
-#define IOC3_CLASS_MENET_123   3
-#define IOC3_CLASS_MENET_4     4
-#define IOC3_CLASS_CADDUO      5
-#define IOC3_CLASS_SERIAL      6
-
-/* One of these per IOC3 */
-struct ioc3_driver_data {
-       struct list_head list;
-       int id;                         /* IOC3 sequence number */
-       /* PCI mapping */
-       unsigned long pma;              /* physical address */
-       struct ioc3 __iomem *vma;       /* pointer to registers */
-       struct pci_dev *pdev;           /* PCI device */
-       /* IRQ stuff */
-       int dual_irq;                   /* set if separate IRQs are used */
-       int irq_io, irq_eth;            /* IRQ numbers */
-       /* GPIO magic */
-       spinlock_t gpio_lock;
-       unsigned int gpdr_shadow;
-       /* NIC identifiers */
-       char nic_part[32];
-       char nic_serial[16];
-       char nic_mac[6];
-       /* submodule set */
-       int class;
-       void *data[IOC3_MAX_SUBMODULES];        /* for submodule use */
-       int active[IOC3_MAX_SUBMODULES];        /* set if probe succeeds */
-       /* is_ir_lock must be held while
-        * modifying sio_ie values, so
-        * we can be sure that sio_ie is
-        * not changing when we read it
-        * along with sio_ir.
-        */
-       spinlock_t ir_lock;     /* SIO_IE[SC] mod lock */
-};
-
-/* One per submodule */
-struct ioc3_submodule {
-       char *name;             /* descriptive submodule name */
-       struct module *owner;   /* owning kernel module */
-       int ethernet;           /* set for ethernet drivers */
-       int (*probe) (struct ioc3_submodule *, struct ioc3_driver_data *);
-       int (*remove) (struct ioc3_submodule *, struct ioc3_driver_data *);
-       int id;                 /* assigned by IOC3, index for the "data" array */
-       /* IRQ stuff */
-       unsigned int irq_mask;  /* IOC3 IRQ mask, leave clear for Ethernet */
-       int reset_mask;         /* non-zero if you want the ioc3.c module to reset interrupts */
-       int (*intr) (struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int);
-       /* private submodule data */
-       void *data;             /* assigned by submodule */
-};
-
-/**********************************
- * Functions needed by submodules *
- **********************************/
-
-#define IOC3_W_IES             0
-#define IOC3_W_IEC             1
-
-/* registers a submodule for all existing and future IOC3 chips */
-extern int ioc3_register_submodule(struct ioc3_submodule *);
-/* unregisters a submodule */
-extern void ioc3_unregister_submodule(struct ioc3_submodule *);
-/* enables IRQs indicated by irq_mask for a specified IOC3 chip */
-extern void ioc3_enable(struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int);
-/* ackowledges specified IRQs */
-extern void ioc3_ack(struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int);
-/* disables IRQs indicated by irq_mask for a specified IOC3 chip */
-extern void ioc3_disable(struct ioc3_submodule *, struct ioc3_driver_data *, unsigned int);
-/* atomically sets GPCR bits */
-extern void ioc3_gpcr_set(struct ioc3_driver_data *, unsigned int);
-/* general ireg writer */
-extern void ioc3_write_ireg(struct ioc3_driver_data *idd, uint32_t value, int reg);
-
-#endif