#include <linux/delay.h>
#include <linux/module.h>
#include <linux/regulator/consumer.h>
#include <linux/spi/spi.h>
#include <drm/drm_connector.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
#define TPO_R02_MODE(x) …
#define TPO_R02_MODE_800x480 …
#define TPO_R02_NCLK_RISING …
#define TPO_R02_HSYNC_HIGH …
#define TPO_R02_VSYNC_HIGH …
#define TPO_R03_NSTANDBY …
#define TPO_R03_EN_CP_CLK …
#define TPO_R03_EN_VGL_PUMP …
#define TPO_R03_EN_PWM …
#define TPO_R03_DRIVING_CAP_100 …
#define TPO_R03_EN_PRE_CHARGE …
#define TPO_R03_SOFTWARE_CTL …
#define TPO_R04_NFLIP_H …
#define TPO_R04_NFLIP_V …
#define TPO_R04_CP_CLK_FREQ_1H …
#define TPO_R04_VGL_FREQ_1H …
#define TPO_R03_VAL_NORMAL …
#define TPO_R03_VAL_STANDBY …
static const u16 td043mtea1_def_gamma[12] = …;
struct td043mtea1_panel { … };
#define to_td043mtea1_device(p) …
static int td043mtea1_write(struct td043mtea1_panel *lcd, u8 addr, u8 value)
{ … }
static void td043mtea1_write_gamma(struct td043mtea1_panel *lcd)
{ … }
static int td043mtea1_write_mirror(struct td043mtea1_panel *lcd)
{ … }
static int td043mtea1_power_on(struct td043mtea1_panel *lcd)
{ … }
static void td043mtea1_power_off(struct td043mtea1_panel *lcd)
{ … }
static ssize_t vmirror_show(struct device *dev, struct device_attribute *attr,
char *buf)
{ … }
static ssize_t vmirror_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{ … }
static ssize_t mode_show(struct device *dev, struct device_attribute *attr,
char *buf)
{ … }
static ssize_t mode_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{ … }
static ssize_t gamma_show(struct device *dev, struct device_attribute *attr,
char *buf)
{ … }
static ssize_t gamma_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{ … }
static DEVICE_ATTR_RW(vmirror);
static DEVICE_ATTR_RW(mode);
static DEVICE_ATTR_RW(gamma);
static struct attribute *td043mtea1_attrs[] = …;
static const struct attribute_group td043mtea1_attr_group = …;
static int td043mtea1_unprepare(struct drm_panel *panel)
{ … }
static int td043mtea1_prepare(struct drm_panel *panel)
{ … }
static const struct drm_display_mode td043mtea1_mode = …;
static int td043mtea1_get_modes(struct drm_panel *panel,
struct drm_connector *connector)
{ … }
static const struct drm_panel_funcs td043mtea1_funcs = …;
static int __maybe_unused td043mtea1_suspend(struct device *dev)
{ … }
static int __maybe_unused td043mtea1_resume(struct device *dev)
{ … }
static SIMPLE_DEV_PM_OPS(td043mtea1_pm_ops, td043mtea1_suspend,
td043mtea1_resume);
static int td043mtea1_probe(struct spi_device *spi)
{ … }
static void td043mtea1_remove(struct spi_device *spi)
{ … }
static const struct of_device_id td043mtea1_of_match[] = …;
MODULE_DEVICE_TABLE(of, td043mtea1_of_match);
static const struct spi_device_id td043mtea1_ids[] = …;
MODULE_DEVICE_TABLE(spi, td043mtea1_ids);
static struct spi_driver td043mtea1_driver = …;
module_spi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;