#include <linux/clk.h>
#include <linux/component.h>
#include <linux/mfd/syscon.h>
#include <linux/of_graph.h>
#include <linux/phy/phy.h>
#include <linux/pinctrl/devinfo.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/regmap.h>
#include <linux/reset.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_bridge.h>
#include <drm/drm_bridge_connector.h>
#include <drm/drm_of.h>
#include <drm/drm_panel.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_simple_kms_helper.h>
#include "rockchip_drm_drv.h"
#include "rockchip_lvds.h"
#define DISPLAY_OUTPUT_RGB …
#define DISPLAY_OUTPUT_LVDS …
#define DISPLAY_OUTPUT_DUAL_LVDS …
struct rockchip_lvds;
struct rockchip_lvds_soc_data { … };
struct rockchip_lvds { … };
static inline struct rockchip_lvds *connector_to_lvds(struct drm_connector *connector)
{ … }
static inline struct rockchip_lvds *encoder_to_lvds(struct drm_encoder *encoder)
{ … }
static inline void rk3288_writel(struct rockchip_lvds *lvds, u32 offset,
u32 val)
{ … }
static inline int rockchip_lvds_name_to_format(const char *s)
{ … }
static inline int rockchip_lvds_name_to_output(const char *s)
{ … }
static const struct drm_connector_funcs rockchip_lvds_connector_funcs = …;
static int rockchip_lvds_connector_get_modes(struct drm_connector *connector)
{ … }
static const
struct drm_connector_helper_funcs rockchip_lvds_connector_helper_funcs = …;
static int
rockchip_lvds_encoder_atomic_check(struct drm_encoder *encoder,
struct drm_crtc_state *crtc_state,
struct drm_connector_state *conn_state)
{ … }
static int rk3288_lvds_poweron(struct rockchip_lvds *lvds)
{ … }
static void rk3288_lvds_poweroff(struct rockchip_lvds *lvds)
{ … }
static int rk3288_lvds_grf_config(struct drm_encoder *encoder,
struct drm_display_mode *mode)
{ … }
static int rk3288_lvds_set_vop_source(struct rockchip_lvds *lvds,
struct drm_encoder *encoder)
{ … }
static void rk3288_lvds_encoder_enable(struct drm_encoder *encoder)
{ … }
static void rk3288_lvds_encoder_disable(struct drm_encoder *encoder)
{ … }
static int px30_lvds_poweron(struct rockchip_lvds *lvds)
{ … }
static void px30_lvds_poweroff(struct rockchip_lvds *lvds)
{ … }
static int px30_lvds_grf_config(struct drm_encoder *encoder,
struct drm_display_mode *mode)
{ … }
static int px30_lvds_set_vop_source(struct rockchip_lvds *lvds,
struct drm_encoder *encoder)
{ … }
static void px30_lvds_encoder_enable(struct drm_encoder *encoder)
{ … }
static void px30_lvds_encoder_disable(struct drm_encoder *encoder)
{ … }
static const
struct drm_encoder_helper_funcs rk3288_lvds_encoder_helper_funcs = …;
static const
struct drm_encoder_helper_funcs px30_lvds_encoder_helper_funcs = …;
static int rk3288_lvds_probe(struct platform_device *pdev,
struct rockchip_lvds *lvds)
{ … }
static int px30_lvds_probe(struct platform_device *pdev,
struct rockchip_lvds *lvds)
{ … }
static const struct rockchip_lvds_soc_data rk3288_lvds_data = …;
static const struct rockchip_lvds_soc_data px30_lvds_data = …;
static const struct of_device_id rockchip_lvds_dt_ids[] = …;
MODULE_DEVICE_TABLE(of, rockchip_lvds_dt_ids);
static int rockchip_lvds_bind(struct device *dev, struct device *master,
void *data)
{ … }
static void rockchip_lvds_unbind(struct device *dev, struct device *master,
void *data)
{ … }
static const struct component_ops rockchip_lvds_component_ops = …;
static int rockchip_lvds_probe(struct platform_device *pdev)
{ … }
static void rockchip_lvds_remove(struct platform_device *pdev)
{ … }
struct platform_driver rockchip_lvds_driver = …;