charlcd
static u8 charlcd_4bit_read_char(struct charlcd *lcd)
static bool charlcd_4bit_read_bf(struct charlcd *lcd)
static void charlcd_4bit_wait_busy(struct charlcd *lcd)
static void charlcd_4bit_command(struct charlcd *lcd, u8 cmd)
static void charlcd_4bit_char(struct charlcd *lcd, u8 ch)
static void charlcd_4bit_print(struct charlcd *lcd, int line, const char *str)
static void charlcd_4bit_init(struct charlcd *lcd)
struct charlcd *lcd =
container_of(work, struct charlcd, init_work.work);
struct charlcd *lcd;
struct charlcd *lcd = dev_get_drvdata(dev);
struct charlcd *lcd = dev_get_drvdata(dev);
struct charlcd *lcd = data;
static void charlcd_wait_complete_irq(struct charlcd *lcd)
static void charlcd_home(struct charlcd *lcd)
static void charlcd_print(struct charlcd *lcd, char c)
static void charlcd_clear_display(struct charlcd *lcd)
static inline int handle_lcd_special_code(struct charlcd *lcd)
struct charlcd lcd;
static void charlcd_write_char(struct charlcd *lcd, char c)
static struct charlcd *the_charlcd;
static void charlcd_puts(struct charlcd *lcd, const char *s)
static int charlcd_init(struct charlcd *lcd)
void charlcd_backlight(struct charlcd *lcd, enum charlcd_onoff on)
struct charlcd *charlcd_alloc(unsigned int drvdata_size)
struct charlcd *lcd;
void charlcd_free(struct charlcd *lcd)
struct charlcd *lcd = the_charlcd;
int charlcd_register(struct charlcd *lcd)
int charlcd_unregister(struct charlcd *lcd)
void charlcd_poke(struct charlcd *lcd)
void charlcd_free(struct charlcd *lcd);
int charlcd_register(struct charlcd *lcd);
int charlcd_unregister(struct charlcd *lcd);
void charlcd_poke(struct charlcd *lcd);
void (*backlight)(struct charlcd *lcd, enum charlcd_onoff on);
int (*print)(struct charlcd *lcd, int c);
int (*gotoxy)(struct charlcd *lcd, unsigned int x, unsigned int y);
int (*home)(struct charlcd *lcd);
int (*clear_display)(struct charlcd *lcd);
int (*init_display)(struct charlcd *lcd);
int (*shift_cursor)(struct charlcd *lcd, enum charlcd_shift_dir dir);
int (*shift_display)(struct charlcd *lcd, enum charlcd_shift_dir dir);
int (*display)(struct charlcd *lcd, enum charlcd_onoff on);
int (*cursor)(struct charlcd *lcd, enum charlcd_onoff on);
int (*blink)(struct charlcd *lcd, enum charlcd_onoff on);
int (*fontsize)(struct charlcd *lcd, enum charlcd_fontsize size);
int (*lines)(struct charlcd *lcd, enum charlcd_lines lines);
int (*redefine_char)(struct charlcd *lcd, char *esc);
void charlcd_backlight(struct charlcd *lcd, enum charlcd_onoff on);
struct charlcd *charlcd_alloc(unsigned int drvdata_size);
struct charlcd *lcd;
struct charlcd *lcd = platform_get_drvdata(pdev);
static void hd44780_backlight(struct charlcd *lcd, enum charlcd_onoff on)
int hd44780_common_shift_cursor(struct charlcd *lcd, enum charlcd_shift_dir dir)
int hd44780_common_shift_display(struct charlcd *lcd,
int hd44780_common_display(struct charlcd *lcd, enum charlcd_onoff on)
int hd44780_common_cursor(struct charlcd *lcd, enum charlcd_onoff on)
int hd44780_common_blink(struct charlcd *lcd, enum charlcd_onoff on)
int hd44780_common_fontsize(struct charlcd *lcd, enum charlcd_fontsize size)
int hd44780_common_lines(struct charlcd *lcd, enum charlcd_lines lines)
int hd44780_common_redefine_char(struct charlcd *lcd, char *esc)
struct charlcd *hd44780_common_alloc(void)
struct charlcd *lcd;
void hd44780_common_free(struct charlcd *lcd)
int hd44780_common_print(struct charlcd *lcd, int c)
int hd44780_common_gotoxy(struct charlcd *lcd, unsigned int x, unsigned int y)
int hd44780_common_home(struct charlcd *lcd)
int hd44780_common_clear_display(struct charlcd *lcd)
int hd44780_common_init_display(struct charlcd *lcd)
int hd44780_common_print(struct charlcd *lcd, int c);
int hd44780_common_gotoxy(struct charlcd *lcd, unsigned int x, unsigned int y);
int hd44780_common_home(struct charlcd *lcd);
int hd44780_common_clear_display(struct charlcd *lcd);
int hd44780_common_init_display(struct charlcd *lcd);
int hd44780_common_shift_cursor(struct charlcd *lcd,
int hd44780_common_shift_display(struct charlcd *lcd,
int hd44780_common_display(struct charlcd *lcd, enum charlcd_onoff on);
int hd44780_common_cursor(struct charlcd *lcd, enum charlcd_onoff on);
int hd44780_common_blink(struct charlcd *lcd, enum charlcd_onoff on);
int hd44780_common_fontsize(struct charlcd *lcd, enum charlcd_fontsize size);
int hd44780_common_lines(struct charlcd *lcd, enum charlcd_lines lines);
int hd44780_common_redefine_char(struct charlcd *lcd, char *esc);
struct charlcd *hd44780_common_alloc(void);
void hd44780_common_free(struct charlcd *lcd);
static int lcd2s_gotoxy(struct charlcd *lcd, unsigned int x, unsigned int y)
static int lcd2s_home(struct charlcd *lcd)
static int lcd2s_init_display(struct charlcd *lcd)
static int lcd2s_shift_cursor(struct charlcd *lcd, enum charlcd_shift_dir dir)
static int lcd2s_shift_display(struct charlcd *lcd, enum charlcd_shift_dir dir)
static void lcd2s_backlight(struct charlcd *lcd, enum charlcd_onoff on)
static int lcd2s_display(struct charlcd *lcd, enum charlcd_onoff on)
static int lcd2s_cursor(struct charlcd *lcd, enum charlcd_onoff on)
static int lcd2s_blink(struct charlcd *lcd, enum charlcd_onoff on)
static int lcd2s_fontsize(struct charlcd *lcd, enum charlcd_fontsize size)
static int lcd2s_lines(struct charlcd *lcd, enum charlcd_lines lines)
static int lcd2s_redefine_char(struct charlcd *lcd, char *esc)
static int lcd2s_clear_display(struct charlcd *lcd)
struct charlcd *lcd;
lcd2s->charlcd = lcd;
err = charlcd_register(lcd2s->charlcd);
charlcd_free(lcd2s->charlcd);
charlcd_unregister(lcd2s->charlcd);
charlcd_free(lcd2s->charlcd);
struct charlcd *charlcd;
static int lcd2s_print(struct charlcd *lcd, int c)
lcd.charlcd = charlcd;
charlcd_poke(lcd.charlcd);
if (!lcd.charlcd || charlcd_register(lcd.charlcd))
charlcd_unregister(lcd.charlcd);
hd44780_common_free(lcd.charlcd);
lcd.charlcd = NULL;
charlcd_unregister(lcd.charlcd);
hd44780_common_free(lcd.charlcd);
lcd.charlcd = NULL;
struct charlcd *charlcd;
static void lcd_backlight(struct charlcd *charlcd, enum charlcd_onoff on)
struct charlcd *charlcd;
charlcd = hd44780_common_alloc();
if (!charlcd)
hdc = charlcd->drvdata;
charlcd->height = lcd_height;
charlcd->width = lcd_width;
charlcd->width = 40;
charlcd->height = 2;
charlcd->width = 16;
charlcd->height = 2;
charlcd->width = 16;
charlcd->height = 2;
charlcd->width = 16;
charlcd->height = 2;
charlcd->height = lcd_height;
charlcd->width = lcd_width;
if (charlcd->width <= 0)
charlcd->width = DEFAULT_LCD_WIDTH;
if (charlcd->height <= 0)
charlcd->height = DEFAULT_LCD_HEIGHT;
charlcd->ops = &charlcd_ops;
charlcd->ops = &charlcd_ops;
charlcd->ops = &charlcd_ops;
charlcd->char_conv = lcd_char_conv_ks0074;
charlcd->char_conv = NULL;