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

// SPDX-License-Identifier: GPL-2.0+
/*
 * Toppoly TD043MTEA1 Panel Driver
 *
 * Copyright (C) 2019 Texas Instruments Incorporated
 *
 * Based on the omapdrm-specific panel-tpo-td043mtea1 driver
 *
 * Author: Gražvydas Ignotas <[email protected]>
 */

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

/* -----------------------------------------------------------------------------
 * Hardware Access
 */

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)
{}

/* -----------------------------------------------------------------------------
 * sysfs
 */

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 =;

/* -----------------------------------------------------------------------------
 * Panel Operations
 */

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 =;

/* -----------------------------------------------------------------------------
 * Power Management, Probe and Remove
 */

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();