blob: 86516815204f0c70cb628e818f9ced165ea2c703 [file] [log] [blame]
Donghwa Leeb73a88b2012-07-02 01:16:02 +00001/*
2 * Copyright (C) 2012 Samsung Electronics
3 *
4 * Author: Donghwa Lee <dh09.lee@samsung.com>
5 *
Wolfgang Denkbd8ec7e2013-10-07 13:07:26 +02006 * SPDX-License-Identifier: GPL-2.0+
Donghwa Leeb73a88b2012-07-02 01:16:02 +00007 */
8
9#ifndef _EXYNOS_EDP_LOWLEVEL_H
10#define _EXYNOS_EDP_LOWLEVEL_H
11
12void exynos_dp_enable_video_bist(unsigned int enable);
13void exynos_dp_enable_video_mute(unsigned int enable);
14void exynos_dp_reset(void);
15void exynos_dp_enable_sw_func(unsigned int enable);
16unsigned int exynos_dp_set_analog_power_down(unsigned int block, u32 enable);
17unsigned int exynos_dp_get_pll_lock_status(void);
18int exynos_dp_init_analog_func(void);
19void exynos_dp_init_hpd(void);
20void exynos_dp_init_aux(void);
21void exynos_dp_config_interrupt(void);
22unsigned int exynos_dp_get_plug_in_status(void);
23unsigned int exynos_dp_detect_hpd(void);
24unsigned int exynos_dp_start_aux_transaction(void);
25unsigned int exynos_dp_write_byte_to_dpcd(unsigned int reg_addr,
26 unsigned char data);
27unsigned int exynos_dp_read_byte_from_dpcd(unsigned int reg_addr,
28 unsigned char *data);
29unsigned int exynos_dp_write_bytes_to_dpcd(unsigned int reg_addr,
30 unsigned int count,
31 unsigned char data[]);
32unsigned int exynos_dp_read_bytes_from_dpcd( unsigned int reg_addr,
33 unsigned int count,
34 unsigned char data[]);
35int exynos_dp_select_i2c_device( unsigned int device_addr,
36 unsigned int reg_addr);
37int exynos_dp_read_byte_from_i2c(unsigned int device_addr,
38 unsigned int reg_addr, unsigned int *data);
39int exynos_dp_read_bytes_from_i2c(unsigned int device_addr,
40 unsigned int reg_addr, unsigned int count,
41 unsigned char edid[]);
42void exynos_dp_reset_macro(void);
43void exynos_dp_set_link_bandwidth(unsigned char bwtype);
44unsigned char exynos_dp_get_link_bandwidth(void);
45void exynos_dp_set_lane_count(unsigned char count);
46unsigned int exynos_dp_get_lane_count(void);
47unsigned char exynos_dp_get_lanex_pre_emphasis(unsigned char lanecnt);
48void exynos_dp_set_lane_pre_emphasis(unsigned int level,
49 unsigned char lanecnt);
50void exynos_dp_set_lanex_pre_emphasis(unsigned char request_val,
51 unsigned char lanecnt);
52void exynos_dp_set_training_pattern(unsigned int pattern);
53void exynos_dp_enable_enhanced_mode(unsigned char enable);
54void exynos_dp_enable_scrambling(unsigned int enable);
55int exynos_dp_init_video(void);
56void exynos_dp_config_video_slave_mode(struct edp_video_info *video_info);
57void exynos_dp_set_video_color_format(struct edp_video_info *video_info);
58int exynos_dp_config_video_bist(struct edp_device_info *edp_info);
59unsigned int exynos_dp_is_slave_video_stream_clock_on(void);
60void exynos_dp_set_video_cr_mn(unsigned int type, unsigned int m_value,
61 unsigned int n_value);
62void exynos_dp_set_video_timing_mode(unsigned int type);
63void exynos_dp_enable_video_master(unsigned int enable);
64void exynos_dp_start_video(void);
65unsigned int exynos_dp_is_video_stream_on(void);
Ajay Kumarca7c3e12013-02-21 23:53:04 +000066void exynos_dp_set_base_addr(void);
Donghwa Leeb73a88b2012-07-02 01:16:02 +000067
68#endif /* _EXYNOS_DP_LOWLEVEL_H */