1*cf10107dSdyoung /* $NetBSD: gemini_lpchcvar.h,v 1.4 2011/07/01 19:32:28 dyoung Exp $ */ 22842dccfScliff 32842dccfScliff #ifndef _ARM_GEMINI_LPHCVAR_H 42842dccfScliff #define _ARM_GEMINI_LPHCVAR_H 52842dccfScliff 62842dccfScliff #include <sys/types.h> 72842dccfScliff #include <sys/device.h> 8*cf10107dSdyoung #include <sys/bus.h> 92842dccfScliff #include <arch/arm/gemini/gemini_lpcvar.h> 102842dccfScliff 112842dccfScliff 122842dccfScliff typedef struct gemini_lpchc_attach_args { 132842dccfScliff void *lpchc_tag; 142842dccfScliff bus_space_tag_t lpchc_iot; 152842dccfScliff bus_addr_t lpchc_addr; 162842dccfScliff bus_size_t lpchc_size; 172842dccfScliff } gemini_lpchc_attach_args_t; 182842dccfScliff 192842dccfScliff typedef struct gemini_lpchc_intrq { 202842dccfScliff SIMPLEQ_ENTRY(gemini_lpchc_intrq) iq_q; 212842dccfScliff int (*iq_func)(void *); 222842dccfScliff void *iq_arg; 232842dccfScliff uint32_t iq_bit; 242842dccfScliff boolean_t iq_isedge; 252842dccfScliff } gemini_lpchc_intrq_t; 262842dccfScliff 272842dccfScliff typedef struct gemini_lpchc_softc { 28c20cc9bcScliff device_t sc_dev; 292842dccfScliff bus_addr_t sc_addr; 302842dccfScliff bus_size_t sc_size; 312842dccfScliff bus_space_tag_t sc_iot; 322842dccfScliff bus_space_handle_t sc_ioh; 332842dccfScliff int sc_intr; 342842dccfScliff void *sc_ih; 352842dccfScliff SIMPLEQ_HEAD(, gemini_lpchc_intrq) sc_intrq; 362842dccfScliff } gemini_lpchc_softc_t; 372842dccfScliff 38e08eff94Scliff extern void gemini_lpchc_init(lpcintrtag_t); 39e08eff94Scliff extern void *gemini_lpchc_intr_establish(lpcintrtag_t, uint, int, int, 402842dccfScliff int (*)(void *), void *); 41e08eff94Scliff extern void gemini_lpchc_intr_disestablish(lpcintrtag_t, void *); 42e08eff94Scliff extern int gemini_lpchc_intr(void *); 432842dccfScliff 442842dccfScliff 452842dccfScliff 462842dccfScliff #endif /* _ARM_GEMINI_LPHCVAR_H */ 47