1 /* $NetBSD: au1000.c,v 1.12 2019/04/11 14:38:06 kamil 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: au1000.c,v 1.12 2019/04/11 14:38:06 kamil 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 au1000_irqnames[] = { 111 "uart0", 112 "uart1", 113 "uart2", 114 "uart3", 115 "ssi0", 116 "ssi1", 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 "irda tx", 134 "irda rx", 135 "usb intr", 136 "usb suspend", 137 "usb host", 138 "ac97", 139 "mac0", 140 "mac1", 141 "i2s", 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 16", 160 "gpio 17", 161 "gpio 18", 162 "gpio 19", 163 "gpio 20", 164 "gpio 21", 165 "gpio 22", 166 "gpio 23", 167 "gpio 24", 168 "gpio 25", 169 "gpio 26", 170 "gpio 27", 171 "gpio 28", 172 "gpio 29", 173 "gpio 30", 174 "gpio 31" 175 }; 176 177 static struct au_dev au1000_devices[] = { 178 { "com", { UART0_BASE }, { 0, -1 }}, 179 { "com", { UART1_BASE }, { 1, -1 }}, 180 { "com", { UART2_BASE }, { 2, -1 }}, 181 { "com", { UART3_BASE }, { 3, -1 }}, 182 { "aurtc", { -1 }, { -1, -1 }}, 183 { "aumac", { MAC0_BASE, MAC0_ENABLE, MAC0_DMA_BASE }, { 28, -1 }}, 184 { "aumac", { MAC1_BASE, MAC1_ENABLE, MAC1_DMA_BASE }, { 29, -1 }}, 185 { "ohci", { USBH_BASE, USBH_ENABLE, USBH_SIZE }, { 26, -1 }}, 186 { "augpio", { GPIO_BASE, 32 }, { -1, -1 }}, 187 #if 0 188 { "auaudio", { AC97_BASE }, { 27, 31 }}, 189 { "i2s", { I2S_BASE }, { 30, -1 }}, 190 { "ssi", { SSI0_BASE }, { 4, -1 }}, 191 { "ssi", { SSI1_BASE }, { 5, -1 }}, 192 { "usbd", { USBD_BASE }, { 24, 25 }}, 193 { "irda", { IRDA_BASE }, { 22, 23 }}, 194 /* XXX: lcd? */ 195 #endif 196 { NULL } 197 }; 198 199 static struct au_chipdep au1000_chipdep = { 200 "au1000", 201 { IC0_BASE, IC1_BASE }, /* ICUs */ 202 au1000_devices, 203 au1000_irqnames, 204 }; 205 206 bool 207 au1000_match(struct au_chipdep **cpp) 208 { 209 210 if (MIPS_PRID_COPTS(mips_options.mips_cpu_id) == MIPS_AU1000) { 211 *cpp = &au1000_chipdep; 212 return true; 213 } 214 return false; 215 } 216