1 /* $NetBSD: pci_machdep.c,v 1.2 2010/12/13 16:19:02 matt Exp $ */ 2 /* 3 * Copyright (c) 2009 KIYOHARA Takashi 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 19 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 21 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 23 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 24 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25 * POSSIBILITY OF SUCH DAMAGE. 26 */ 27 28 #include <sys/cdefs.h> 29 __KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.2 2010/12/13 16:19:02 matt Exp $"); 30 31 #include "gtpci.h" 32 #include "pci.h" 33 34 #include <sys/param.h> 35 #include <sys/device.h> 36 #include <sys/extent.h> 37 38 #include <dev/pci/pcivar.h> 39 #include <dev/pci/pciconf.h> 40 41 #if NGTPCI > 0 42 #include <dev/marvell/gtpcireg.h> 43 #include <dev/marvell/gtpcivar.h> 44 #endif 45 #include <dev/marvell/marvellvar.h> 46 47 #include <machine/pci_machdep.h> 48 49 50 #if NGTPCI > 0 51 extern void gtpci_md_conf_interrupt(pci_chipset_tag_t, int, int, int, int, 52 int *); 53 extern int gtpci_md_conf_hook(void *, int, int, int, pcireg_t); 54 55 56 struct genppc_pci_chipset genppc_gtpci0_chipset = { 57 NULL, /* pc_conf_v */ 58 gtpci_attach_hook, 59 gtpci_bus_maxdevs, 60 gtpci_make_tag, 61 gtpci_conf_read, 62 gtpci_conf_write, 63 64 &genppc_gtpci0_chipset, /* pc_intr_v */ 65 genppc_pci_intr_map, 66 genppc_pci_intr_string, 67 genppc_pci_intr_evcnt, 68 genppc_pci_intr_establish, 69 genppc_pci_intr_disestablish, 70 71 gtpci_md_conf_interrupt, 72 gtpci_decompose_tag, 73 (int (*)(pci_chipset_tag_t, int, int, int, pcireg_t))gtpci_md_conf_hook, 74 }; 75 struct genppc_pci_chipset genppc_gtpci1_chipset = { 76 NULL, /* pc_conf_v */ 77 gtpci_attach_hook, 78 gtpci_bus_maxdevs, 79 gtpci_make_tag, 80 gtpci_conf_read, 81 gtpci_conf_write, 82 83 &genppc_gtpci1_chipset, /* pc_intr_v */ 84 genppc_pci_intr_map, 85 genppc_pci_intr_string, 86 genppc_pci_intr_evcnt, 87 genppc_pci_intr_establish, 88 genppc_pci_intr_disestablish, 89 90 gtpci_md_conf_interrupt, 91 gtpci_decompose_tag, 92 (int (*)(pci_chipset_tag_t, int, int, int, pcireg_t))gtpci_md_conf_hook, 93 }; 94 #endif 95