bhnd_pcie2b.c revision 303975
1284990Scy/*- 2284990Scy * Copyright (c) 2015 Landon Fuller <landon@landonf.org> 3284990Scy * All rights reserved. 4284990Scy * 5284990Scy * Redistribution and use in source and binary forms, with or without 6284990Scy * modification, are permitted provided that the following conditions 7284990Scy * are met: 8284990Scy * 1. Redistributions of source code must retain the above copyright 9284990Scy * notice, this list of conditions and the following disclaimer, 10284990Scy * without modification. 11284990Scy * 2. Redistributions in binary form must reproduce at minimum a disclaimer 12284990Scy * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any 13284990Scy * redistribution must be conditioned upon including a substantially 14284990Scy * similar Disclaimer requirement for further binary redistribution. 15284990Scy * 16284990Scy * NO WARRANTY 17284990Scy * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18284990Scy * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19284990Scy * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY 20284990Scy * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 21284990Scy * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, 22284990Scy * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23284990Scy * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24284990Scy * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25284990Scy * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26284990Scy * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 27284990Scy * THE POSSIBILITY OF SUCH DAMAGES. 28284990Scy */ 29284990Scy 30284990Scy#include <sys/cdefs.h> 31284990Scy__FBSDID("$FreeBSD: releng/11.0/sys/dev/bhnd/cores/pcie2/bhnd_pcie2b.c 300015 2016-05-17 06:52:53Z adrian $"); 32284990Scy 33284990Scy/* 34284990Scy * Broadcom PCI/PCIe-Gen1 Host-PCI bridge. 35284990Scy * 36284990Scy * This driver handles all interactions with PCI bridge cores operating in 37284990Scy * root complex mode. 38284990Scy */ 39284990Scy 40284990Scy#include <sys/param.h> 41284990Scy#include <sys/kernel.h> 42284990Scy#include <sys/bus.h> 43284990Scy#include <sys/module.h> 44284990Scy 45284990Scy#include <machine/bus.h> 46284990Scy#include <sys/rman.h> 47284990Scy#include <machine/resource.h> 48284990Scy 49284990Scy#include <dev/bhnd/bhnd.h> 50284990Scy 51284990Scy#include "bhnd_pcie2_reg.h" 52284990Scy#include "bhnd_pcie2b_var.h" 53284990Scy 54284990Scystatic int 55284990Scybhnd_pcie2b_attach(device_t dev) 56284990Scy{ 57284990Scy // TODO 58284990Scy return (bhnd_pcie2_generic_attach(dev)); 59284990Scy} 60284990Scy 61284990Scystatic int 62284990Scybhnd_pcie2b_detach(device_t dev) 63284990Scy{ 64284990Scy // TODO 65284990Scy return (bhnd_pcie2_generic_detach(dev)); 66284990Scy} 67284990Scy 68284990Scystatic int 69284990Scybhnd_pcie2b_suspend(device_t dev) 70284990Scy{ 71284990Scy return (bhnd_pcie2_generic_suspend(dev)); 72284990Scy} 73284990Scy 74284990Scystatic int 75284990Scybhnd_pcie2b_resume(device_t dev) 76284990Scy{ 77284990Scy return (bhnd_pcie2_generic_resume(dev)); 78284990Scy} 79284990Scy 80284990Scystatic device_method_t bhnd_pcie2b_methods[] = { 81284990Scy /* Device interface */ 82284990Scy DEVMETHOD(device_attach, bhnd_pcie2b_attach), 83284990Scy DEVMETHOD(device_detach, bhnd_pcie2b_detach), 84284990Scy DEVMETHOD(device_suspend, bhnd_pcie2b_suspend), 85284990Scy DEVMETHOD(device_resume, bhnd_pcie2b_resume), 86284990Scy DEVMETHOD_END 87284990Scy}; 88284990Scy 89284990ScyDEFINE_CLASS_1(pcib, bhnd_pcie2b_driver, bhnd_pcie2b_methods, 90284990Scy sizeof(struct bhnd_pcie2b_softc), bhnd_pcie2_driver); 91284990Scy 92284990Scystatic devclass_t pcib_devclass; 93284990ScyDRIVER_MODULE(bhnd_pcie2b, bhnd, bhnd_pcie2b_driver, pcib_devclass, 0, 0); 94284990Scy 95284990ScyMODULE_VERSION(bhnd_pcie2b, 1); 96284990ScyMODULE_DEPEND(bhnd_pcie2b, bhnd, 1, 1, 1); 97284990ScyMODULE_DEPEND(bhnd_pcie2b, bhnd_pcie2, 1, 1, 1); 98284990ScyMODULE_DEPEND(bhnd_pcie2b, pci, 1, 1, 1); 99284990Scy