[BACK]Return to power.c CVS log [TXT][DIR] Up to [local] / sys / arch / sparc / dev

Annotation of sys/arch/sparc/dev/power.c, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: power.c,v 1.10 2007/07/01 19:07:45 miod Exp $ */
                      2: /*     $NetBSD: power.c,v 1.2 1996/05/16 15:56:56 abrown Exp $ */
                      3:
                      4: /*
                      5:  * Copyright (c) 1996
                      6:  *     The President and Fellows of Harvard College. All rights reserved.
                      7:  *
                      8:  * All advertising materials mentioning features or use of this software
                      9:  * must display the following acknowledgement:
                     10:  *     This product includes software developed by Aaron Brown and
                     11:  *     Harvard University.
                     12:  *
                     13:  * Redistribution and use in source and binary forms, with or without
                     14:  * modification, are permitted provided that the following conditions
                     15:  * are met:
                     16:  *
                     17:  * 1. Redistributions of source code must retain the above copyright
                     18:  *    notice, this list of conditions and the following disclaimer.
                     19:  * 2. Redistributions in binary form must reproduce the above copyright
                     20:  *    notice, this list of conditions and the following disclaimer in the
                     21:  *    documentation and/or other materials provided with the distribution.
                     22:  * 3. All advertising materials mentioning features or use of this software
                     23:  *    must display the following acknowledgement:
                     24:  *     This product includes software developed by Harvard University
                     25:  *     and its contributors.
                     26:  * 4. Neither the name of the University nor the names of its contributors
                     27:  *    may be used to endorse or promote products derived from this software
                     28:  *    without specific prior written permission.
                     29:  *
                     30:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     31:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     32:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     33:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     34:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     35:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     36:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     37:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     38:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     39:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     40:  * SUCH DAMAGE.
                     41:  *
                     42:  */
                     43:
                     44: #include <sys/param.h>
                     45: #include <sys/device.h>
                     46: #include <sys/kernel.h>
                     47: #include <sys/systm.h>
                     48:
                     49: #include <machine/autoconf.h>
                     50:
                     51: #include <sparc/dev/power.h>
                     52:
                     53: void   powerattach(struct device *, struct device *, void *);
                     54: int    powermatch(struct device *, void *, void *);
                     55:
                     56: struct cfattach power_ca = {
                     57:        sizeof(struct device), powermatch, powerattach
                     58: };
                     59:
                     60: struct cfdriver power_cd = {
                     61:        NULL, "power", DV_DULL
                     62: };
                     63:
                     64: static char power_attached = 0;
                     65: volatile u_char *power_reg;
                     66:
                     67: /*
                     68:  * This is the driver for the "power" register available on some Sun4m
                     69:  * machines. This allows the machine to remove power automatically when
                     70:  * shutdown or halted or whatever.
                     71:  */
                     72:
                     73: int
                     74: powermatch(struct device *parent, void *vcf, void *aux)
                     75: {
                     76:        struct confargs *ca = aux;
                     77:
                     78:        if (CPU_ISSUN4M) {
                     79:                if (strcmp("power", ca->ca_ra.ra_name) == 0)
                     80:                        return (1);
                     81:        }
                     82:
                     83:        return (0);
                     84: }
                     85:
                     86: /* ARGSUSED */
                     87: void
                     88: powerattach(struct device *parent, struct device *self, void *aux)
                     89: {
                     90:        struct confargs *ca = aux;
                     91:        struct romaux *ra = &ca->ca_ra;
                     92:
                     93:        power_reg = mapiodev(ra->ra_reg, 0, sizeof(long));
                     94:
                     95:        power_attached = 1;
                     96:
                     97:        printf("\n");
                     98: }
                     99:
                    100: void
                    101: auxio_powerdown()
                    102: {
                    103:        if (power_attached) {
                    104:                *POWER_REG |= POWER_OFF;
                    105:                DELAY(1000000);
                    106:        }
                    107: }

CVSweb