2010-09-03 11:20:23 +04:00
# ifndef SH_MOBILE_LCDCFB_H
# define SH_MOBILE_LCDCFB_H
# include <linux/completion.h>
# include <linux/fb.h>
2010-09-14 18:48:54 +04:00
# include <linux/mutex.h>
2010-09-03 11:20:23 +04:00
# include <linux/wait.h>
/* per-channel registers */
enum { LDDCKPAT1R , LDDCKPAT2R , LDMT1R , LDMT2R , LDMT3R , LDDFR , LDSM1R ,
2011-02-24 08:47:13 +03:00
LDSM2R , LDSA1R , LDSA2R , LDMLSR , LDHCNR , LDHSYNR , LDVLNR , LDVSYNR , LDPMR ,
2010-09-03 11:20:23 +04:00
LDHAJR ,
NR_CH_REGS } ;
# define PALETTE_NR 16
struct sh_mobile_lcdc_priv ;
struct fb_info ;
2011-02-16 06:49:01 +03:00
struct backlight_device ;
2010-09-03 11:20:23 +04:00
2011-07-13 14:13:47 +04:00
/*
* struct sh_mobile_lcdc_chan - LCDC display channel
*
* @ base_addr_y : Frame buffer viewport base address ( luma component )
* @ base_addr_c : Frame buffer viewport base address ( chroma component )
* @ pitch : Frame buffer line pitch
*/
2010-09-03 11:20:23 +04:00
struct sh_mobile_lcdc_chan {
struct sh_mobile_lcdc_priv * lcdc ;
unsigned long * reg_offs ;
unsigned long ldmt1r_value ;
unsigned long enabled ; /* ME and SE in LDCNT2R */
struct sh_mobile_lcdc_chan_cfg cfg ;
u32 pseudo_palette [ PALETTE_NR ] ;
struct fb_info * info ;
2011-02-16 06:49:01 +03:00
struct backlight_device * bl ;
2010-09-03 11:20:23 +04:00
dma_addr_t dma_handle ;
struct fb_deferred_io defio ;
struct scatterlist * sglist ;
unsigned long frame_end ;
unsigned long pan_offset ;
wait_queue_head_t frame_end_wait ;
struct completion vsync_completion ;
2010-09-03 11:20:27 +04:00
struct fb_var_screeninfo display_var ;
2010-09-14 18:48:54 +04:00
int use_count ;
2011-02-23 11:36:30 +03:00
int blank_status ;
2010-09-14 18:48:54 +04:00
struct mutex open_lock ; /* protects the use counter */
2011-05-18 15:10:07 +04:00
int meram_enabled ;
2011-07-13 14:13:47 +04:00
unsigned long base_addr_y ;
unsigned long base_addr_c ;
unsigned int pitch ;
2010-09-03 11:20:23 +04:00
} ;
# endif