cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

broadsheetfb.h (2169B)


      1/*
      2 * broadsheetfb.h - definitions for the broadsheet framebuffer driver
      3 *
      4 * Copyright (C) 2008 by Jaya Kumar
      5 *
      6 * This file is subject to the terms and conditions of the GNU General Public
      7 * License. See the file COPYING in the main directory of this archive for
      8 * more details.
      9 *
     10 */
     11
     12#ifndef _LINUX_BROADSHEETFB_H_
     13#define _LINUX_BROADSHEETFB_H_
     14
     15/* Broadsheet command defines */
     16#define BS_CMD_INIT_SYS_RUN	0x06
     17#define BS_CMD_INIT_DSPE_CFG	0x09
     18#define BS_CMD_INIT_DSPE_TMG	0x0A
     19#define BS_CMD_INIT_ROTMODE	0x0B
     20#define BS_CMD_RD_REG		0x10
     21#define BS_CMD_WR_REG		0x11
     22#define BS_CMD_LD_IMG		0x20
     23#define BS_CMD_LD_IMG_AREA	0x22
     24#define BS_CMD_LD_IMG_END	0x23
     25#define BS_CMD_WAIT_DSPE_TRG	0x28
     26#define BS_CMD_WAIT_DSPE_FREND	0x29
     27#define BS_CMD_RD_WFM_INFO	0x30
     28#define BS_CMD_UPD_INIT		0x32
     29#define BS_CMD_UPD_FULL		0x33
     30#define BS_CMD_UPD_GDRV_CLR	0x37
     31
     32/* Broadsheet register interface defines */
     33#define BS_REG_REV		0x00
     34#define BS_REG_PRC		0x02
     35
     36/* Broadsheet pin interface specific defines */
     37#define BS_CS	0x01
     38#define BS_DC 	0x02
     39#define BS_WR 	0x03
     40
     41/* Broadsheet IO interface specific defines */
     42#define BS_MMIO_CMD	0x01
     43#define BS_MMIO_DATA	0x02
     44
     45/* struct used by broadsheet. board specific stuff comes from *board */
     46struct broadsheetfb_par {
     47	struct fb_info *info;
     48	struct broadsheet_board *board;
     49	void (*write_reg)(struct broadsheetfb_par *, u16 reg, u16 val);
     50	u16 (*read_reg)(struct broadsheetfb_par *, u16 reg);
     51	wait_queue_head_t waitq;
     52	int panel_index;
     53	struct mutex io_lock;
     54};
     55
     56/* board specific routines */
     57struct broadsheet_board {
     58	struct module *owner;
     59	int (*init)(struct broadsheetfb_par *);
     60	int (*wait_for_rdy)(struct broadsheetfb_par *);
     61	void (*cleanup)(struct broadsheetfb_par *);
     62	int (*get_panel_type)(void);
     63	int (*setup_irq)(struct fb_info *);
     64
     65	/* Functions for boards that use GPIO */
     66	void (*set_ctl)(struct broadsheetfb_par *, unsigned char, u8);
     67	void (*set_hdb)(struct broadsheetfb_par *, u16);
     68	u16 (*get_hdb)(struct broadsheetfb_par *);
     69
     70	/* Functions for boards that have specialized MMIO */
     71	void (*mmio_write)(struct broadsheetfb_par *, int type, u16);
     72	u16 (*mmio_read)(struct broadsheetfb_par *);
     73};
     74#endif