]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - sys/arm/sa11x0/sa11x0_io.c
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.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 #include <machine/pmap.h>
58
59 /* Proto types for all the bus_space structure functions */
60
61 bs_protos(generic);
62 bs_protos(sa11x0);
63
64 /* Declare the sa11x0 bus space tag */
65
66 struct bus_space sa11x0_bs_tag = {
67         /* cookie */
68         NULL,
69
70         /* mapping/unmapping */
71         generic_bs_map,
72         generic_bs_unmap,
73         generic_bs_subregion,
74
75         /* allocation/deallocation */
76         generic_bs_alloc,
77         generic_bs_free,
78
79         /* barrier */
80         generic_bs_barrier,
81
82         /* read (single) */
83         sa11x0_bs_r_1,
84         sa11x0_bs_r_2,
85         sa11x0_bs_r_4,
86         NULL,
87
88         /* read multiple */
89         sa11x0_bs_rm_1,
90         sa11x0_bs_rm_2,
91         sa11x0_bs_rm_4,
92         NULL,
93
94         /* read region */
95         NULL,
96         sa11x0_bs_rr_2,
97         NULL,
98         NULL,
99         /* write (single) */
100         sa11x0_bs_w_1,
101         sa11x0_bs_w_2,
102         sa11x0_bs_w_4,
103         NULL,
104
105         /* write multiple */
106         sa11x0_bs_wm_1,
107         sa11x0_bs_wm_2,
108         sa11x0_bs_wm_4,
109         NULL,
110
111         /* write region */
112         NULL,
113         sa11x0_bs_wr_2,
114         NULL,
115         NULL,   
116
117         /* set multiple */
118         NULL,
119         NULL,
120         NULL,
121         NULL,
122
123         /* set region */
124         NULL,
125         sa11x0_bs_sr_2,
126         NULL,
127         NULL,
128
129         /* copy */
130         NULL,
131         sa11x0_bs_c_2,
132         NULL,
133         NULL,
134 };
135
136 /* End of sa11x0_io.c */