#include <linux/gpio/consumer.h>
#include <linux/media-bus-format.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_graph.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_bridge.h>
#include <drm/drm_of.h>
#include <drm/drm_panel.h>
struct lvds_codec { … };
static inline struct lvds_codec *to_lvds_codec(struct drm_bridge *bridge)
{ … }
static int lvds_codec_attach(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
{ … }
static void lvds_codec_enable(struct drm_bridge *bridge)
{ … }
static void lvds_codec_disable(struct drm_bridge *bridge)
{ … }
#define MAX_INPUT_SEL_FORMATS …
static u32 *
lvds_codec_atomic_get_input_bus_fmts(struct drm_bridge *bridge,
struct drm_bridge_state *bridge_state,
struct drm_crtc_state *crtc_state,
struct drm_connector_state *conn_state,
u32 output_fmt,
unsigned int *num_input_fmts)
{ … }
static const struct drm_bridge_funcs funcs = …;
static int lvds_codec_probe(struct platform_device *pdev)
{ … }
static void lvds_codec_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id lvds_codec_match[] = …;
MODULE_DEVICE_TABLE(of, lvds_codec_match);
static struct platform_driver lvds_codec_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;