1 /* $NetBSD: ffbvar.h,v 1.8 2006/09/14 16:05:18 martin Exp $ */ 2 /* $OpenBSD: creatorvar.h,v 1.6 2002/07/30 19:48:15 jason Exp $ */ 3 4 /* 5 * Copyright (c) 2002 Jason L. Wright (jason@thought.net), 6 * Federico G. Schwindt (fgsch@openbsd.org) 7 * All rights reserved. 8 * 9 * Redistribution and use in source and binary forms, with or without 10 * modification, are permitted provided that the following conditions 11 * are met: 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 3. All advertising materials mentioning features or use of this software 18 * must display the following acknowledgement: 19 * This product includes software developed by Jason L. Wright 20 * 4. The name of the author may not be used to endorse or promote products 21 * derived from this software without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 26 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 27 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 29 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 31 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 * POSSIBILITY OF SUCH DAMAGE. 34 */ 35 36 #include <dev/wscons/wsdisplay_vconsvar.h> 37 38 #define FFB_CREATOR 0 39 #define FFB_AFB 1 40 41 #define FFB_CFFLAG_NOACCEL 0x1 42 43 struct ffb_softc { 44 struct device sc_dv; 45 struct fbdevice sc_fb; 46 bus_space_tag_t sc_bt; 47 bus_space_handle_t sc_pixel_h; 48 bus_space_handle_t sc_dac_h; 49 bus_space_handle_t sc_fbc_h; 50 bus_addr_t sc_addrs[FFB_NREGS]; 51 bus_size_t sc_sizes[FFB_NREGS]; 52 int sc_height, sc_width, sc_linebytes, sc_depth; 53 int sc_nscreens, sc_nreg; 54 int sc_console; 55 int sc_node; 56 int sc_type; 57 u_int sc_dacrev; 58 u_int sc_locked; 59 int sc_mode; 60 int sc_accel, sc_needredraw; 61 int32_t sc_fifo_cache, sc_fg_cache; 62 63 /* virtual console stuff */ 64 void (*putchar)(void *c, int row, int col, u_int uc, long attr); 65 struct vcons_data vd; 66 }; 67 68 #define DAC_WRITE(sc,r,v) \ 69 bus_space_write_4((sc)->sc_bt, (sc)->sc_dac_h, (r), (v)) 70 #define DAC_READ(sc,r) \ 71 bus_space_read_4((sc)->sc_bt, (sc)->sc_dac_h, (r)) 72 #define FBC_WRITE(sc,r,v) \ 73 bus_space_write_4((sc)->sc_bt, (sc)->sc_fbc_h, (r), (v)) 74 #define FBC_READ(sc,r) \ 75 bus_space_read_4((sc)->sc_bt, (sc)->sc_fbc_h, (r)) 76 77 void ffb_attach(struct ffb_softc *); 78