linux/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Toppoly TD028TTEC1 Panel Driver
 *
 * Copyright (C) 2019 Texas Instruments Incorporated
 *
 * Based on the omapdrm-specific panel-tpo-td028ttec1 driver
 *
 * Copyright (C) 2008 Nokia Corporation
 * Author: Tomi Valkeinen <[email protected]>
 *
 * Neo 1973 code (jbt6k74.c):
 * Copyright (C) 2006-2007 OpenMoko, Inc.
 * Author: Harald Welte <[email protected]>
 *
 * Ported and adapted from Neo 1973 U-Boot by:
 * H. Nikolaus Schaller <[email protected]>
 */

#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)

/*
 * noinline_for_stack so we don't get multiple copies of tx_buf
 * on the stack in case of gcc-plugin-structleak
 */
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();