1969325a2SAndy Yan /* SPDX-License-Identifier: GPL-2.0-or-later */ 2969325a2SAndy Yan /* 3969325a2SAndy Yan * Copyright (c) 2025 Rockchip Electronics Co., Ltd. 4969325a2SAndy Yan */ 5969325a2SAndy Yan 6969325a2SAndy Yan #ifndef __INNO_HDMI__ 7969325a2SAndy Yan #define __INNO_HDMI__ 8969325a2SAndy Yan 9*a8bdd931SJani Nikula #include <linux/types.h> 10*a8bdd931SJani Nikula 11969325a2SAndy Yan struct device; 12969325a2SAndy Yan struct drm_encoder; 13969325a2SAndy Yan struct drm_display_mode; 14969325a2SAndy Yan struct inno_hdmi; 15969325a2SAndy Yan 16969325a2SAndy Yan struct inno_hdmi_plat_ops { 17969325a2SAndy Yan void (*enable)(struct device *pdev, struct drm_display_mode *mode); 18969325a2SAndy Yan }; 19969325a2SAndy Yan 20969325a2SAndy Yan struct inno_hdmi_phy_config { 21969325a2SAndy Yan unsigned long pixelclock; 22969325a2SAndy Yan u8 pre_emphasis; 23969325a2SAndy Yan u8 voltage_level_control; 24969325a2SAndy Yan }; 25969325a2SAndy Yan 26969325a2SAndy Yan struct inno_hdmi_plat_data { 27969325a2SAndy Yan const struct inno_hdmi_plat_ops *ops; 28969325a2SAndy Yan struct inno_hdmi_phy_config *phy_configs; 29969325a2SAndy Yan struct inno_hdmi_phy_config *default_phy_config; 30969325a2SAndy Yan }; 31969325a2SAndy Yan 32969325a2SAndy Yan struct inno_hdmi *inno_hdmi_bind(struct device *pdev, 33969325a2SAndy Yan struct drm_encoder *encoder, 34969325a2SAndy Yan const struct inno_hdmi_plat_data *plat_data); 35969325a2SAndy Yan #endif /* __INNO_HDMI__ */ 36