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