Home | History | Annotate | Line # | Download | only in tc
      1 /* $NetBSD: tcdsvar.h,v 1.6 2009/05/12 14:47:04 cegger Exp $ */
      2 
      3 /*
      4  * Copyright (c) 1995, 1996 Carnegie-Mellon University.
      5  * All rights reserved.
      6  *
      7  * Author: Chris G. Demetriou
      8  *
      9  * Permission to use, copy, modify and distribute this software and
     10  * its documentation is hereby granted, provided that both the copyright
     11  * notice and this permission notice appear in all copies of the
     12  * software, derivative works or modified versions, and any portions
     13  * thereof, and that both notices appear in supporting documentation.
     14  *
     15  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
     16  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
     17  * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
     18  *
     19  * Carnegie Mellon requests users of this software to return to
     20  *
     21  *  Software Distribution Coordinator  or  Software.Distribution (at) CS.CMU.EDU
     22  *  School of Computer Science
     23  *  Carnegie Mellon University
     24  *  Pittsburgh PA 15213-3890
     25  *
     26  * any improvements or extensions that they make and grant Carnegie the
     27  * rights to redistribute these changes.
     28  */
     29 
     30 struct tcds_slotconfig {
     31 	/*
     32 	 * Bookkeeping information
     33 	 */
     34 	int	sc_slot;
     35 
     36 	bus_space_tag_t sc_bst;			/* to frob TCDS regs */
     37 	bus_space_handle_t sc_bsh;
     38 
     39 	int	(*sc_intrhand)(void *);	/* intr. handler */
     40 	void	*sc_intrarg;			/* intr. handler arg. */
     41 	struct evcnt sc_evcnt;			/* intr. count */
     42 	char	sc_name[8];			/* ev_name */
     43 
     44 	/*
     45 	 * Sets of bits in TCDS CIR and IMER that enable/check
     46 	 * various things.
     47 	 */
     48 	u_int32_t sc_resetbits;
     49 	u_int32_t sc_intrmaskbits;
     50 	u_int32_t sc_intrbits;
     51 	u_int32_t sc_dmabits;
     52 	u_int32_t sc_errorbits;
     53 
     54 	/*
     55 	 * Offsets to slot-specific DMA resources.
     56 	 */
     57 	bus_size_t sc_sda;
     58 	bus_size_t sc_dic;
     59 	bus_size_t sc_dud0;
     60 	bus_size_t sc_dud1;
     61 };
     62 
     63 struct tcdsdev_attach_args {
     64 	bus_space_tag_t tcdsda_bst;		/* bus space tag */
     65 	bus_space_handle_t tcdsda_bsh;		/* bus space handle */
     66 	bus_dma_tag_t tcdsda_dmat;		/* bus dma tag */
     67 	struct tcds_slotconfig *tcdsda_sc;	/* slot configuration */
     68 	int	tcdsda_chip;			/* chip number */
     69 	int	tcdsda_id;			/* SCSI ID */
     70 	u_int	tcdsda_freq;			/* chip frequency */
     71 	int	tcdsda_period;			/* min. sync period */
     72 	int	tcdsda_variant;			/* NCR chip variant */
     73 	int	tcdsda_fast;			/* chip does Fast mode */
     74 };
     75 
     76 /*
     77  * TCDS functions.
     78  */
     79 void	tcds_intr_establish(device_t, int, int (*)(void *), void *);
     80 void	tcds_intr_disestablish(device_t, int);
     81 void	tcds_dma_enable(struct tcds_slotconfig *, int);
     82 void	tcds_scsi_enable(struct tcds_slotconfig *, int);
     83 int	tcds_scsi_iserr(struct tcds_slotconfig *);
     84 int	tcds_scsi_isintr(struct tcds_slotconfig *, int);
     85 void	tcds_scsi_reset(struct tcds_slotconfig *);
     86