1 /* $NetBSD: au1500.c,v 1.12 2015/06/09 22:50:50 matt Exp $ */ 2 3 /*- 4 * Copyright (c) 2006 Itronix Inc. 5 * All rights reserved. 6 * 7 * Written by Garrett D'Amore for Itronix Inc. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 3. The name of Itronix Inc. may not be used to endorse 18 * or promote products derived from this software without specific 19 * prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY ITRONIX INC. ``AS IS'' AND 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 23 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY 25 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 28 * ON ANY THEORY OF LIABILITY, WHETHER IN 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31 * POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 /* 35 * Copyright 2001 Wasabi Systems, Inc. 36 * All rights reserved. 37 * 38 * Written by Simon Burge for Wasabi Systems, Inc. 39 * 40 * Redistribution and use in source and binary forms, with or without 41 * modification, are permitted provided that the following conditions 42 * are met: 43 * 1. Redistributions of source code must retain the above copyright 44 * notice, this list of conditions and the following disclaimer. 45 * 2. Redistributions in binary form must reproduce the above copyright 46 * notice, this list of conditions and the following disclaimer in the 47 * documentation and/or other materials provided with the distribution. 48 * 3. All advertising materials mentioning features or use of this software 49 * must display the following acknowledgement: 50 * This product includes software developed for the NetBSD Project by 51 * Wasabi Systems, Inc. 52 * 4. The name of Wasabi Systems, Inc. may not be used to endorse 53 * or promote products derived from this software without specific prior 54 * written permission. 55 * 56 * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND 57 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 58 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 59 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC 60 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 61 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 62 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 63 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 64 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 65 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 66 * POSSIBILITY OF SUCH DAMAGE. 67 */ 68 69 /* 70 * Copyright (c) 1996 Christopher G. Demetriou. All rights reserved. 71 * 72 * Redistribution and use in source and binary forms, with or without 73 * modification, are permitted provided that the following conditions 74 * are met: 75 * 1. Redistributions of source code must retain the above copyright 76 * notice, this list of conditions and the following disclaimer. 77 * 2. Redistributions in binary form must reproduce the above copyright 78 * notice, this list of conditions and the following disclaimer in the 79 * documentation and/or other materials provided with the distribution. 80 * 3. All advertising materials mentioning features or use of this software 81 * must display the following acknowledgement: 82 * This product includes software developed by Christopher G. Demetriou 83 * for the NetBSD Project. 84 * 4. The name of the author may not be used to endorse or promote products 85 * derived from this software without specific prior written permission 86 * 87 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 88 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 89 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 90 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 91 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 92 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 93 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 94 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 95 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 96 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 97 */ 98 99 #include <sys/cdefs.h> 100 __KERNEL_RCSID(0, "$NetBSD: au1500.c,v 1.12 2015/06/09 22:50:50 matt Exp $"); 101 102 #include <sys/param.h> 103 #include <sys/bus.h> 104 #include <sys/cpu.h> 105 106 #include <mips/locore.h> 107 #include <mips/alchemy/include/aureg.h> 108 #include <mips/alchemy/include/auvar.h> 109 110 static const char * const au1500_irqnames[] = { 111 "uart0", 112 "pci inta", 113 "pci intb", 114 "uart3", 115 "pci intc", 116 "pci intd", 117 "dma0", 118 "dma1", 119 "dma2", 120 "dma3", 121 "dma4", 122 "dma5", 123 "dma6", 124 "dma7", 125 "toy tick", 126 "toy match0", 127 "toy match1", 128 "toy match2", 129 "rtc tick", 130 "rtc match0", 131 "rtc match1", 132 "rtc match2", 133 "pci error", 134 "irq 23", 135 "usb intr", 136 "usb suspend", 137 "usb host", 138 "ac97", 139 "mac0", 140 "mac1", 141 "irq 30", 142 "ac97 cmd", 143 "gpio 0", 144 "gpio 1", 145 "gpio 2", 146 "gpio 3", 147 "gpio 4", 148 "gpio 5", 149 "gpio 6", 150 "gpio 7", 151 "gpio 8", 152 "gpio 9", 153 "gpio 10", 154 "gpio 11", 155 "gpio 12", 156 "gpio 13", 157 "gpio 14", 158 "gpio 15", 159 "gpio 200", 160 "gpio 201", 161 "gpio 202", 162 "gpio 203", 163 "gpio 20", 164 "gpio 204", 165 "gpio 205", 166 "gpio 23", 167 "gpio 24", 168 "gpio 25", 169 "gpio 26", 170 "gpio 27", 171 "gpio 28", 172 "gpio 206", 173 "gpio 207", 174 "gpio 208:215" 175 }; 176 177 static struct au_dev au1500_devices[] = { 178 { "com", { UART0_BASE }, { 0, -1 }}, 179 { "com", { UART3_BASE }, { 3, -1 }}, 180 { "aurtc", { -1 }, { -1, -1 }}, 181 { "aumac", { AU1500_MAC0_BASE, AU1500_MAC0_ENABLE, 182 MAC0_DMA_BASE }, { 28, -1 }}, 183 { "aumac", { AU1500_MAC1_BASE, AU1500_MAC1_ENABLE, 184 MAC1_DMA_BASE }, { 29, -1 }}, 185 { "ohci", { USBH_BASE, USBH_ENABLE, USBH_SIZE }, { 26, -1 }}, 186 { "aupci", { PCI_BASE }, { -1, -1 }}, 187 { "augpio", { GPIO_BASE, 23 }, { -1, -1 }}, 188 { "augpio", { GPIO2_BASE, 16 }, { -1, -1 }}, 189 #if 0 190 { "auaudio", { AC97_BASE }, { 27, 31 }}, 191 { "usbd", { USBD_BASE }, { 24, 25 }}, 192 #endif 193 { NULL } 194 }; 195 196 static struct au_chipdep au1500_chipdep = { 197 "au1500", 198 { IC0_BASE, IC1_BASE }, /* ICUs */ 199 au1500_devices, 200 au1500_irqnames, 201 }; 202 203 bool 204 au1500_match(struct au_chipdep **cpp) 205 { 206 207 if (MIPS_PRID_COPTS(mips_options.mips_cpu_id) == MIPS_AU1500) { 208 *cpp = &au1500_chipdep; 209 return true; 210 } 211 return false; 212 } 213