linux/drivers/gpu/drm/rockchip/rockchip_lvds.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) Fuzhou Rockchip Electronics Co.Ltd
 * Author:
 *      Mark Yao <[email protected]>
 *      Sandy Huang <[email protected]>
 */

#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 - rockchip lvds Soc private data
 * @probe: LVDS platform probe function
 * @helper_funcs: LVDS connector helper functions
 */
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 =;