1 1.3.6.2 skrll /* $NetBSD: gemini_lpchcvar.h,v 1.3.6.2 2009/01/19 13:15:58 skrll Exp $ */ 2 1.3.6.2 skrll 3 1.3.6.2 skrll #ifndef _ARM_GEMINI_LPHCVAR_H 4 1.3.6.2 skrll #define _ARM_GEMINI_LPHCVAR_H 5 1.3.6.2 skrll 6 1.3.6.2 skrll #include <sys/types.h> 7 1.3.6.2 skrll #include <sys/device.h> 8 1.3.6.2 skrll #include <machine/bus.h> 9 1.3.6.2 skrll #include <arch/arm/gemini/gemini_lpcvar.h> 10 1.3.6.2 skrll 11 1.3.6.2 skrll 12 1.3.6.2 skrll typedef struct gemini_lpchc_attach_args { 13 1.3.6.2 skrll void *lpchc_tag; 14 1.3.6.2 skrll bus_space_tag_t lpchc_iot; 15 1.3.6.2 skrll bus_addr_t lpchc_addr; 16 1.3.6.2 skrll bus_size_t lpchc_size; 17 1.3.6.2 skrll } gemini_lpchc_attach_args_t; 18 1.3.6.2 skrll 19 1.3.6.2 skrll typedef struct gemini_lpchc_intrq { 20 1.3.6.2 skrll SIMPLEQ_ENTRY(gemini_lpchc_intrq) iq_q; 21 1.3.6.2 skrll int (*iq_func)(void *); 22 1.3.6.2 skrll void *iq_arg; 23 1.3.6.2 skrll uint32_t iq_bit; 24 1.3.6.2 skrll boolean_t iq_isedge; 25 1.3.6.2 skrll } gemini_lpchc_intrq_t; 26 1.3.6.2 skrll 27 1.3.6.2 skrll typedef struct gemini_lpchc_softc { 28 1.3.6.2 skrll device_t sc_dev; 29 1.3.6.2 skrll bus_addr_t sc_addr; 30 1.3.6.2 skrll bus_size_t sc_size; 31 1.3.6.2 skrll bus_space_tag_t sc_iot; 32 1.3.6.2 skrll bus_space_handle_t sc_ioh; 33 1.3.6.2 skrll int sc_intr; 34 1.3.6.2 skrll void *sc_ih; 35 1.3.6.2 skrll SIMPLEQ_HEAD(, gemini_lpchc_intrq) sc_intrq; 36 1.3.6.2 skrll } gemini_lpchc_softc_t; 37 1.3.6.2 skrll 38 1.3.6.2 skrll extern void gemini_lpchc_init(lpcintrtag_t); 39 1.3.6.2 skrll extern void *gemini_lpchc_intr_establish(lpcintrtag_t, uint, int, int, 40 1.3.6.2 skrll int (*)(void *), void *); 41 1.3.6.2 skrll extern void gemini_lpchc_intr_disestablish(lpcintrtag_t, void *); 42 1.3.6.2 skrll extern int gemini_lpchc_intr(void *); 43 1.3.6.2 skrll 44 1.3.6.2 skrll 45 1.3.6.2 skrll 46 1.3.6.2 skrll #endif /* _ARM_GEMINI_LPHCVAR_H */ 47