Home | History | Annotate | Line # | Download | only in atheros
mainbus.c revision 1.2.8.1
      1  1.2.8.1     chap /* $NetBSD: mainbus.c,v 1.2.8.1 2006/06/19 03:44:02 chap Exp $ */
      2      1.1  gdamore 
      3      1.1  gdamore /*
      4      1.1  gdamore  * Copyright 2002 Wasabi Systems, Inc.
      5      1.1  gdamore  * All rights reserved.
      6      1.1  gdamore  *
      7      1.1  gdamore  * Written by Simon Burge for Wasabi Systems, Inc.
      8      1.1  gdamore  *
      9      1.1  gdamore  * Redistribution and use in source and binary forms, with or without
     10      1.1  gdamore  * modification, are permitted provided that the following conditions
     11      1.1  gdamore  * are met:
     12      1.1  gdamore  * 1. Redistributions of source code must retain the above copyright
     13      1.1  gdamore  *    notice, this list of conditions and the following disclaimer.
     14      1.1  gdamore  * 2. Redistributions in binary form must reproduce the above copyright
     15      1.1  gdamore  *    notice, this list of conditions and the following disclaimer in the
     16      1.1  gdamore  *    documentation and/or other materials provided with the distribution.
     17      1.1  gdamore  * 3. All advertising materials mentioning features or use of this software
     18      1.1  gdamore  *    must display the following acknowledgement:
     19      1.1  gdamore  *      This product includes software developed for the NetBSD Project by
     20      1.1  gdamore  *      Wasabi Systems, Inc.
     21      1.1  gdamore  * 4. The name of Wasabi Systems, Inc. may not be used to endorse
     22      1.1  gdamore  *    or promote products derived from this software without specific prior
     23      1.1  gdamore  *    written permission.
     24      1.1  gdamore  *
     25      1.1  gdamore  * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
     26      1.1  gdamore  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     27      1.1  gdamore  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     28      1.1  gdamore  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL WASABI SYSTEMS, INC
     29      1.1  gdamore  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     30      1.1  gdamore  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     31      1.1  gdamore  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     32      1.1  gdamore  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     33      1.1  gdamore  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     34      1.1  gdamore  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     35      1.1  gdamore  * POSSIBILITY OF SUCH DAMAGE.
     36      1.1  gdamore  */
     37      1.1  gdamore 
     38      1.1  gdamore #include <sys/cdefs.h>
     39  1.2.8.1     chap __KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.2.8.1 2006/06/19 03:44:02 chap Exp $");
     40      1.1  gdamore 
     41      1.1  gdamore #include <sys/param.h>
     42      1.1  gdamore #include <sys/systm.h>
     43      1.1  gdamore #include <sys/device.h>
     44      1.1  gdamore 
     45      1.1  gdamore #include <mips/cache.h>
     46      1.1  gdamore #include <mips/cpuregs.h>
     47      1.1  gdamore 
     48      1.1  gdamore #include "locators.h"
     49      1.1  gdamore 
     50      1.1  gdamore static int	mainbus_match(struct device *, struct cfdata *, void *);
     51      1.1  gdamore static void	mainbus_attach(struct device *, struct device *, void *);
     52      1.1  gdamore static int	mainbus_print(void *, const char *);
     53      1.1  gdamore 
     54      1.1  gdamore CFATTACH_DECL(mainbus, sizeof(struct device),
     55      1.1  gdamore     mainbus_match, mainbus_attach, NULL, NULL);
     56      1.1  gdamore 
     57      1.1  gdamore /* There can be only one. */
     58      1.1  gdamore int	mainbus_found;
     59      1.1  gdamore 
     60      1.1  gdamore struct mainbusdev {
     61      1.1  gdamore 	const char *md_name;
     62      1.1  gdamore };
     63      1.1  gdamore 
     64      1.1  gdamore struct mainbusdev mainbusdevs[] = {
     65      1.1  gdamore 	{ "cpu",	},
     66  1.2.8.1     chap 	{ "wdog",	},
     67      1.1  gdamore 	{ "arbus",	},
     68      1.1  gdamore 	{ NULL,		}
     69      1.1  gdamore };
     70      1.1  gdamore 
     71      1.1  gdamore static int
     72  1.2.8.1     chap mainbus_match(struct device *parent, struct cfdata *match, void *aux)
     73      1.1  gdamore {
     74      1.1  gdamore 
     75      1.1  gdamore 	if (mainbus_found)
     76      1.1  gdamore 		return (0);
     77      1.1  gdamore 
     78      1.1  gdamore 	return (1);
     79      1.1  gdamore }
     80      1.1  gdamore 
     81      1.1  gdamore static void
     82  1.2.8.1     chap mainbus_attach(struct device *parent, struct device *self, void *aux)
     83      1.1  gdamore {
     84      1.1  gdamore 	struct mainbusdev *md;
     85      1.1  gdamore 
     86      1.1  gdamore 	mainbus_found = 1;
     87      1.1  gdamore 	printf("\n");
     88      1.1  gdamore 
     89      1.1  gdamore 	for (md = mainbusdevs; md->md_name != NULL; md++) {
     90  1.2.8.1     chap 		config_found_ia(self, "mainbus", md, mainbus_print);
     91      1.1  gdamore 	}
     92      1.1  gdamore }
     93      1.1  gdamore 
     94      1.1  gdamore static int
     95      1.1  gdamore mainbus_print(void *aux, const char *pnp)
     96      1.1  gdamore {
     97      1.1  gdamore 
     98  1.2.8.1     chap 	return (QUIET);
     99      1.1  gdamore }
    100