Home | History | Annotate | Line # | Download | only in xscale
      1  1.3     chs /*	$NetBSD: pxa2x0_apm.h,v 1.3 2012/10/27 17:17:42 chs 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.3     chs 	device_t 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