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