pxa2x0_apm.h revision 1.2 1 1.2 dyoung /* $NetBSD: pxa2x0_apm.h,v 1.2 2011/07/01 20:32:51 dyoung Exp $ */
2 1.1 ober /* $OpenBSD: pxa2x0_apm.h,v 1.7 2005/04/13 05:40:07 uwe Exp $ */
3 1.1 ober
4 1.1 ober /*
5 1.1 ober * Copyright (c) 2005 Uwe Stuehler <uwe (at) bsdx.de>
6 1.1 ober *
7 1.1 ober * Permission to use, copy, modify, and distribute this software for any
8 1.1 ober * purpose with or without fee is hereby granted, provided that the above
9 1.1 ober * copyright notice and this permission notice appear in all copies.
10 1.1 ober *
11 1.1 ober * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 1.1 ober * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 1.1 ober * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 1.1 ober * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 1.1 ober * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 1.1 ober * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 1.1 ober * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 1.1 ober */
19 1.1 ober
20 1.1 ober #ifndef _PXA2X0_APM_H_
21 1.1 ober #define _PXA2X0_APM_H_
22 1.1 ober
23 1.1 ober #include <sys/event.h>
24 1.1 ober
25 1.2 dyoung #include <sys/bus.h>
26 1.1 ober #include <machine/apmvar.h>
27 1.1 ober
28 1.1 ober struct pxa2x0_apm_softc {
29 1.1 ober struct device sc_dev;
30 1.1 ober struct proc *sc_thread;
31 1.1 ober kmutex_t sc_lock;
32 1.1 ober struct klist sc_note;
33 1.1 ober int sc_flags;
34 1.1 ober int sc_wakeon; /* enabled wakeup sources */
35 1.1 ober int sc_batt_life;
36 1.1 ober bus_space_tag_t sc_iot;
37 1.1 ober bus_space_handle_t sc_pm_ioh;
38 1.1 ober bus_space_handle_t sc_memctl_ioh;
39 1.1 ober int (*sc_get_event)(struct pxa2x0_apm_softc *, u_int *);
40 1.1 ober void (*sc_power_info)(struct pxa2x0_apm_softc *,
41 1.1 ober struct apm_power_info *);
42 1.1 ober void (*sc_suspend)(struct pxa2x0_apm_softc *);
43 1.1 ober int (*sc_resume)(struct pxa2x0_apm_softc *);
44 1.1 ober };
45 1.1 ober
46 1.1 ober void pxa2x0_apm_attach_sub(struct pxa2x0_apm_softc *);
47 1.1 ober void pxa2x0_apm_sleep(struct pxa2x0_apm_softc *);
48 1.1 ober
49 1.1 ober #define PXA2X0_WAKEUP_POWERON (1<<0)
50 1.1 ober #define PXA2X0_WAKEUP_GPIORST (1<<1)
51 1.1 ober #define PXA2X0_WAKEUP_SD (1<<2)
52 1.1 ober #define PXA2X0_WAKEUP_RC (1<<3)
53 1.1 ober #define PXA2X0_WAKEUP_SYNC (1<<4)
54 1.1 ober #define PXA2X0_WAKEUP_KEYNS0 (1<<5)
55 1.1 ober #define PXA2X0_WAKEUP_KEYNS1 (1<<6)
56 1.1 ober #define PXA2X0_WAKEUP_KEYNS2 (1<<7)
57 1.1 ober #define PXA2X0_WAKEUP_KEYNS3 (1<<8)
58 1.1 ober #define PXA2X0_WAKEUP_KEYNS4 (1<<9)
59 1.1 ober #define PXA2X0_WAKEUP_KEYNS5 (1<<10)
60 1.1 ober #define PXA2X0_WAKEUP_KEYNS6 (1<<11)
61 1.1 ober #define PXA2X0_WAKEUP_CF0 (1<<12)
62 1.1 ober #define PXA2X0_WAKEUP_CF1 (1<<13)
63 1.1 ober #define PXA2X0_WAKEUP_USBD (1<<14)
64 1.1 ober #define PXA2X0_WAKEUP_LOCKSW (1<<15)
65 1.1 ober #define PXA2X0_WAKEUP_JACKIN (1<<16)
66 1.1 ober #define PXA2X0_WAKEUP_CHRGFULL (1<<17)
67 1.1 ober #define PXA2X0_WAKEUP_RTC (1<<18)
68 1.1 ober
69 1.1 ober #define PXA2X0_WAKEUP_KEYNS_ALL (PXA2X0_WAKEUP_KEYNS0| \
70 1.1 ober PXA2X0_WAKEUP_KEYNS1|PXA2X0_WAKEUP_KEYNS2|PXA2X0_WAKEUP_KEYNS3| \
71 1.1 ober PXA2X0_WAKEUP_KEYNS4|PXA2X0_WAKEUP_KEYNS5|PXA2X0_WAKEUP_KEYNS6)
72 1.1 ober
73 1.1 ober #define PXA2X0_WAKEUP_CF_ALL (PXA2X0_WAKEUP_CF0|PXA2X0_WAKEUP_CF1)
74 1.1 ober
75 1.1 ober #define PXA2X0_WAKEUP_ALL (PXA2X0_WAKEUP_POWERON| \
76 1.1 ober PXA2X0_WAKEUP_GPIORST|PXA2X0_WAKEUP_SD|PXA2X0_WAKEUP_RC| \
77 1.1 ober PXA2X0_WAKEUP_SYNC|PXA2X0_WAKEUP_KEYNS_ALL|PXA2X0_WAKEUP_CF_ALL| \
78 1.1 ober PXA2X0_WAKEUP_USBD|PXA2X0_WAKEUP_LOCKSW|PXA2X0_WAKEUP_JACKIN| \
79 1.1 ober PXA2X0_WAKEUP_CHRGFULL|PXA2X0_WAKEUP_RTC)
80 1.1 ober
81 1.1 ober void pxa2x0_wakeup_config(u_int, int);
82 1.1 ober u_int pxa2x0_wakeup_status(void);
83 1.1 ober
84 1.1 ober #endif
85