#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/platform_device.h>
#include <linux/property.h>
#include <linux/slab.h>
#include "charlcd.h"
#include "hd44780_common.h"
enum hd44780_pin { … };
struct hd44780 { … };
static void hd44780_backlight(struct charlcd *lcd, enum charlcd_onoff on)
{ … }
static void hd44780_strobe_gpio(struct hd44780 *hd)
{ … }
static void hd44780_write_gpio8(struct hd44780 *hd, u8 val, unsigned int rs)
{ … }
static void hd44780_write_gpio4(struct hd44780 *hd, u8 val, unsigned int rs)
{ … }
static void hd44780_write_cmd_gpio8(struct hd44780_common *hdc, int cmd)
{ … }
static void hd44780_write_data_gpio8(struct hd44780_common *hdc, int data)
{ … }
static const struct charlcd_ops hd44780_ops_gpio8 = …;
static void hd44780_write_cmd_gpio4(struct hd44780_common *hdc, int cmd)
{ … }
static void hd44780_write_cmd_raw_gpio4(struct hd44780_common *hdc, int cmd)
{ … }
static void hd44780_write_data_gpio4(struct hd44780_common *hdc, int data)
{ … }
static const struct charlcd_ops hd44780_ops_gpio4 = …;
static int hd44780_probe(struct platform_device *pdev)
{ … }
static void hd44780_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id hd44780_of_match[] = …;
MODULE_DEVICE_TABLE(of, hd44780_of_match);
static struct platform_driver hd44780_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;