#include <linux/backlight.h>
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/pm.h>
#include <linux/regulator/consumer.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_bridge.h>
#include <drm/drm_crtc.h>
#include <drm/drm_of.h>
#include <drm/drm_panel.h>
#include <drm/drm_print.h>
#include <drm/drm_probe_helper.h>
#define PS8622_MAX_BRIGHTNESS …
#define PS8622_POWER_RISE_T1_MIN_US …
#define PS8622_POWER_RISE_T1_MAX_US …
#define PS8622_RST_HIGH_T2_MIN_US …
#define PS8622_RST_HIGH_T2_MAX_US …
#define PS8622_PWMO_END_T12_MS …
#define PS8622_POWER_FALL_T16_MAX_US …
#define PS8622_POWER_OFF_T17_MS …
#if ((PS8622_RST_HIGH_T2_MIN_US + PS8622_POWER_RISE_T1_MAX_US) > \
(PS8622_RST_HIGH_T2_MAX_US + PS8622_POWER_RISE_T1_MIN_US))
#error "T2.min + T1.max must be less than T2.max + T1.min"
#endif
struct ps8622_bridge { … };
static inline struct ps8622_bridge *
bridge_to_ps8622(struct drm_bridge *bridge)
{ … }
static int ps8622_set(struct i2c_client *client, u8 page, u8 reg, u8 val)
{ … }
static int ps8622_send_config(struct ps8622_bridge *ps8622)
{ … }
static int ps8622_backlight_update(struct backlight_device *bl)
{ … }
static const struct backlight_ops ps8622_backlight_ops = …;
static void ps8622_pre_enable(struct drm_bridge *bridge)
{ … }
static void ps8622_disable(struct drm_bridge *bridge)
{ … }
static void ps8622_post_disable(struct drm_bridge *bridge)
{ … }
static int ps8622_attach(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
{ … }
static const struct drm_bridge_funcs ps8622_bridge_funcs = …;
static const struct of_device_id ps8622_devices[] = …;
MODULE_DEVICE_TABLE(of, ps8622_devices);
static int ps8622_probe(struct i2c_client *client)
{ … }
static void ps8622_remove(struct i2c_client *client)
{ … }
static const struct i2c_device_id ps8622_i2c_table[] = …;
MODULE_DEVICE_TABLE(i2c, ps8622_i2c_table);
static struct i2c_driver ps8622_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;