xref: /openbmc/linux/include/video/da8xx-fb.h (revision 3fca9e0b)
14ed824d9SSudhakar Rajashekhara /*
24ed824d9SSudhakar Rajashekhara  * Header file for TI DA8XX LCD controller platform data.
34ed824d9SSudhakar Rajashekhara  *
44ed824d9SSudhakar Rajashekhara  * Copyright (C) 2008-2009 MontaVista Software Inc.
54ed824d9SSudhakar Rajashekhara  * Copyright (C) 2008-2009 Texas Instruments Inc
64ed824d9SSudhakar Rajashekhara  *
74ed824d9SSudhakar Rajashekhara  * This file is licensed under the terms of the GNU General Public License
84ed824d9SSudhakar Rajashekhara  * version 2. This program is licensed "as is" without any warranty of any
94ed824d9SSudhakar Rajashekhara  * kind, whether express or implied.
104ed824d9SSudhakar Rajashekhara  */
114ed824d9SSudhakar Rajashekhara 
124ed824d9SSudhakar Rajashekhara #ifndef DA8XX_FB_H
134ed824d9SSudhakar Rajashekhara #define DA8XX_FB_H
144ed824d9SSudhakar Rajashekhara 
154ed824d9SSudhakar Rajashekhara enum panel_shade {
164ed824d9SSudhakar Rajashekhara 	MONOCHROME = 0,
174ed824d9SSudhakar Rajashekhara 	COLOR_ACTIVE,
184ed824d9SSudhakar Rajashekhara 	COLOR_PASSIVE,
194ed824d9SSudhakar Rajashekhara };
204ed824d9SSudhakar Rajashekhara 
214ed824d9SSudhakar Rajashekhara enum raster_load_mode {
224ed824d9SSudhakar Rajashekhara 	LOAD_DATA = 1,
234ed824d9SSudhakar Rajashekhara 	LOAD_PALETTE,
244ed824d9SSudhakar Rajashekhara };
254ed824d9SSudhakar Rajashekhara 
2626e71645SDarren Etheridge enum da8xx_frame_complete {
2726e71645SDarren Etheridge 	DA8XX_FRAME_WAIT,
2826e71645SDarren Etheridge 	DA8XX_FRAME_NOWAIT,
2926e71645SDarren Etheridge };
3026e71645SDarren Etheridge 
314ed824d9SSudhakar Rajashekhara struct da8xx_lcdc_platform_data {
324ed824d9SSudhakar Rajashekhara 	const char manu_name[10];
334ed824d9SSudhakar Rajashekhara 	void *controller_data;
344ed824d9SSudhakar Rajashekhara 	const char type[25];
354ed824d9SSudhakar Rajashekhara };
364ed824d9SSudhakar Rajashekhara 
374ed824d9SSudhakar Rajashekhara struct lcd_ctrl_config {
383b43ad20SManjunathappa, Prakash 	enum panel_shade panel_shade;
394ed824d9SSudhakar Rajashekhara 
404ed824d9SSudhakar Rajashekhara 	/* AC Bias Pin Frequency */
414ed824d9SSudhakar Rajashekhara 	int ac_bias;
424ed824d9SSudhakar Rajashekhara 
434ed824d9SSudhakar Rajashekhara 	/* AC Bias Pin Transitions per Interrupt */
444ed824d9SSudhakar Rajashekhara 	int ac_bias_intrpt;
454ed824d9SSudhakar Rajashekhara 
464ed824d9SSudhakar Rajashekhara 	/* DMA burst size */
474ed824d9SSudhakar Rajashekhara 	int dma_burst_sz;
484ed824d9SSudhakar Rajashekhara 
494ed824d9SSudhakar Rajashekhara 	/* Bits per pixel */
504ed824d9SSudhakar Rajashekhara 	int bpp;
514ed824d9SSudhakar Rajashekhara 
524ed824d9SSudhakar Rajashekhara 	/* FIFO DMA Request Delay */
534ed824d9SSudhakar Rajashekhara 	int fdd;
544ed824d9SSudhakar Rajashekhara 
554ed824d9SSudhakar Rajashekhara 	/* TFT Alternative Signal Mapping (Only for active) */
564ed824d9SSudhakar Rajashekhara 	unsigned char tft_alt_mode;
574ed824d9SSudhakar Rajashekhara 
584ed824d9SSudhakar Rajashekhara 	/* 12 Bit Per Pixel (5-6-5) Mode (Only for passive) */
594ed824d9SSudhakar Rajashekhara 	unsigned char stn_565_mode;
604ed824d9SSudhakar Rajashekhara 
614ed824d9SSudhakar Rajashekhara 	/* Mono 8-bit Mode: 1=D0-D7 or 0=D0-D3 */
624ed824d9SSudhakar Rajashekhara 	unsigned char mono_8bit_mode;
634ed824d9SSudhakar Rajashekhara 
644ed824d9SSudhakar Rajashekhara 	/* Horizontal and Vertical Sync Edge: 0=rising 1=falling */
654ed824d9SSudhakar Rajashekhara 	unsigned char sync_edge;
664ed824d9SSudhakar Rajashekhara 
674ed824d9SSudhakar Rajashekhara 	/* Raster Data Order Select: 1=Most-to-least 0=Least-to-most */
684ed824d9SSudhakar Rajashekhara 	unsigned char raster_order;
69fb8fa943SManjunathappa, Prakash 
70fb8fa943SManjunathappa, Prakash 	/* DMA FIFO threshold */
71fb8fa943SManjunathappa, Prakash 	int fifo_th;
724ed824d9SSudhakar Rajashekhara };
734ed824d9SSudhakar Rajashekhara 
744ed824d9SSudhakar Rajashekhara struct lcd_sync_arg {
754ed824d9SSudhakar Rajashekhara 	int back_porch;
764ed824d9SSudhakar Rajashekhara 	int front_porch;
774ed824d9SSudhakar Rajashekhara 	int pulse_width;
784ed824d9SSudhakar Rajashekhara };
794ed824d9SSudhakar Rajashekhara 
804ed824d9SSudhakar Rajashekhara /* ioctls */
814ed824d9SSudhakar Rajashekhara #define FBIOGET_CONTRAST	_IOR('F', 1, int)
824ed824d9SSudhakar Rajashekhara #define FBIOPUT_CONTRAST	_IOW('F', 2, int)
834ed824d9SSudhakar Rajashekhara #define FBIGET_BRIGHTNESS	_IOR('F', 3, int)
844ed824d9SSudhakar Rajashekhara #define FBIPUT_BRIGHTNESS	_IOW('F', 3, int)
854ed824d9SSudhakar Rajashekhara #define FBIGET_COLOR		_IOR('F', 5, int)
864ed824d9SSudhakar Rajashekhara #define FBIPUT_COLOR		_IOW('F', 6, int)
874ed824d9SSudhakar Rajashekhara #define FBIPUT_HSYNC		_IOW('F', 9, int)
884ed824d9SSudhakar Rajashekhara #define FBIPUT_VSYNC		_IOW('F', 10, int)
894ed824d9SSudhakar Rajashekhara 
90f772fabdSManjunathappa, Prakash /* Proprietary FB_SYNC_ flags */
91f772fabdSManjunathappa, Prakash #define FB_SYNC_CLK_INVERT 0x40000000
92f772fabdSManjunathappa, Prakash 
934ed824d9SSudhakar Rajashekhara #endif  /* ifndef DA8XX_FB_H */
944ed824d9SSudhakar Rajashekhara 
95