2 # Copyright (c) 1999 M. Warner Losh <imp@FreeBSD.org>
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions
7 # 1. Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer.
9 # 2. Redistributions in binary form must reproduce the above copyright
10 # notice, this list of conditions and the following disclaimer in the
11 # documentation and/or other materials provided with the distribution.
13 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 #include <machine/bus.h>
30 #include <dev/pccard/pccardvar.h>
35 # Companion interface for pccard. We need to set attributes for memory
36 # and i/o port mappings (as well as other types of attributes) that have
37 # a well defined meaning inside the PC Card/CardBus system. The bus
38 # methods are inadequate for this because this must be done at the time the
39 # resources are set for the device, which predates their activation. Also,
40 # the driver activating the resources doesn't necessarily know or need to know
43 METHOD int set_res_flags {
51 METHOD int get_res_flags {
60 # Sets the memory offset of the pccard bridge's window into attribute
61 # or common memory space.
63 METHOD int set_memory_offset {
71 METHOD int get_memory_offset {
79 # pccard bridges call this method to initate the attachment of a card
81 METHOD int attach_card {
86 # pccard bridges call this to detach a card.
88 METHOD int detach_card {
93 # Find "dev" in the passed table of devices. Return it or NULL.
95 METHOD const struct pccard_product * do_product_lookup {
98 const struct pccard_product *tab;
100 pccard_product_match_fn matchfn;
104 # Scanning function for accessing the CIS of a card in its driver.
106 METHOD int cis_scan {
114 # Convenience function to read attribute memory.
116 METHOD int attr_read {
124 # Convenience function to write attribute memory.
126 METHOD int attr_write {
134 # Read the CCR register
136 METHOD int ccr_read {
144 # Write the CCR register
146 METHOD int ccr_write {