#include <linux/backlight.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regulator/consumer.h>
#include <linux/spi/spi.h>
#include <video/mipi_display.h>
#include <video/of_videomode.h>
#include <video/videomode.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
#define MCS_MANPWR …
#define MCS_ELVSS_ON …
#define MCS_USER_SETTING …
#define MCS_DISPCTL …
#define MCS_POWER_CTRL …
#define MCS_GTCON …
#define MCS_PANEL_CONDITION …
#define MCS_GAMMA_SET1 …
#define MCS_GAMMA_CTRL …
static u8 const ld9040_gammas[25][22] = …;
struct ld9040 { … };
static inline struct ld9040 *panel_to_ld9040(struct drm_panel *panel)
{ … }
static int ld9040_clear_error(struct ld9040 *ctx)
{ … }
static int ld9040_spi_write_word(struct ld9040 *ctx, u16 data)
{ … }
static void ld9040_dcs_write(struct ld9040 *ctx, const u8 *data, size_t len)
{ … }
#define ld9040_dcs_write_seq_static(ctx, seq...) …
static void ld9040_brightness_set(struct ld9040 *ctx)
{ … }
static void ld9040_init(struct ld9040 *ctx)
{ … }
static int ld9040_power_on(struct ld9040 *ctx)
{ … }
static int ld9040_power_off(struct ld9040 *ctx)
{ … }
static int ld9040_disable(struct drm_panel *panel)
{ … }
static int ld9040_unprepare(struct drm_panel *panel)
{ … }
static int ld9040_prepare(struct drm_panel *panel)
{ … }
static int ld9040_enable(struct drm_panel *panel)
{ … }
static int ld9040_get_modes(struct drm_panel *panel,
struct drm_connector *connector)
{ … }
static const struct drm_panel_funcs ld9040_drm_funcs = …;
static int ld9040_parse_dt(struct ld9040 *ctx)
{ … }
static int ld9040_bl_update_status(struct backlight_device *dev)
{ … }
static const struct backlight_ops ld9040_bl_ops = …;
static const struct backlight_properties ld9040_bl_props = …;
static int ld9040_probe(struct spi_device *spi)
{ … }
static void ld9040_remove(struct spi_device *spi)
{ … }
static const struct of_device_id ld9040_of_match[] = …;
MODULE_DEVICE_TABLE(of, ld9040_of_match);
static const struct spi_device_id ld9040_ids[] = …;
MODULE_DEVICE_TABLE(spi, ld9040_ids);
static struct spi_driver ld9040_driver = …;
module_spi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;