Wed Nov 5 07:56:48 2014 UTC ()
Add an entry for the nand found on A10/A20 boards.


(martin)
diff -r1.24 -r1.25 src/sys/arch/arm/allwinner/awin_io.c

cvs diff -r1.24 -r1.25 src/sys/arch/arm/allwinner/Attic/awin_io.c (expand / switch to unified diff)

--- src/sys/arch/arm/allwinner/Attic/awin_io.c 2014/11/02 23:55:48 1.24
+++ src/sys/arch/arm/allwinner/Attic/awin_io.c 2014/11/05 07:56:48 1.25
@@ -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.24 2014/11/02 23:55:48 jmcneill Exp $"); 34__KERNEL_RCSID(1, "$NetBSD: awin_io.c,v 1.25 2014/11/05 07:56:48 martin Exp $");
35 35
36#include <sys/param.h> 36#include <sys/param.h>
37#include <sys/bus.h> 37#include <sys/bus.h>
38#include <sys/cpu.h> 38#include <sys/cpu.h>
39#include <sys/device.h> 39#include <sys/device.h>
40#include <sys/intr.h> 40#include <sys/intr.h>
41#include <sys/systm.h> 41#include <sys/systm.h>
42 42
43#include <arm/locore.h> 43#include <arm/locore.h>
44#include <arm/mainbus/mainbus.h> 44#include <arm/mainbus/mainbus.h>
45 45
46#include <arm/allwinner/awin_reg.h> 46#include <arm/allwinner/awin_reg.h>
47#include <arm/allwinner/awin_var.h> 47#include <arm/allwinner/awin_var.h>
@@ -137,26 +137,27 @@ static const struct awin_locators awin_l @@ -137,26 +137,27 @@ static const struct awin_locators awin_l
137 { "awiniic", OFFANDSIZE(TWI2), 2, AWIN_A31_IRQ_TWI2, A31 }, 137 { "awiniic", OFFANDSIZE(TWI2), 2, AWIN_A31_IRQ_TWI2, A31 },
138 { "awiniic", OFFANDSIZE(TWI3), 3, AWIN_A31_IRQ_TWI3, A31 }, 138 { "awiniic", OFFANDSIZE(TWI3), 3, AWIN_A31_IRQ_TWI3, A31 },
139 { "awinp2wi", OFFANDSIZE(A31_P2WI), NOPORT, AWIN_A31_IRQ_P2WI, A31 }, 139 { "awinp2wi", OFFANDSIZE(A31_P2WI), NOPORT, AWIN_A31_IRQ_P2WI, A31 },
140 { "spi", OFFANDSIZE(SPI0), 0, AWIN_IRQ_SPI0, AANY }, 140 { "spi", OFFANDSIZE(SPI0), 0, AWIN_IRQ_SPI0, AANY },
141 { "spi", OFFANDSIZE(SPI1), 1, AWIN_IRQ_SPI1, AANY }, 141 { "spi", OFFANDSIZE(SPI1), 1, AWIN_IRQ_SPI1, AANY },
142 { "spi", OFFANDSIZE(SPI2), 1, AWIN_IRQ_SPI2, AANY }, 142 { "spi", OFFANDSIZE(SPI2), 1, AWIN_IRQ_SPI2, AANY },
143 { "spi", OFFANDSIZE(SPI3), 3, AWIN_IRQ_SPI3, AANY }, 143 { "spi", OFFANDSIZE(SPI3), 3, AWIN_IRQ_SPI3, AANY },
144 { "awe", OFFANDSIZE(EMAC), NOPORT, AWIN_IRQ_EMAC, A10|A20 }, 144 { "awe", OFFANDSIZE(EMAC), NOPORT, AWIN_IRQ_EMAC, A10|A20 },
145 { "awge", OFFANDSIZE(GMAC), NOPORT, AWIN_IRQ_GMAC, A20 }, 145 { "awge", OFFANDSIZE(GMAC), NOPORT, AWIN_IRQ_GMAC, A20 },
146 { "awge", OFFANDSIZE(A31_GMAC), NOPORT, AWIN_A31_IRQ_GMAC, A31 }, 146 { "awge", OFFANDSIZE(A31_GMAC), NOPORT, AWIN_A31_IRQ_GMAC, A31 },
147 { "awincrypto", OFFANDSIZE(SS), NOPORT, AWIN_IRQ_SS, AANY }, 147 { "awincrypto", OFFANDSIZE(SS), NOPORT, AWIN_IRQ_SS, AANY },
148 { "awinac", OFFANDSIZE(AC), NOPORT, AWIN_IRQ_AC, A10|A20 }, 148 { "awinac", OFFANDSIZE(AC), NOPORT, AWIN_IRQ_AC, A10|A20 },
149 { "awinac", OFFANDSIZE(AC), NOPORT, AWIN_A31_IRQ_AC, A31 }, 149 { "awinac", OFFANDSIZE(AC), NOPORT, AWIN_A31_IRQ_AC, A31 },
 150 { "awinnand", OFFANDSIZE(NFC), NOPORT, AWIN_IRQ_NAND, A10|A20 },
150 { "awinir", OFFANDSIZE(IR0), 0, AWIN_IRQ_IR0, A10|A20 }, 151 { "awinir", OFFANDSIZE(IR0), 0, AWIN_IRQ_IR0, A10|A20 },
151 { "awinir", OFFANDSIZE(IR1), 1, AWIN_IRQ_IR1, A10|A20 }, 152 { "awinir", OFFANDSIZE(IR1), 1, AWIN_IRQ_IR1, A10|A20 },
152 { "awinir", OFFANDSIZE(A31_CIR), NOPORT, AWIN_A31_IRQ_CIR, A31 }, 153 { "awinir", OFFANDSIZE(A31_CIR), NOPORT, AWIN_A31_IRQ_CIR, A31 },
153}; 154};
154 155
155static int 156static int
156awinio_find(device_t parent, cfdata_t cf, const int *ldesc, void *aux) 157awinio_find(device_t parent, cfdata_t cf, const int *ldesc, void *aux)
157{ 158{
158 const struct awinio_attach_args * const aio = aux; 159 const struct awinio_attach_args * const aio = aux;
159 const struct awin_locators * const loc = &aio->aio_loc; 160 const struct awin_locators * const loc = &aio->aio_loc;
160 const int port = cf->cf_loc[AWINIOCF_PORT]; 161 const int port = cf->cf_loc[AWINIOCF_PORT];
161 162
162 if (strcmp(cf->cf_name, loc->loc_name) 163 if (strcmp(cf->cf_name, loc->loc_name)