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