Home | History | Annotate | Download | only in include
      1 /* SPDX-License-Identifier: GPL-2.0+ */
      2 /*
      3  * Copyright (C) 2014, Compulab Ltd - http://compulab.co.il/
      4  */
      5 
      6 /* By default we scroll by a single line */
      7 
      8 struct console_t {
      9 	short curr_col, curr_row;
     10 	short cols, rows;
     11 	void *fbbase;
     12 	u32 lcdsizex, lcdsizey, lcdrot;
     13 	void (*fp_putc_xy)(struct console_t *pcons, ushort x, ushort y, char c);
     14 	void (*fp_console_moverow)(struct console_t *pcons,
     15 				   u32 rowdst, u32 rowsrc);
     16 	void (*fp_console_setrow)(struct console_t *pcons, u32 row, int clr);
     17 };
     18 
     19 /**
     20  * console_calc_rowcol() - calculate available rows / columns wihtin a given
     21  * screen-size based on used VIDEO_FONT.
     22  *
     23  * @pcons: Pointer to struct console_t
     24  * @sizex: size X of the screen in pixel
     25  * @sizey: size Y of the screen in pixel
     26  */
     27 void console_calc_rowcol(struct console_t *pcons, u32 sizex, u32 sizey);
     28 /**
     29  * lcd_init_console() - Initialize lcd console parameters
     30  *
     31  * Setup the address of console base, and the number of rows and columns the
     32  * console has.
     33  *
     34  * @address: Console base address
     35  * @vl_rows: Number of rows in the console
     36  * @vl_cols: Number of columns in the console
     37  * @vl_rot: Rotation of display in degree (0 - 90 - 180 - 270) counterlockwise
     38  */
     39 void lcd_init_console(void *address, int vl_cols, int vl_rows, int vl_rot);
     40 /**
     41  * lcd_set_col() - Set the number of the current lcd console column
     42  *
     43  * Set the number of the console column where the cursor is.
     44  *
     45  * @col: Column number
     46  */
     47 void lcd_set_col(short col);
     48 
     49 /**
     50  * lcd_set_row() - Set the number of the current lcd console row
     51  *
     52  * Set the number of the console row where the cursor is.
     53  *
     54  * @row: Row number
     55  */
     56 void lcd_set_row(short row);
     57 
     58 /**
     59  * lcd_position_cursor() - Position the cursor on the screen
     60  *
     61  * Position the cursor at the given coordinates on the screen.
     62  *
     63  * @col: Column number
     64  * @row: Row number
     65  */
     66 void lcd_position_cursor(unsigned col, unsigned row);
     67 
     68 /**
     69  * lcd_get_screen_rows() - Get the total number of screen rows
     70  *
     71  * @return: Number of screen rows
     72  */
     73 int lcd_get_screen_rows(void);
     74 
     75 /**
     76  * lcd_get_screen_columns() - Get the total number of screen columns
     77  *
     78  * @return: Number of screen columns
     79  */
     80 int lcd_get_screen_columns(void);
     81 
     82 /**
     83  * lcd_putc() - Print to screen a single character at the location of the cursor
     84  *
     85  * @c: The character to print
     86  */
     87 void lcd_putc(const char c);
     88 
     89 /**
     90  * lcd_puts() - Print to screen a string at the location of the cursor
     91  *
     92  * @s: The string to print
     93  */
     94 void lcd_puts(const char *s);
     95 
     96 /**
     97  * lcd_printf() - Print to screen a formatted string at location of the cursor
     98  *
     99  * @fmt: The formatted string to print
    100  * @...: The arguments for the formatted string
    101  */
    102 void lcd_printf(const char *fmt, ...);
    103