#include <linux/delay.h>
#include <linux/module.h>
#include <linux/spi/spi.h>
#include <drm/drm_connector.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
#define JBT_COMMAND …
#define JBT_DATA …
#define JBT_REG_SLEEP_IN …
#define JBT_REG_SLEEP_OUT …
#define JBT_REG_DISPLAY_OFF …
#define JBT_REG_DISPLAY_ON …
#define JBT_REG_RGB_FORMAT …
#define JBT_REG_QUAD_RATE …
#define JBT_REG_POWER_ON_OFF …
#define JBT_REG_BOOSTER_OP …
#define JBT_REG_BOOSTER_MODE …
#define JBT_REG_BOOSTER_FREQ …
#define JBT_REG_OPAMP_SYSCLK …
#define JBT_REG_VSC_VOLTAGE …
#define JBT_REG_VCOM_VOLTAGE …
#define JBT_REG_EXT_DISPL …
#define JBT_REG_OUTPUT_CONTROL …
#define JBT_REG_DCCLK_DCEV …
#define JBT_REG_DISPLAY_MODE1 …
#define JBT_REG_DISPLAY_MODE2 …
#define JBT_REG_DISPLAY_MODE …
#define JBT_REG_ASW_SLEW …
#define JBT_REG_DUMMY_DISPLAY …
#define JBT_REG_DRIVE_SYSTEM …
#define JBT_REG_SLEEP_OUT_FR_A …
#define JBT_REG_SLEEP_OUT_FR_B …
#define JBT_REG_SLEEP_OUT_FR_C …
#define JBT_REG_SLEEP_IN_LCCNT_D …
#define JBT_REG_SLEEP_IN_LCCNT_E …
#define JBT_REG_SLEEP_IN_LCCNT_F …
#define JBT_REG_SLEEP_IN_LCCNT_G …
#define JBT_REG_GAMMA1_FINE_1 …
#define JBT_REG_GAMMA1_FINE_2 …
#define JBT_REG_GAMMA1_INCLINATION …
#define JBT_REG_GAMMA1_BLUE_OFFSET …
#define JBT_REG_BLANK_CONTROL …
#define JBT_REG_BLANK_TH_TV …
#define JBT_REG_CKV_ON_OFF …
#define JBT_REG_CKV_1_2 …
#define JBT_REG_OEV_TIMING …
#define JBT_REG_ASW_TIMING_1 …
#define JBT_REG_ASW_TIMING_2 …
#define JBT_REG_HCLOCK_VGA …
#define JBT_REG_HCLOCK_QVGA …
struct td028ttec1_panel { … };
#define to_td028ttec1_device(p) …
static int noinline_for_stack
jbt_ret_write_0(struct td028ttec1_panel *lcd, u8 reg, int *err)
{ … }
static int noinline_for_stack
jbt_reg_write_1(struct td028ttec1_panel *lcd,
u8 reg, u8 data, int *err)
{ … }
static int noinline_for_stack
jbt_reg_write_2(struct td028ttec1_panel *lcd,
u8 reg, u16 data, int *err)
{ … }
static int td028ttec1_prepare(struct drm_panel *panel)
{ … }
static int td028ttec1_enable(struct drm_panel *panel)
{ … }
static int td028ttec1_disable(struct drm_panel *panel)
{ … }
static int td028ttec1_unprepare(struct drm_panel *panel)
{ … }
static const struct drm_display_mode td028ttec1_mode = …;
static int td028ttec1_get_modes(struct drm_panel *panel,
struct drm_connector *connector)
{ … }
static const struct drm_panel_funcs td028ttec1_funcs = …;
static int td028ttec1_probe(struct spi_device *spi)
{ … }
static void td028ttec1_remove(struct spi_device *spi)
{ … }
static const struct of_device_id td028ttec1_of_match[] = …;
MODULE_DEVICE_TABLE(of, td028ttec1_of_match);
static const struct spi_device_id td028ttec1_ids[] = …;
MODULE_DEVICE_TABLE(spi, td028ttec1_ids);
static struct spi_driver td028ttec1_driver = …;
module_spi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;