1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
4 */
5
6#ifndef _DP_DISPLAY_H_
7#define _DP_DISPLAY_H_
8
9#include "dp_panel.h"
10#include <sound/hdmi-codec.h>
11#include "disp/msm_disp_snapshot.h"
12
13#define DP_MAX_PIXEL_CLK_KHZ	675000
14
15struct msm_dp {
16	struct drm_device *drm_dev;
17	struct platform_device *pdev;
18	struct device *codec_dev;
19	struct drm_bridge *bridge;
20	struct drm_connector *connector;
21	struct drm_bridge *next_bridge;
22	bool link_ready;
23	bool audio_enabled;
24	bool power_on;
25	unsigned int connector_type;
26	bool is_edp;
27	bool internal_hpd;
28
29	hdmi_codec_plugged_cb plugged_cb;
30
31	bool wide_bus_en;
32
33	struct dp_audio *dp_audio;
34	bool psr_supported;
35};
36
37int dp_display_set_plugged_cb(struct msm_dp *dp_display,
38		hdmi_codec_plugged_cb fn, struct device *codec_dev);
39int dp_display_get_modes(struct msm_dp *dp_display);
40bool dp_display_check_video_test(struct msm_dp *dp_display);
41int dp_display_get_test_bpp(struct msm_dp *dp_display);
42void dp_display_signal_audio_start(struct msm_dp *dp_display);
43void dp_display_signal_audio_complete(struct msm_dp *dp_display);
44void dp_display_set_psr(struct msm_dp *dp, bool enter);
45void dp_display_debugfs_init(struct msm_dp *dp_display, struct dentry *dentry, bool is_edp);
46
47#endif /* _DP_DISPLAY_H_ */
48