Home | History | Annotate | Line # | Download | only in pci
      1 /*	$NetBSD: igmavar.h,v 1.1 2014/01/21 14:52:07 mlelstv Exp $	*/
      2 
      3 /*
      4  * Copyright (c) 2014 Michael van Elst
      5  *
      6  * Permission to use, copy, modify, and distribute this software for any
      7  * purpose with or without fee is hereby granted, provided that the above
      8  * copyright notice and this permission notice appear in all copies.
      9  *
     10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     11  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     12  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     13  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     14  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     15  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
     16  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     17  */
     18 
     19 #ifndef IGMAVAR_H
     20 #define IGMAVAR_H
     21 
     22 #include <dev/pci/pcivar.h>
     23 #include <dev/pci/pcireg.h>
     24 
     25 struct igma_chip;
     26 struct igma_chip_ops {
     27 	void (*barrier)(const struct igma_chip *, int);
     28 	u_int32_t (*read_reg)(const struct igma_chip *, int);
     29 	void (*write_reg)(const struct igma_chip *, int, u_int32_t);
     30 	u_int8_t (*read_vga)(const struct igma_chip *, int);
     31 	void (*write_vga)(const struct igma_chip *, int, u_int8_t);
     32 #if 0
     33 	u_int8_t (*read_crtc)(const struct igma_chip *, int);
     34 	void (*write_crtc)(const struct igma_chip *, int, u_int8_t);
     35 #endif
     36 };
     37 
     38 struct igma_chip {
     39 	const struct igma_chip_ops	*ops;
     40 
     41 	bus_space_tag_t         gttt;
     42 	bus_space_handle_t      gtth;
     43 
     44 	bus_space_tag_t         mmiot;
     45 	bus_space_handle_t      mmioh;
     46 
     47 	bus_space_tag_t         vgat;
     48 	bus_space_handle_t      vgah;
     49 
     50 	bus_space_tag_t         gmt;
     51 	bus_space_handle_t      gmh;
     52 	bus_addr_t		gmb;
     53 
     54 	int num_gmbus;
     55 	int gpio_offset;
     56 	int vga_cntrl;
     57 	int num_pipes;
     58 	int use_pipe;
     59 	u_int32_t pri_cntrl;
     60 	int backlight_cntrl;
     61 	int backlight_cntrl2;
     62 	int backlight_factor;
     63 
     64 	unsigned quirks;
     65 };
     66 #define IGMA_PLANESTART_QUIRK   (1L << 0)
     67 #define IGMA_PFITDISABLE_QUIRK  (1L << 1)
     68 
     69 struct igma_attach_args {
     70 	const struct igma_chip_ops	*iaa_chip_ops;
     71 	struct igma_chip   	iaa_chip;
     72 	bool				iaa_console;
     73 	char				iaa_name[32];
     74 };
     75 
     76 #endif
     77