diff options
author | Michael Shalayeff <mickey@cvs.openbsd.org> | 1998-11-04 17:05:16 +0000 |
---|---|---|
committer | Michael Shalayeff <mickey@cvs.openbsd.org> | 1998-11-04 17:05:16 +0000 |
commit | 6dd8647e823d089b3b33c97c43555a972c285ada (patch) | |
tree | cad1e90aa1a80b9a542a8cd4b9f2d46829ad9a11 /sys | |
parent | 923bf36b45e5b08000adebe5dca135acf8287844 (diff) |
GSC bus attachment
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/hppa/gsc/gscbus.c | 76 | ||||
-rw-r--r-- | sys/arch/hppa/gsc/gscbusvar.h | 67 |
2 files changed, 143 insertions, 0 deletions
diff --git a/sys/arch/hppa/gsc/gscbus.c b/sys/arch/hppa/gsc/gscbus.c new file mode 100644 index 00000000000..7f6b4723cc2 --- /dev/null +++ b/sys/arch/hppa/gsc/gscbus.c @@ -0,0 +1,76 @@ +/* $OpenBSD: gscbus.c,v 1.1 1998/11/04 17:05:14 mickey Exp $ */ + +/* + * Copyright (c) 1998 Michael Shalayeff + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Michael Shalayeff. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <sys/param.h> +#include <sys/systm.h> +#include <sys/device.h> +#include <sys/reboot.h> + +#include <machine/iomod.h> +#include <machine/autoconf.h> + +#include <hppa/gsc/gscbusvar.h> + +int gscmatch __P((struct device *, void *, void *)); +void gscattach __P((struct device *, struct device *, void *)); + +struct cfattach gsc_ca = { + sizeof(struct gsc_softc), gscmatch, gscattach +}; + +struct cfdriver gsc_cd = { + NULL, "gsc", DV_DULL +}; + +int +gscmatch(parent, cfdata, aux) + struct device *parent; + void *cfdata; + void *aux; +{ + struct confargs *ca = aux; + + return !strcmp(ca->ca_name, "gsc"); +} + +void +gscattach(parent, self, aux) + struct device *parent; + struct device *self; + void *aux; +{ + struct gsc_attach_args *ga = aux; + + printf("\n"); + + pdc_scanbus(self, &ga->ga_ca, ga->ga_mod, MAXMODBUS); +} diff --git a/sys/arch/hppa/gsc/gscbusvar.h b/sys/arch/hppa/gsc/gscbusvar.h new file mode 100644 index 00000000000..df6fb1fd08d --- /dev/null +++ b/sys/arch/hppa/gsc/gscbusvar.h @@ -0,0 +1,67 @@ +/* $OpenBSD: gscbusvar.h,v 1.1 1998/11/04 17:05:15 mickey Exp $ */ + +/* + * Copyright (c) 1998 Michael Shalayeff + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Michael Shalayeff. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +struct gscbus_ic { + enum {gsc_unknown = 0, gsc_lasi, gsc_wax, gsc_asp} gsc_type; + void *gsc_dv; + + void *(*gsc_intr_establish) __P((struct gscbus_ic *ic, int pri, + int (*handler) __P((void *)), void *, + const char *)); + void (*gsc_intr_disestablish) __P((void *v)); + int (*gsc_intack) __P((void *v)); +}; + +struct gsc_attach_args { + struct confargs ga_ca; +#define ga_name ga_ca.ca_name +#define ga_iot ga_ca.ca_iot +#define ga_mod ga_ca.ca_mod +#define ga_type ga_ca.ca_type +#define ga_hpa ga_ca.ca_hpa +/*#define ga_pdc_iodc_read ga_ca.ca_pdc_iodc_read */ + struct gscbus_ic *ga_ic; /* IC pointer */ +}; + +struct gsc_softc { + struct device sc_dev; + + bus_space_tag_t sc_iot; + struct gscbus_ic *sc_ic; +}; + +#define gsc_intr_establish(ic,pri,h,c,s) \ + ((ic)->gsc_intr_establish((ic), (pri), (h), (c), (s))) +#define gsc_intr_disestablish(ic,v) \ + (ic)->gsc_intr_disestablish((ic), (v)) +#define gsc_intr_intack(ic,v) \ + ((ic)->gsc_intr_disestablish((ic), (v))) |