lcd: Provide an API to access LCD parameters
authorVadim Bendebury <vbendeb@chromium.org>
Fri, 28 Sep 2012 15:11:13 +0000 (15:11 +0000)
committerAnatolij Gustschin <agust@denx.de>
Tue, 6 Nov 2012 23:57:16 +0000 (00:57 +0100)
Create a basic API to provide access to lcd parameters such as screen
size, and to position the cursor on the screen.

This matches up with the video API for the same purpose. Unfortunately
they are not yet combined.

Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
common/lcd.c
include/lcd.h

index b6be8002d201692535602677ae2d002b8618e088..4cea04e247d4352ef52761b2ea34eb2c38ecb05c 100644 (file)
@@ -885,5 +885,31 @@ static void *lcd_logo(void)
 #endif /* CONFIG_LCD_LOGO && !CONFIG_LCD_INFO_BELOW_LOGO */
 }
 
+void lcd_position_cursor(unsigned col, unsigned row)
+{
+       console_col = min(col, CONSOLE_COLS - 1);
+       console_row = min(row, CONSOLE_ROWS - 1);
+}
+
+int lcd_get_pixel_width(void)
+{
+       return panel_info.vl_col;
+}
+
+int lcd_get_pixel_height(void)
+{
+       return panel_info.vl_row;
+}
+
+int lcd_get_screen_rows(void)
+{
+       return CONSOLE_ROWS;
+}
+
+int lcd_get_screen_columns(void)
+{
+       return CONSOLE_COLS;
+}
+
 /************************************************************************/
 /************************************************************************/
index 42070d76366e8465a84baf3e90a7e95bff429a62..2517d39d4144a5f3d760c9bcb53029b3460c4316 100644 (file)
@@ -294,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);