#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/regulator/consumer.h>
#include <video/mipi_display.h>
#include <drm/drm_crtc.h>
#include <drm/drm_device.h>
#include <drm/drm_mipi_dsi.h>
#include <drm/drm_modes.h>
#include <drm/drm_panel.h>
struct innolux_panel;
struct panel_desc { … };
struct innolux_panel { … };
static inline struct innolux_panel *to_innolux_panel(struct drm_panel *panel)
{ … }
static int innolux_panel_unprepare(struct drm_panel *panel)
{ … }
static int innolux_panel_prepare(struct drm_panel *panel)
{ … }
static const char * const innolux_p079zca_supply_names[] = …;
static const struct drm_display_mode innolux_p079zca_mode = …;
static const struct panel_desc innolux_p079zca_panel_desc = …;
static const char * const innolux_p097pfg_supply_names[] = …;
static const struct drm_display_mode innolux_p097pfg_mode = …;
static void innolux_panel_write_multi(struct mipi_dsi_multi_context *ctx,
const void *payload, size_t size)
{ … }
#define innolux_panel_init_cmd_multi(ctx, seq...) …
#define innolux_panel_switch_page(ctx, page) …
static int innolux_p097pfg_init(struct innolux_panel *innolux)
{ … }
static const struct panel_desc innolux_p097pfg_panel_desc = …;
static int innolux_panel_get_modes(struct drm_panel *panel,
struct drm_connector *connector)
{ … }
static const struct drm_panel_funcs innolux_panel_funcs = …;
static const struct of_device_id innolux_of_match[] = …;
MODULE_DEVICE_TABLE(of, innolux_of_match);
static int innolux_panel_add(struct mipi_dsi_device *dsi,
const struct panel_desc *desc)
{ … }
static void innolux_panel_del(struct innolux_panel *innolux)
{ … }
static int innolux_panel_probe(struct mipi_dsi_device *dsi)
{ … }
static void innolux_panel_remove(struct mipi_dsi_device *dsi)
{ … }
static struct mipi_dsi_driver innolux_panel_driver = …;
module_mipi_dsi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;