]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - include/lcd.h
lcd: Provide an API to access LCD parameters
[karo-tx-uboot.git] / include / lcd.h
index 3d9ef167107e6f6e1bbfdcd874d6854025b0dae8..2517d39d4144a5f3d760c9bcb53029b3460c4316 100644 (file)
@@ -55,6 +55,7 @@ extern void lcd_initcolregs (void);
 
 /* gunzip_bmp used if CONFIG_VIDEO_BMP_GZIP */
 extern struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp);
+extern int bmp_display(ulong addr, int x, int y);
 
 #if defined CONFIG_MPC823
 /*
@@ -157,7 +158,7 @@ typedef struct vidinfo {
        struct  pxafb_info pxa;
 } vidinfo_t;
 
-#elif defined(CONFIG_ATMEL_LCD)
+#elif defined(CONFIG_ATMEL_LCD) || defined(CONFIG_ATMEL_HLCD)
 
 typedef struct vidinfo {
        ushort vl_col;          /* Number of columns (i.e. 640) */
@@ -169,6 +170,7 @@ typedef struct vidinfo {
        u_long vl_bpix;         /* Bits per pixel, 0 = 1, 1 = 2, 2 = 4, 3 = 8, 4 = 16 */
        u_long vl_tft;          /* 0 = passive, 1 = TFT */
        u_long vl_cont_pol_low; /* contrast polarity is low */
+       u_long vl_clk_pol;      /* clock polarity */
 
        /* Horizontal control register. */
        u_long vl_hsync_len;    /* Length of horizontal sync */
@@ -190,6 +192,13 @@ enum {
        FIMD_CPU_INTERFACE = 2,
 };
 
+enum exynos_fb_rgb_mode_t {
+       MODE_RGB_P = 0,
+       MODE_BGR_P = 1,
+       MODE_RGB_S = 2,
+       MODE_BGR_S = 3,
+};
+
 typedef struct vidinfo {
        ushort vl_col;          /* Number of columns (i.e. 640) */
        ushort vl_row;          /* Number of rows (i.e. 480) */
@@ -231,10 +240,17 @@ typedef struct vidinfo {
        unsigned int reset_delay;
        unsigned int interface_mode;
        unsigned int mipi_enabled;
+       unsigned int dp_enabled;
        unsigned int cs_setup;
        unsigned int wr_setup;
        unsigned int wr_act;
        unsigned int wr_hold;
+       unsigned int logo_on;
+       unsigned int logo_width;
+       unsigned int logo_height;
+       unsigned long logo_addr;
+       unsigned int rgb_mode;
+       unsigned int resolution;
 
        /* parent clock name(MPLL, EPLL or VPLL) */
        unsigned int pclk_name;
@@ -278,6 +294,42 @@ void       lcd_printf      (const char *fmt, ...);
 void   lcd_clear(void);
 int    lcd_display_bitmap(ulong bmp_image, int x, int y);
 
+/**
+ * Get the width of the LCD in pixels
+ *
+ * @return width of LCD in pixels
+ */
+int lcd_get_pixel_width(void);
+
+/**
+ * Get the height of the LCD in pixels
+ *
+ * @return height of LCD in pixels
+ */
+int lcd_get_pixel_height(void);
+
+/**
+ * Get the number of text lines/rows on the LCD
+ *
+ * @return number of rows
+ */
+int lcd_get_screen_rows(void);
+
+/**
+ * Get the number of text columns on the LCD
+ *
+ * @return number of columns
+ */
+int lcd_get_screen_columns(void);
+
+/**
+ * Set the position of the text cursor
+ *
+ * @param col  Column to place cursor (0 = left side)
+ * @param row  Row to place cursor (0 = top line)
+ */
+void lcd_position_cursor(unsigned col, unsigned row);
+
 /* Allow boards to customize the information displayed */
 void lcd_show_board_info(void);