pcic_pci_machdep.c revision 1.2.2.2 1 1.2.2.2 lukem /* $NetBSD: pcic_pci_machdep.c,v 1.2.2.2 2001/11/15 07:03:36 lukem Exp $ */
2 1.2.2.2 lukem
3 1.2.2.2 lukem /*
4 1.2.2.2 lukem * Copyright (c) 1998 The NetBSD Foundation, Inc.
5 1.2.2.2 lukem * All rights reserved.
6 1.2.2.2 lukem *
7 1.2.2.2 lukem * Redistribution and use in source and binary forms, with or without
8 1.2.2.2 lukem * modification, are permitted provided that the following conditions
9 1.2.2.2 lukem * are met:
10 1.2.2.2 lukem * 1. Redistributions of source code must retain the above copyright
11 1.2.2.2 lukem * notice, this list of conditions and the following disclaimer.
12 1.2.2.2 lukem * 2. Redistributions in binary form must reproduce the above copyright
13 1.2.2.2 lukem * notice, this list of conditions and the following disclaimer in the
14 1.2.2.2 lukem * documentation and/or other materials provided with the distribution.
15 1.2.2.2 lukem * 3. All advertising materials mentioning features or use of this software
16 1.2.2.2 lukem * must display the following acknowledgement:
17 1.2.2.2 lukem * This product includes software developed by the NetBSD
18 1.2.2.2 lukem * Foundation, Inc. and its contributors.
19 1.2.2.2 lukem * 4. Neither the name of The NetBSD Foundation nor the names of its
20 1.2.2.2 lukem * contributors may be used to endorse or promote products derived
21 1.2.2.2 lukem * from this software without specific prior written permission.
22 1.2.2.2 lukem *
23 1.2.2.2 lukem * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
24 1.2.2.2 lukem * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
25 1.2.2.2 lukem * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
26 1.2.2.2 lukem * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
27 1.2.2.2 lukem * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 1.2.2.2 lukem * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 1.2.2.2 lukem * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30 1.2.2.2 lukem * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31 1.2.2.2 lukem * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32 1.2.2.2 lukem * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 1.2.2.2 lukem * POSSIBILITY OF SUCH DAMAGE.
34 1.2.2.2 lukem */
35 1.2.2.2 lukem
36 1.2.2.2 lukem #include <sys/cdefs.h>
37 1.2.2.2 lukem __KERNEL_RCSID(0, "$NetBSD: pcic_pci_machdep.c,v 1.2.2.2 2001/11/15 07:03:36 lukem Exp $");
38 1.2.2.2 lukem
39 1.2.2.2 lukem #include <sys/param.h>
40 1.2.2.2 lukem #include <sys/systm.h>
41 1.2.2.2 lukem #include <sys/device.h>
42 1.2.2.2 lukem
43 1.2.2.2 lukem #include <dev/pcmcia/pcmciachip.h>
44 1.2.2.2 lukem #include <dev/ic/i82365reg.h>
45 1.2.2.2 lukem #include <dev/ic/i82365var.h>
46 1.2.2.2 lukem
47 1.2.2.2 lukem #include <dev/isa/isavar.h>
48 1.2.2.2 lukem #include <dev/isa/i82365_isavar.h>
49 1.2.2.2 lukem
50 1.2.2.2 lukem #include <dev/pci/pcivar.h>
51 1.2.2.2 lukem #include <dev/pci/i82365_pcivar.h>
52 1.2.2.2 lukem
53 1.2.2.2 lukem extern int pcic_isa_intr_alloc_mask;
54 1.2.2.2 lukem
55 1.2.2.2 lukem void *
56 1.2.2.2 lukem pcic_pci_machdep_intr_est(pc)
57 1.2.2.2 lukem pci_chipset_tag_t pc;
58 1.2.2.2 lukem {
59 1.2.2.2 lukem return NULL;
60 1.2.2.2 lukem }
61 1.2.2.2 lukem
62 1.2.2.2 lukem void *
63 1.2.2.2 lukem pcic_pci_machdep_pcic_intr_establish(sc, fct)
64 1.2.2.2 lukem struct pcic_softc *sc;
65 1.2.2.2 lukem int (*fct) __P((void *));
66 1.2.2.2 lukem {
67 1.2.2.2 lukem if (isa_intr_alloc(NULL, PCIC_CSC_INTR_IRQ_VALIDMASK &
68 1.2.2.2 lukem pcic_isa_intr_alloc_mask, IST_EDGE, &(sc->irq)))
69 1.2.2.2 lukem return (NULL);
70 1.2.2.2 lukem printf("%s: interrupting at irq %d\n", sc->dev.dv_xname, sc->irq);
71 1.2.2.2 lukem return (isa_intr_establish(NULL, sc->irq, IST_EDGE, IPL_TTY,
72 1.2.2.2 lukem fct, sc));
73 1.2.2.2 lukem }
74 1.2.2.2 lukem
75 1.2.2.2 lukem void *
76 1.2.2.2 lukem pcic_pci_machdep_chip_intr_establish(pch, pf, ipl, fct, arg)
77 1.2.2.2 lukem pcmcia_chipset_handle_t pch;
78 1.2.2.2 lukem struct pcmcia_function *pf;
79 1.2.2.2 lukem int ipl;
80 1.2.2.2 lukem int (*fct) __P((void *));
81 1.2.2.2 lukem void *arg;
82 1.2.2.2 lukem {
83 1.2.2.2 lukem return (pcic_isa_chip_intr_establish(pch, pf, ipl, fct, arg));
84 1.2.2.2 lukem }
85 1.2.2.2 lukem
86 1.2.2.2 lukem void
87 1.2.2.2 lukem pcic_pci_machdep_chip_intr_disestablish(pch, ih)
88 1.2.2.2 lukem pcmcia_chipset_handle_t pch;
89 1.2.2.2 lukem void *ih;
90 1.2.2.2 lukem {
91 1.2.2.2 lukem pcic_isa_chip_intr_disestablish(pch, ih);
92 1.2.2.2 lukem }
93