xref: /netbsd-src/sys/arch/hppa/dev/elroyvar.h (revision 26c6de43189625bc9f912f9e129b1f79f4960ae6)
1*26c6de43Schristos /*	$NetBSD: elroyvar.h,v 1.2 2014/03/31 20:51:20 christos Exp $	*/
26d3ceb1dSskrll 
36d3ceb1dSskrll /*	$OpenBSD: elroyvar.h,v 1.3 2007/06/17 14:51:21 kettenis Exp $	*/
46d3ceb1dSskrll 
56d3ceb1dSskrll /*
66d3ceb1dSskrll  * Copyright (c) 2005 Michael Shalayeff
76d3ceb1dSskrll  * All rights reserved.
86d3ceb1dSskrll  *
96d3ceb1dSskrll  * Permission to use, copy, modify, and distribute this software for any
106d3ceb1dSskrll  * purpose with or without fee is hereby granted, provided that the above
116d3ceb1dSskrll  * copyright notice and this permission notice appear in all copies.
126d3ceb1dSskrll  *
136d3ceb1dSskrll  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
146d3ceb1dSskrll  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
156d3ceb1dSskrll  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
166d3ceb1dSskrll  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
176d3ceb1dSskrll  * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN
186d3ceb1dSskrll  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
196d3ceb1dSskrll  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
206d3ceb1dSskrll  */
216d3ceb1dSskrll 
226d3ceb1dSskrll #include <machine/pdc.h>
236d3ceb1dSskrll 
246d3ceb1dSskrll struct elroy_softc {
256d3ceb1dSskrll 	device_t sc_dv;
266d3ceb1dSskrll 
276d3ceb1dSskrll 	int sc_ver;
286d3ceb1dSskrll 	hppa_hpa_t sc_hpa;
296d3ceb1dSskrll 	bus_space_tag_t sc_bt;
306d3ceb1dSskrll 	bus_space_handle_t sc_bh;
316d3ceb1dSskrll 	bus_dma_tag_t sc_dmat;
326d3ceb1dSskrll 	volatile struct elroy_regs *sc_regs;
336d3ceb1dSskrll 	bus_addr_t sc_iobase;
346d3ceb1dSskrll 
356d3ceb1dSskrll 	uint32_t sc_imr;
366d3ceb1dSskrll 	int sc_nints;
376d3ceb1dSskrll 	int *sc_irq;
386d3ceb1dSskrll 
396d3ceb1dSskrll 	struct pdc_pat_pci_rt *sc_int_tbl;
406d3ceb1dSskrll 	int sc_int_tbl_sz;
416d3ceb1dSskrll 
426d3ceb1dSskrll 	struct hppa_pci_chipset_tag sc_pc;
436d3ceb1dSskrll 	struct hppa_bus_space_tag sc_iot;
446d3ceb1dSskrll 	struct hppa_bus_space_tag sc_memt;
456d3ceb1dSskrll 	char sc_memexname[20];
466d3ceb1dSskrll 	struct extent *sc_memex;
476d3ceb1dSskrll 	struct hppa_bus_dma_tag sc_dmatag;
486d3ceb1dSskrll };
496d3ceb1dSskrll 
506d3ceb1dSskrll void apic_attach(struct elroy_softc *);
516d3ceb1dSskrll int apic_intr(void *);
526d3ceb1dSskrll int apic_intr_map(const struct pci_attach_args *, pci_intr_handle_t *);
53*26c6de43Schristos const char *apic_intr_string(void *, pci_intr_handle_t, char *, size_t);
546d3ceb1dSskrll void *apic_intr_establish(void *, pci_intr_handle_t, int,
556d3ceb1dSskrll     int (*)(void *), void *);
566d3ceb1dSskrll void apic_intr_disestablish(void *, void *);
576d3ceb1dSskrll 
586d3ceb1dSskrll void elroy_write32(volatile uint32_t *, uint32_t);
596d3ceb1dSskrll uint32_t elroy_read32(volatile uint32_t *);
60