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