| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: bcm2835_intr.c,v 1.1.2.2 2012/08/09 06:36:49 jdc Exp $ */ | | 1 | /* $NetBSD: bcm2835_intr.c,v 1.1.2.3 2012/08/19 17:45:23 riz Exp $ */ |
2 | | | 2 | |
3 | /*- | | 3 | /*- |
4 | * Copyright (c) 2012 The NetBSD Foundation, Inc. | | 4 | * Copyright (c) 2012 The NetBSD Foundation, Inc. |
5 | * All rights reserved. | | 5 | * All rights reserved. |
6 | * | | 6 | * |
7 | * This code is derived from software contributed to The NetBSD Foundation | | 7 | * This code is derived from software contributed to The NetBSD Foundation |
8 | * by Nick Hudson | | 8 | * by Nick Hudson |
9 | * | | 9 | * |
10 | * Redistribution and use in source and binary forms, with or without | | 10 | * Redistribution and use in source and binary forms, with or without |
11 | * modification, are permitted provided that the following conditions | | 11 | * modification, are permitted provided that the following conditions |
12 | * are met: | | 12 | * are met: |
13 | * 1. Redistributions of source code must retain the above copyright | | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | | 14 | * notice, this list of conditions and the following disclaimer. |
| @@ -20,27 +20,27 @@ | | | @@ -20,27 +20,27 @@ |
20 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | | 20 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
21 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | | 21 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | | 22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS |
23 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | | 23 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
24 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | | 24 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
25 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | | 25 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
26 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | | 26 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
27 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | | 27 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
28 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | | 28 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
29 | * POSSIBILITY OF SUCH DAMAGE. | | 29 | * POSSIBILITY OF SUCH DAMAGE. |
30 | */ | | 30 | */ |
31 | | | 31 | |
32 | #include <sys/cdefs.h> | | 32 | #include <sys/cdefs.h> |
33 | __KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.1.2.2 2012/08/09 06:36:49 jdc Exp $"); | | 33 | __KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.1.2.3 2012/08/19 17:45:23 riz Exp $"); |
34 | | | 34 | |
35 | #define _INTR_PRIVATE | | 35 | #define _INTR_PRIVATE |
36 | | | 36 | |
37 | #include <sys/param.h> | | 37 | #include <sys/param.h> |
38 | #include <sys/proc.h> | | 38 | #include <sys/proc.h> |
39 | #include <sys/device.h> | | 39 | #include <sys/device.h> |
40 | | | 40 | |
41 | #include <machine/intr.h> | | 41 | #include <machine/intr.h> |
42 | #include <sys/bus.h> | | 42 | #include <sys/bus.h> |
43 | | | 43 | |
44 | #include <arm/pic/picvar.h> | | 44 | #include <arm/pic/picvar.h> |
45 | | | 45 | |
46 | #include <arm/broadcom/bcm_amba.h> | | 46 | #include <arm/broadcom/bcm_amba.h> |
| @@ -83,28 +83,28 @@ struct bcm2835icu_softc *bcmicu_sc; | | | @@ -83,28 +83,28 @@ struct bcm2835icu_softc *bcmicu_sc; |
83 | bus_space_read_4(bcmicu_sc->sc_iot, bcmicu_sc->sc_ioh, (o)) | | 83 | bus_space_read_4(bcmicu_sc->sc_iot, bcmicu_sc->sc_ioh, (o)) |
84 | | | 84 | |
85 | #define write_bcm2835reg(o, v) \ | | 85 | #define write_bcm2835reg(o, v) \ |
86 | bus_space_write_4(bcmicu_sc->sc_iot, bcmicu_sc->sc_ioh, (o), (v)) | | 86 | bus_space_write_4(bcmicu_sc->sc_iot, bcmicu_sc->sc_ioh, (o), (v)) |
87 | | | 87 | |
88 | | | 88 | |
89 | #define bcm2835_barrier() \ | | 89 | #define bcm2835_barrier() \ |
90 | bus_space_barrier(bcmicu_sc->sc_iot, bcmicu_sc->sc_ioh, 0, \ | | 90 | bus_space_barrier(bcmicu_sc->sc_iot, bcmicu_sc->sc_ioh, 0, \ |
91 | BCM2835_ARMICU_SIZE, BUS_SPACE_BARRIER_READ|BUS_SPACE_BARRIER_WRITE) | | 91 | BCM2835_ARMICU_SIZE, BUS_SPACE_BARRIER_READ|BUS_SPACE_BARRIER_WRITE) |
92 | | | 92 | |
93 | static const char * const bcm2835_sources[BCM2835_NIRQ] = { | | 93 | static const char * const bcm2835_sources[BCM2835_NIRQ] = { |
94 | "(unused 0)", "(unused 1)", "(unused 2)", "timer3", | | 94 | "(unused 0)", "(unused 1)", "(unused 2)", "timer3", |
95 | "(unused 4)", "(unused 5)", "(unused 6)", "jpeg", | | 95 | "(unused 4)", "(unused 5)", "(unused 6)", "jpeg", |
96 | "(unused 8)", "usb", "(unused 10)", "(unused 11)" | | 96 | "(unused 8)", "usb", "(unused 10)", "(unused 11)", |
97 | "(unused 12)", "(unused 13)", "(unused 14)", "(unused 15)" | | 97 | "(unused 12)", "(unused 13)", "(unused 14)", "(unused 15)", |
98 | "(unused 16)", "(unused 17)", "dma2", "dma3", | | 98 | "(unused 16)", "(unused 17)", "dma2", "dma3", |
99 | "(unused 20)", "(unused 21)", "(unused 22)", "(unused 23)", | | 99 | "(unused 20)", "(unused 21)", "(unused 22)", "(unused 23)", |
100 | "(unused 24)", "(unused 25)", "(unused 26)", "(unused 27)", | | 100 | "(unused 24)", "(unused 25)", "(unused 26)", "(unused 27)", |
101 | "(unused 28)", "aux", "(unused 30)", "(unused 31)", | | 101 | "(unused 28)", "aux", "(unused 30)", "(unused 31)", |
102 | "(unused 32)", "(unused 33)", "(unused 34)", "(unused 35)", | | 102 | "(unused 32)", "(unused 33)", "(unused 34)", "(unused 35)", |
103 | "(unused 36)", "(unused 37)", "(unused 38)", "(unused 39)", | | 103 | "(unused 36)", "(unused 37)", "(unused 38)", "(unused 39)", |
104 | "(unused 40)", "(unused 41)", "(unused 42)", "i2c spl slv", | | 104 | "(unused 40)", "(unused 41)", "(unused 42)", "i2c spl slv", |
105 | "(unused 44)", "pwa0", "pwa1", "(unused 47)", | | 105 | "(unused 44)", "pwa0", "pwa1", "(unused 47)", |
106 | "smi", "gpio[0]", "gpio[1]", "gpio[2]", | | 106 | "smi", "gpio[0]", "gpio[1]", "gpio[2]", |
107 | "gpio[3]", "i2c", "spi", "pcm", | | 107 | "gpio[3]", "i2c", "spi", "pcm", |
108 | "sdio", "uart", "(unused 58)", "(unused 59)", | | 108 | "sdio", "uart", "(unused 58)", "(unused 59)", |
109 | "(unused 60)", "(unused 61)", "emmc", "(unused 63)", | | 109 | "(unused 60)", "(unused 61)", "emmc", "(unused 63)", |
110 | "Timer", "Mailbox", "Doorbell0", "Doorbell1", | | 110 | "Timer", "Mailbox", "Doorbell0", "Doorbell1", |