linux/drivers/gpu/drm/tiny/panel-mipi-dbi.c

// SPDX-License-Identifier: GPL-2.0
/*
 * DRM driver for MIPI DBI compatible display panels
 *
 * Copyright 2022 Noralf Trønnes
 */

#include <linux/backlight.h>
#include <linux/delay.h>
#include <linux/firmware.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/property.h>
#include <linux/regulator/consumer.h>
#include <linux/spi/spi.h>

#include <drm/drm_atomic_helper.h>
#include <drm/drm_drv.h>
#include <drm/drm_fbdev_dma.h>
#include <drm/drm_gem_atomic_helper.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_managed.h>
#include <drm/drm_mipi_dbi.h>
#include <drm/drm_modes.h>
#include <drm/drm_modeset_helper.h>

#include <video/mipi_display.h>

struct panel_mipi_dbi_format {};

static const struct panel_mipi_dbi_format panel_mipi_dbi_formats[] =;

static int panel_mipi_dbi_get_format(struct device *dev, u32 *formats, unsigned int *bpp)
{}

static const u8 panel_mipi_dbi_magic[15] =;

/*
 * The display controller configuration is stored in a firmware file.
 * The Device Tree 'compatible' property value with a '.bin' suffix is passed
 * to request_firmware() to fetch this file.
 */
struct panel_mipi_dbi_config {};

struct panel_mipi_dbi_commands {};

static struct panel_mipi_dbi_commands *
panel_mipi_dbi_check_commands(struct device *dev, const struct firmware *fw)
{}

static struct panel_mipi_dbi_commands *panel_mipi_dbi_commands_from_fw(struct device *dev)
{}

static void panel_mipi_dbi_commands_execute(struct mipi_dbi *dbi,
					    struct panel_mipi_dbi_commands *commands)
{}

static void panel_mipi_dbi_enable(struct drm_simple_display_pipe *pipe,
				  struct drm_crtc_state *crtc_state,
				  struct drm_plane_state *plane_state)
{}

static const struct drm_simple_display_pipe_funcs panel_mipi_dbi_pipe_funcs =;

DEFINE_DRM_GEM_DMA_FOPS(panel_mipi_dbi_fops);

static const struct drm_driver panel_mipi_dbi_driver =;

static int panel_mipi_dbi_get_mode(struct mipi_dbi_dev *dbidev, struct drm_display_mode *mode)
{}

static int panel_mipi_dbi_spi_probe(struct spi_device *spi)
{}

static void panel_mipi_dbi_spi_remove(struct spi_device *spi)
{}

static void panel_mipi_dbi_spi_shutdown(struct spi_device *spi)
{}

static int __maybe_unused panel_mipi_dbi_pm_suspend(struct device *dev)
{}

static int __maybe_unused panel_mipi_dbi_pm_resume(struct device *dev)
{}

static const struct dev_pm_ops panel_mipi_dbi_pm_ops =;

static const struct of_device_id panel_mipi_dbi_spi_of_match[] =;
MODULE_DEVICE_TABLE(of, panel_mipi_dbi_spi_of_match);

static const struct spi_device_id panel_mipi_dbi_spi_id[] =;
MODULE_DEVICE_TABLE(spi, panel_mipi_dbi_spi_id);

static struct spi_driver panel_mipi_dbi_spi_driver =;
module_spi_driver();

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_LICENSE();