]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - sys/arm/sa11x0/sa11x0_io.c
MFC r257199, r257200, r257217:
[FreeBSD/stable/10.git] / sys / arm / sa11x0 / sa11x0_io.c
1 /*      $NetBSD: sa11x0_io.c,v 1.12 2003/07/15 00:24:51 lukem Exp $     */
2
3 /*-
4  * Copyright (c) 1997 Mark Brinicombe.
5  * Copyright (c) 1997 Causality Limited.
6  * All rights reserved.
7  *
8  * This code is derived from software contributed to The NetBSD Foundation
9  * by Ichiro FUKUHARA.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
14  * 1. Redistributions of source code must retain the above copyright
15  *    notice, this list of conditions and the following disclaimer.
16  * 2. Redistributions in binary form must reproduce the above copyright
17  *    notice, this list of conditions and the following disclaimer in the
18  *    documentation and/or other materials provided with the distribution.
19  * 3. All advertising materials mentioning features or use of this software
20  *    must display the following acknowledgement:
21  *      This product includes software developed by Mark Brinicombe.
22  * 4. The name of the company nor the name of the author may be used to
23  *    endorse or promote products derived from this software without specific
24  *    prior written permission.
25  *
26  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
27  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
28  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
29  * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
30  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
31  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
32  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36  * SUCH DAMAGE.
37  */
38
39 /*
40  * bus_space I/O functions for sa11x0
41  */
42
43 #include <sys/cdefs.h>
44 __FBSDID("$FreeBSD$");
45 #include <sys/param.h>
46 #include <sys/systm.h>
47 #include <sys/queue.h>
48 #include <sys/lock.h>
49 #include <sys/mutex.h>
50
51 #include <vm/vm.h>
52 #include <vm/pmap.h>
53 #include <vm/vm_extern.h>
54 #include <vm/vm_kern.h>
55
56 #include <machine/bus.h>
57
58 /* Proto types for all the bus_space structure functions */
59
60 bs_protos(generic);
61 bs_protos(sa11x0);
62
63 /* Declare the sa11x0 bus space tag */
64
65 struct bus_space sa11x0_bs_tag = {
66         /* cookie */
67         NULL,
68
69         /* mapping/unmapping */
70         generic_bs_map,
71         generic_bs_unmap,
72         generic_bs_subregion,
73
74         /* allocation/deallocation */
75         generic_bs_alloc,
76         generic_bs_free,
77
78         /* barrier */
79         generic_bs_barrier,
80
81         /* read (single) */
82         sa11x0_bs_r_1,
83         sa11x0_bs_r_2,
84         sa11x0_bs_r_4,
85         NULL,
86
87         /* read multiple */
88         sa11x0_bs_rm_1,
89         sa11x0_bs_rm_2,
90         sa11x0_bs_rm_4,
91         NULL,
92
93         /* read region */
94         NULL,
95         sa11x0_bs_rr_2,
96         NULL,
97         NULL,
98         /* write (single) */
99         sa11x0_bs_w_1,
100         sa11x0_bs_w_2,
101         sa11x0_bs_w_4,
102         NULL,
103
104         /* write multiple */
105         sa11x0_bs_wm_1,
106         sa11x0_bs_wm_2,
107         sa11x0_bs_wm_4,
108         NULL,
109
110         /* write region */
111         NULL,
112         sa11x0_bs_wr_2,
113         NULL,
114         NULL,   
115
116         /* set multiple */
117         NULL,
118         NULL,
119         NULL,
120         NULL,
121
122         /* set region */
123         NULL,
124         sa11x0_bs_sr_2,
125         NULL,
126         NULL,
127
128         /* copy */
129         NULL,
130         sa11x0_bs_c_2,
131         NULL,
132         NULL,
133 };
134
135 /* End of sa11x0_io.c */