/* $OpenBSD: sa11x0_var.h,v 1.3 2005/01/04 02:08:41 drahn Exp $ */ /* $NetBSD: sa11x0_var.h,v 1.4 2003/04/14 14:18:41 rjs Exp $ */ /*- * Copyright (c) 2001, The NetBSD Foundation, Inc. All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by IWAMOTO Toshihiro and Ichiro FUKUHARA. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the NetBSD * Foundation, Inc. and its contributors. * 4. Neither the name of The NetBSD Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ #ifndef _SA11X0_VAR_H #define _SA11X0_VAR_H #include #include #include typedef int (* sa11x0_irq_handler_t)(void *); struct sa11x0_softc { struct device sc_dev; bus_space_tag_t sc_iot; bus_space_handle_t sc_ioh; bus_space_handle_t sc_gpioh; bus_space_handle_t sc_ppch; bus_space_handle_t sc_dmach; bus_space_handle_t sc_reseth; u_int32_t sc_intrmask; }; /* Attach args all devices */ typedef void *sa11x0_chipset_tag_t; struct sa11x0_attach_args { sa11x0_chipset_tag_t sa_sc; bus_space_tag_t sa_iot; /* Bus tag */ bus_addr_t sa_addr; /* i/o address */ bus_size_t sa_size; int sa_intr; int sa_gpio; }; struct saip_attach_args { struct sa11x0_attach_args sai_saa; bus_dma_tag_t sai_dmat; int sai_index; /* to specify device by index number */ #define sai_iot sai_saa.sa_iot #define sai_addr sai_saa.sa_addr #define sai_size sai_saa.sa_size #define sai_intr sai_saa.sa_intr }; extern struct bus_space sa11x0_bs_tag; //extern struct arm32_bus_dma_tag sa11x0_bus_dma_tag; void *sa11x0_intr_establish(sa11x0_chipset_tag_t, int, int, int, int (*)(void *), void *, char *); void sa11x0_intr_disestablish(void *); void sa11x0_init_interrupt_masks(void); #endif /* _SA11X0_VAR_H */