summaryrefslogtreecommitdiff
path: root/common/wmt_display/lcd.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/wmt_display/lcd.h')
-rwxr-xr-xcommon/wmt_display/lcd.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/common/wmt_display/lcd.h b/common/wmt_display/lcd.h
new file mode 100755
index 0000000..09acea0
--- /dev/null
+++ b/common/wmt_display/lcd.h
@@ -0,0 +1,105 @@
+/*++
+ * linux/drivers/video/wmt/lcd.h
+ * WonderMedia video post processor (VPP) driver
+ *
+ * Copyright c 2014 WonderMedia Technologies, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * WonderMedia Technologies, Inc.
+ * 4F, 533, Chung-Cheng Road, Hsin-Tien, Taipei 231, R.O.C
+--*/
+
+#ifndef LCD_H
+/* To assert that only one occurrence is included */
+#define LCD_H
+/*-------------------- MODULE DEPENDENCY -------------------------------------*/
+#include "vpp.h"
+
+/* following is the C++ header */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*-------------------- EXPORTED PRIVATE CONSTANTS ----------------------------*/
+/* #define LCD_XXXX 1 *//*Example*/
+
+/*-------------------- EXPORTED PRIVATE TYPES---------------------------------*/
+/* typedef void lcd_xxx_t; *//*Example*/
+enum lcd_panel_t {
+ LCD_WMT_OEM,
+ LCD_CHILIN_LW0700AT9003,
+ LCD_INNOLUX_AT070TN83,
+ LCD_AUO_A080SN01,
+ LCD_EKING_EK08009,
+ LCD_HANNSTAR_HSD101PFW2,
+ LCD_LVDS_1024x600,
+ LCD_B079XAN01,
+ LCD_TPO_TJ015NC02AA,
+ LCD_BP080WX7,
+ LCD_PANEL_MAX
+};
+
+#define LCD_CAP_CLK_HI BIT(0)
+#define LCD_CAP_HSYNC_HI BIT(1)
+#define LCD_CAP_VSYNC_HI BIT(2)
+#define LCD_CAP_DE_LO BIT(3)
+struct lcd_parm_t {
+ int bits_per_pixel;
+ unsigned int capability;
+ struct fb_videomode vmode;
+ int width; /* width of picture in mm */
+ int height; /* height of picture in mm */
+
+ void (*initial)(void);
+ void (*uninitial)(void);
+};
+
+/*-------------------- EXPORTED PRIVATE VARIABLES ---------------------------*/
+#ifdef LCD_C /* allocate memory for variables only in vout.c */
+#define EXTERN
+#else
+#define EXTERN extern
+#endif /* ifdef LCD_C */
+
+/* EXTERN int lcd_xxx; *//*Example*/
+
+EXTERN struct lcd_parm_t *p_lcd;
+#undef EXTERN
+
+/*--------------------- EXPORTED PRIVATE MACROS ------------------------------*/
+/* #define LCD_XXX_YYY xxxx *//*Example*/
+/*--------------------- EXPORTED PRIVATE FUNCTIONS --------------------------*/
+/* extern void lcd_xxx(void); *//*Example*/
+
+int lcd_panel_register(int no, void (*get_parm)(int mode));
+struct lcd_parm_t *lcd_get_parm(enum lcd_panel_t id, unsigned int arg);
+void lcd_set_parm(int id, int bpp);
+struct lcd_parm_t *lcd_get_oem_parm(int resx, int resy);
+void lcd_set_lvds_id(int id);
+int lcd_get_lvds_id(void);
+void lcd_set_type(int type);
+int lcd_get_type(void);
+void lcd_set_enable(int enable);
+void lcd_enable_signal(int enable);
+
+#ifdef CONFIG_VPP_SHENZHEN
+void lcd_backlight_power_on(int on);
+#endif
+
+/* LCD back light */
+#ifdef __cplusplus
+}
+#endif
+#endif /* ifndef LCD_H */