1f94f8e62SAndrew Turner /* 2f94f8e62SAndrew Turner * Copyright (c) 2015 Ruslan Bukin <br@bsdpad.com> 3f94f8e62SAndrew Turner * Copyright (c) 2015 The FreeBSD Foundation 4f94f8e62SAndrew Turner * All rights reserved. 5f94f8e62SAndrew Turner * 6f94f8e62SAndrew Turner * This software was developed by Semihalf. 7f94f8e62SAndrew Turner * 8f94f8e62SAndrew Turner * Redistribution and use in source and binary forms, with or without 9f94f8e62SAndrew Turner * modification, are permitted provided that the following conditions 10f94f8e62SAndrew Turner * are met: 11f94f8e62SAndrew Turner * 1. Redistributions of source code must retain the above copyright 12f94f8e62SAndrew Turner * notice, this list of conditions and the following disclaimer. 13f94f8e62SAndrew Turner * 2. Redistributions in binary form must reproduce the above copyright 14f94f8e62SAndrew Turner * notice, this list of conditions and the following disclaimer in the 15f94f8e62SAndrew Turner * documentation and/or other materials provided with the distribution. 16f94f8e62SAndrew Turner * 17f94f8e62SAndrew Turner * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 18f94f8e62SAndrew Turner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19f94f8e62SAndrew Turner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20f94f8e62SAndrew Turner * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21f94f8e62SAndrew Turner * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22f94f8e62SAndrew Turner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23f94f8e62SAndrew Turner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24f94f8e62SAndrew Turner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25f94f8e62SAndrew Turner * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26f94f8e62SAndrew Turner * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27f94f8e62SAndrew Turner * SUCH DAMAGE. 28f94f8e62SAndrew Turner * 29f94f8e62SAndrew Turner * 30f94f8e62SAndrew Turner */ 31f94f8e62SAndrew Turner 32f94f8e62SAndrew Turner #ifndef __PCI_HOST_GENERIC_FDT_H_ 33f94f8e62SAndrew Turner #define __PCI_HOST_GENERIC_FDT_H_ 34f94f8e62SAndrew Turner 35ea52e815SMarcin Wojtas struct pci_ofw_devinfo; 36ea52e815SMarcin Wojtas 37f94f8e62SAndrew Turner struct generic_pcie_fdt_softc { 38f94f8e62SAndrew Turner struct generic_pcie_core_softc base; 39f94f8e62SAndrew Turner struct ofw_bus_iinfo pci_iinfo; 40ea52e815SMarcin Wojtas 41ea52e815SMarcin Wojtas STAILQ_HEAD(, pci_ofw_devinfo) pci_ofw_devlist; 42f94f8e62SAndrew Turner }; 43f94f8e62SAndrew Turner 44f94f8e62SAndrew Turner DECLARE_CLASS(generic_pcie_fdt_driver); 45f94f8e62SAndrew Turner 46f94f8e62SAndrew Turner struct resource *pci_host_generic_alloc_resource(device_t, 47f94f8e62SAndrew Turner device_t, int, int *, rman_res_t, rman_res_t, rman_res_t, u_int); 48eed8b80fSAndrew Turner int pci_host_generic_setup_fdt(device_t); 49*ad52fba1SAndrew Turner int pci_host_generic_fdt_attach(device_t); 50f94f8e62SAndrew Turner int generic_pcie_get_id(device_t, device_t, enum pci_id_type, uintptr_t *); 51f94f8e62SAndrew Turner 52f94f8e62SAndrew Turner #endif /* __PCI_HOST_GENERIC_FDT_H_ */ 53