summaryrefslogtreecommitdiff
path: root/include/drm/bridge/inno_hdmi.h
blob: 5bbcaeea94e2a20fd0dc0ae0c6946eb5604bbaf6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
 */

#ifndef __INNO_HDMI__
#define __INNO_HDMI__

#include <linux/types.h>

struct device;
struct drm_encoder;
struct drm_display_mode;
struct inno_hdmi;

struct inno_hdmi_plat_ops {
	void (*enable)(struct device *pdev, struct drm_display_mode *mode);
};

struct inno_hdmi_phy_config {
	unsigned long pixelclock;
	u8 pre_emphasis;
	u8 voltage_level_control;
};

struct inno_hdmi_plat_data {
	const struct inno_hdmi_plat_ops *ops;
	struct inno_hdmi_phy_config *phy_configs;
	struct inno_hdmi_phy_config *default_phy_config;
};

struct inno_hdmi *inno_hdmi_bind(struct device *pdev,
				 struct drm_encoder *encoder,
				 const struct inno_hdmi_plat_data *plat_data);
#endif /* __INNO_HDMI__ */