| @@ -21,27 +21,27 @@ | | | @@ -21,27 +21,27 @@ |
21 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | | 21 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
22 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | | 22 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
23 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | | 23 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | | 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | | 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | | 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
27 | * POSSIBILITY OF SUCH DAMAGE. | | 27 | * POSSIBILITY OF SUCH DAMAGE. |
28 | */ | | 28 | */ |
29 | | | 29 | |
30 | #include "locators.h" | | 30 | #include "locators.h" |
31 | | | 31 | |
32 | #include <sys/cdefs.h> | | 32 | #include <sys/cdefs.h> |
33 | | | 33 | |
34 | __KERNEL_RCSID(1, "$NetBSD: awin_io.c,v 1.2 2013/09/07 00:35:52 matt Exp $"); | | 34 | __KERNEL_RCSID(1, "$NetBSD: awin_io.c,v 1.3 2013/09/07 02:08:56 matt Exp $"); |
35 | | | 35 | |
36 | #include <sys/bus.h> | | 36 | #include <sys/bus.h> |
37 | #include <sys/cpu.h> | | 37 | #include <sys/cpu.h> |
38 | #include <sys/device.h> | | 38 | #include <sys/device.h> |
39 | #include <sys/intr.h> | | 39 | #include <sys/intr.h> |
40 | #include <sys/systm.h> | | 40 | #include <sys/systm.h> |
41 | | | 41 | |
42 | #include <arm/locore.h> | | 42 | #include <arm/locore.h> |
43 | #include <arm/mainbus/mainbus.h> | | 43 | #include <arm/mainbus/mainbus.h> |
44 | | | 44 | |
45 | #include <arm/allwinner/awin_reg.h> | | 45 | #include <arm/allwinner/awin_reg.h> |
46 | #include <arm/allwinner/awin_var.h> | | 46 | #include <arm/allwinner/awin_var.h> |
47 | | | 47 | |
| @@ -80,26 +80,27 @@ awinio_print(void *aux, const char *pnp) | | | @@ -80,26 +80,27 @@ awinio_print(void *aux, const char *pnp) |
80 | return QUIET; | | 80 | return QUIET; |
81 | } | | 81 | } |
82 | | | 82 | |
83 | #define OFFANDSIZE(n) AWIN_##n##_OFFSET, (AWIN_##n##_OFFSET < 0x20000 ? 0x1000 : 0x400) | | 83 | #define OFFANDSIZE(n) AWIN_##n##_OFFSET, (AWIN_##n##_OFFSET < 0x20000 ? 0x1000 : 0x400) |
84 | #define NOPORT AWINIOCF_PORT_DEFAULT | | 84 | #define NOPORT AWINIOCF_PORT_DEFAULT |
85 | #define NOINTR AWINIO_INTR_DEFAULT | | 85 | #define NOINTR AWINIO_INTR_DEFAULT |
86 | #define AANY 0 | | 86 | #define AANY 0 |
87 | #define A10 AWINIO_ONLY_A10 | | 87 | #define A10 AWINIO_ONLY_A10 |
88 | #define A20 AWINIO_ONLY_A20 | | 88 | #define A20 AWINIO_ONLY_A20 |
89 | #define REQ AWINIO_REQUIRED | | 89 | #define REQ AWINIO_REQUIRED |
90 | | | 90 | |
91 | static const struct awin_locators awin_locators[] = { | | 91 | static const struct awin_locators awin_locators[] = { |
92 | { "awinicu", OFFANDSIZE(INTC), NOPORT, NOINTR, A10|REQ }, | | 92 | { "awinicu", OFFANDSIZE(INTC), NOPORT, NOINTR, A10|REQ }, |
| | | 93 | { "awingpio", OFFANDSIZE(PIO), NOPORT, NOINTR, AANY|REQ }, |
93 | { "awintmr", OFFANDSIZE(TMR), NOPORT, AWIN_IRQ_TMR0, A10 }, | | 94 | { "awintmr", OFFANDSIZE(TMR), NOPORT, AWIN_IRQ_TMR0, A10 }, |
94 | { "com", OFFANDSIZE(UART0), 0, AWIN_IRQ_UART0, AANY }, | | 95 | { "com", OFFANDSIZE(UART0), 0, AWIN_IRQ_UART0, AANY }, |
95 | { "com", OFFANDSIZE(UART1), 1, AWIN_IRQ_UART1, AANY }, | | 96 | { "com", OFFANDSIZE(UART1), 1, AWIN_IRQ_UART1, AANY }, |
96 | { "com", OFFANDSIZE(UART2), 2, AWIN_IRQ_UART2, AANY }, | | 97 | { "com", OFFANDSIZE(UART2), 2, AWIN_IRQ_UART2, AANY }, |
97 | { "com", OFFANDSIZE(UART3), 3, AWIN_IRQ_UART3, AANY }, | | 98 | { "com", OFFANDSIZE(UART3), 3, AWIN_IRQ_UART3, AANY }, |
98 | { "com", OFFANDSIZE(UART4), 4, AWIN_IRQ_UART4, AANY }, | | 99 | { "com", OFFANDSIZE(UART4), 4, AWIN_IRQ_UART4, AANY }, |
99 | { "com", OFFANDSIZE(UART5), 5, AWIN_IRQ_UART5, AANY }, | | 100 | { "com", OFFANDSIZE(UART5), 5, AWIN_IRQ_UART5, AANY }, |
100 | { "com", OFFANDSIZE(UART6), 6, AWIN_IRQ_UART6, AANY }, | | 101 | { "com", OFFANDSIZE(UART6), 6, AWIN_IRQ_UART6, AANY }, |
101 | { "com", OFFANDSIZE(UART7), 7, AWIN_IRQ_UART7, AANY }, | | 102 | { "com", OFFANDSIZE(UART7), 7, AWIN_IRQ_UART7, AANY }, |
102 | { "awinwdt", OFFANDSIZE(TMR), NOPORT, NOINTR, AANY }, | | 103 | { "awinwdt", OFFANDSIZE(TMR), NOPORT, NOINTR, AANY }, |
103 | { "awinusb", OFFANDSIZE(USB1), 0, NOINTR, AANY }, | | 104 | { "awinusb", OFFANDSIZE(USB1), 0, NOINTR, AANY }, |
104 | { "awinusb", OFFANDSIZE(USB2), 1, NOINTR, AANY }, | | 105 | { "awinusb", OFFANDSIZE(USB2), 1, NOINTR, AANY }, |
105 | { "sdhc", OFFANDSIZE(SDMMC0), 0, AWIN_IRQ_SDMMC0, AANY }, | | 106 | { "sdhc", OFFANDSIZE(SDMMC0), 0, AWIN_IRQ_SDMMC0, AANY }, |