#include <linux/kernel.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/property.h>
#include <linux/slab.h>
#include <linux/i2c.h>
#include <linux/delay.h>
#include "charlcd.h"
#define LCD2S_CMD_CUR_MOVES_FWD …
#define LCD2S_CMD_CUR_BLINK_OFF …
#define LCD2S_CMD_CUR_UL_OFF …
#define LCD2S_CMD_DISPLAY_OFF …
#define LCD2S_CMD_CUR_BLINK_ON …
#define LCD2S_CMD_CUR_UL_ON …
#define LCD2S_CMD_DISPLAY_ON …
#define LCD2S_CMD_BACKLIGHT_OFF …
#define LCD2S_CMD_BACKLIGHT_ON …
#define LCD2S_CMD_WRITE …
#define LCD2S_CMD_MOV_CUR_RIGHT …
#define LCD2S_CMD_MOV_CUR_LEFT …
#define LCD2S_CMD_SHIFT_RIGHT …
#define LCD2S_CMD_SHIFT_LEFT …
#define LCD2S_CMD_SHIFT_UP …
#define LCD2S_CMD_SHIFT_DOWN …
#define LCD2S_CMD_CUR_ADDR …
#define LCD2S_CMD_CUR_POS …
#define LCD2S_CMD_CUR_RESET …
#define LCD2S_CMD_CLEAR …
#define LCD2S_CMD_DEF_CUSTOM_CHAR …
#define LCD2S_CMD_READ_STATUS …
#define LCD2S_CHARACTER_SIZE …
#define LCD2S_STATUS_BUF_MASK …
struct lcd2s_data { … };
static s32 lcd2s_wait_buf_free(const struct i2c_client *client, int count)
{ … }
static int lcd2s_i2c_master_send(const struct i2c_client *client,
const char *buf, int count)
{ … }
static int lcd2s_i2c_smbus_write_byte(const struct i2c_client *client, u8 value)
{ … }
static int lcd2s_print(struct charlcd *lcd, int c)
{ … }
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)
{ … }
static const struct charlcd_ops lcd2s_ops = …;
static int lcd2s_i2c_probe(struct i2c_client *i2c)
{ … }
static void lcd2s_i2c_remove(struct i2c_client *i2c)
{ … }
static const struct i2c_device_id lcd2s_i2c_id[] = …;
MODULE_DEVICE_TABLE(i2c, lcd2s_i2c_id);
static const struct of_device_id lcd2s_of_table[] = …;
MODULE_DEVICE_TABLE(of, lcd2s_of_table);
static struct i2c_driver lcd2s_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;