coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
dptx_hal.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef SOC_MEDIATEK_MT8195_DPTX_HAL_H
4 #define SOC_MEDIATEK_MT8195_DPTX_HAL_H
5 
6 #define AUX_CMD_I2C_R_MOT0 0x1
7 #define AUX_CMD_I2C_R 0x5
8 #define AUX_CMD_NATIVE_R 0x9
9 #define AUX_WAITREPLY_LPNUM 20000
10 
11 #define DP_AUX_I2C_WRITE 0x0
12 #define DP_AUX_I2C_READ 0x1
13 #define DP_AUX_I2C_WRITE_STATUS_UPDATE 0x2
14 #define DP_AUX_I2C_MOT 0x4
15 #define DP_AUX_NATIVE_WRITE 0x8
16 #define DP_AUX_NATIVE_READ 0x9
17 
18 #define DP_WRITE1BYTE(mtk_dp, reg, u8_val) \
19  mtk_dp_write_byte(mtk_dp, reg, u8_val, 0xff)
20 #define DP_WRITE2BYTE(mtk_dp, reg, u16_val) \
21  mtk_dp_mask(mtk_dp, reg, u16_val, 0xffff)
22 
23 enum {
24  DPTX_LANE0 = 0x0,
25  DPTX_LANE1 = 0x1,
26  DPTX_LANE2 = 0x2,
27  DPTX_LANE3 = 0x3,
29 };
30 
31 enum {
37 };
38 
39 enum {
49 };
50 
51 enum {
58 };
59 
60 bool dptx_hal_hpd_high(struct mtk_dp *mtk_dp);
61 bool dptx_hal_auxread_bytes(struct mtk_dp *mtk_dp, u8 cmd,
62  u32 dpcd_addr, size_t length, u8 *rx_buf);
63 bool dptx_hal_auxwrite_bytes(struct mtk_dp *mtk_dp, u8 cmd,
64  u32 dpcd_addr, size_t length, u8 *data);
65 bool dptx_hal_setswing_preemphasis(struct mtk_dp *mtk_dp, int lane_num,
66  int swing_value, int preemphasis);
70 void mtk_dp_mask(struct mtk_dp *mtk_dp, u32 offset, u32 val, u32 mask);
71 void mtk_dp_write(struct mtk_dp *mtk_dp, u32 offset, u32 val);
72 void dptx_hal_verify_clock(struct mtk_dp *mtk_dp);
75 void dptx_hal_ssc_en(struct mtk_dp *mtk_dp, bool enable);
76 void dptx_hal_hpd_int_en(struct mtk_dp *mtk_dp, bool enable);
78 void dptx_hal_phy_setting(struct mtk_dp *mtk_dp);
79 void dptx_hal_aux_setting(struct mtk_dp *mtk_dp);
81 void dptx_hal_set_txlane(struct mtk_dp *mtk_dp, int value);
82 void dptx_hal_phy_setidlepattern(struct mtk_dp *mtk_dp, bool enable);
83 void dptx_hal_phyd_reset(struct mtk_dp *mtk_dp);
85 void dptx_hal_set_ef_mode(struct mtk_dp *mtk_dp, bool enable);
86 void dptx_hal_setscramble(struct mtk_dp *mtk_dp, bool enable);
87 void dptx_hal_init_setting(struct mtk_dp *mtk_dp);
88 void dptx_hal_videomute(struct mtk_dp *mtk_dp, bool enable);
89 void dptx_hal_bypassmsa_en(struct mtk_dp *mtk_dp, bool enable);
90 void dptx_hal_overwrite_mn(struct mtk_dp *mtk_dp, bool enable,
91  u32 video_m, u32 video_n);
96 void dptx_hal_set_msa(struct mtk_dp *mtk_dp);
97 void dptx_hal_setmisc(struct mtk_dp *mtk_dp, u8 cmisc[2]);
99 void dptx_hal_set_color_format(struct mtk_dp *mtk_dp, u8 color_format);
100 void dptx_hal_set_txrate(struct mtk_dp *mtk_dp, int value);
101 void dptx_hal_analog_power_en(struct mtk_dp *mtk_dp, bool enable);
102 
103 #endif /* SOC_MEDIATEK_MT8195_DPTX_HAL_H */
pte_t value
Definition: mmu.c:91
static u32 addr
Definition: cirrus.c:14
void mtk_dp_write(struct mtk_dp *mtk_dp, u32 offset, u32 val)
Definition: dptx_hal.c:44
void dptx_hal_reset_swing_preemphasis(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:578
@ DP_COLOR_DEPTH_UNKNOWN
Definition: dptx_hal.h:57
@ DP_COLOR_DEPTH_6BIT
Definition: dptx_hal.h:52
@ DP_COLOR_DEPTH_8BIT
Definition: dptx_hal.h:53
@ DP_COLOR_DEPTH_12BIT
Definition: dptx_hal.h:55
@ DP_COLOR_DEPTH_16BIT
Definition: dptx_hal.h:56
@ DP_COLOR_DEPTH_10BIT
Definition: dptx_hal.h:54
void dptx_hal_set_txrate(struct mtk_dp *mtk_dp, int value)
Definition: dptx_hal.c:726
void dptx_hal_bypassmsa_en(struct mtk_dp *mtk_dp, bool enable)
Definition: dptx_hal.c:110
void dptx_hal_phy_setting(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:608
bool dptx_hal_auxread_bytes(struct mtk_dp *mtk_dp, u8 cmd, u32 dpcd_addr, size_t length, u8 *rx_buf)
Definition: dptx_hal.c:353
void dptx_hal_set_txtrainingpattern(struct mtk_dp *mtk_dp, int value)
Definition: dptx_hal.c:753
void dptx_hal_set_txlane(struct mtk_dp *mtk_dp, int value)
Definition: dptx_hal.c:707
void dptx_hal_analog_power_en(struct mtk_dp *mtk_dp, bool enable)
Definition: dptx_hal.c:810
void dptx_hal_overwrite_mn(struct mtk_dp *mtk_dp, bool enable, u32 video_m, u32 video_n)
Definition: dptx_hal.c:231
void mtk_dp_write_byte(struct mtk_dp *mtk_dp, u32 addr, u8 val, u32 mask)
Definition: dptx_hal.c:74
void dptx_hal_digital_swreset(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:693
void dptx_hal_init_setting(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:101
u8 dptx_hal_get_colorbpp(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:259
void dptx_hal_set_color_format(struct mtk_dp *mtk_dp, u8 color_format)
Definition: dptx_hal.c:171
bool dptx_hal_auxwrite_bytes(struct mtk_dp *mtk_dp, u8 cmd, u32 dpcd_addr, size_t length, u8 *data)
Definition: dptx_hal.c:467
void dptx_hal_verify_clock(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:87
bool dptx_hal_hpd_high(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:348
@ DPTX_LANE1
Definition: dptx_hal.h:25
@ DPTX_LANE0
Definition: dptx_hal.h:24
@ DPTX_LANE3
Definition: dptx_hal.h:27
@ DPTX_LANE2
Definition: dptx_hal.h:26
@ DPTX_LANE_MAX
Definition: dptx_hal.h:28
void dptx_hal_setmisc(struct mtk_dp *mtk_dp, u8 cmisc[2])
Definition: dptx_hal.c:225
void dptx_hal_ssc_en(struct mtk_dp *mtk_dp, bool enable)
Definition: dptx_hal.c:643
void dptx_hal_set_msa(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:116
void dptx_hal_phy_setidlepattern(struct mtk_dp *mtk_dp, bool enable)
Definition: dptx_hal.c:763
void dptx_hal_digital_setting(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:674
void dptx_hal_set_ef_mode(struct mtk_dp *mtk_dp, bool enable)
Definition: dptx_hal.c:769
@ DP_LINKRATE_HBR25
Definition: dptx_hal.h:35
@ DP_LINKRATE_HBR3
Definition: dptx_hal.h:36
@ DP_LINKRATE_HBR2
Definition: dptx_hal.h:34
@ DP_LINKRATE_RBR
Definition: dptx_hal.h:32
@ DP_LINKRATE_HBR
Definition: dptx_hal.h:33
void dptx_hal_aux_setting(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:657
void dptx_hal_settu_sramrd_start(struct mtk_dp *mtk_dp, u16 value)
Definition: dptx_hal.c:315
bool dptx_hal_setswing_preemphasis(struct mtk_dp *mtk_dp, int lane_num, int swing_value, int preemphasis)
Definition: dptx_hal.c:558
void dptx_hal_setscramble(struct mtk_dp *mtk_dp, bool enable)
Definition: dptx_hal.c:783
void dptx_hal_videomute(struct mtk_dp *mtk_dp, bool enable)
Definition: dptx_hal.c:794
void dptx_hal_hpd_int_en(struct mtk_dp *mtk_dp, bool enable)
Definition: dptx_hal.c:590
void dptx_hal_phyd_reset(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:700
void mtk_dp_mask(struct mtk_dp *mtk_dp, u32 offset, u32 val, u32 mask)
Definition: dptx_hal.c:57
@ DP_COLOR_FORMAT_DEFAULT
Definition: dptx_hal.h:47
@ DP_COLOR_FORMAT_RGB_444
Definition: dptx_hal.h:40
@ DP_COLOR_FORMAT_RAW
Definition: dptx_hal.h:45
@ DP_COLOR_FORMAT_YONLY
Definition: dptx_hal.h:44
@ DP_COLOR_FORMAT_UNKNOWN
Definition: dptx_hal.h:48
@ DP_COLOR_FORMAT_YUV_420
Definition: dptx_hal.h:43
@ DP_COLOR_FORMAT_YUV_444
Definition: dptx_hal.h:42
@ DP_COLOR_FORMAT_RESERVED
Definition: dptx_hal.h:46
@ DP_COLOR_FORMAT_YUV_422
Definition: dptx_hal.h:41
void dptx_hal_hpd_detect_setting(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:597
void dptx_hal_settu_setencoder(struct mtk_dp *mtk_dp)
Definition: dptx_hal.c:335
void dptx_hal_set_color_depth(struct mtk_dp *mtk_dp, u8 color_depth)
Definition: dptx_hal.c:196
void dptx_hal_setsdp_downcnt_init_inhblanking(struct mtk_dp *mtk_dp, u16 value)
Definition: dptx_hal.c:324
u32 mtk_dp_read(struct mtk_dp *mtk_dp, u32 offset)
Definition: dptx_hal.c:31
void dptx_hal_setsdp_downcnt_init(struct mtk_dp *mtk_dp, u16 value)
Definition: dptx_hal.c:330
color_depth
Definition: edp.h:577
static size_t offset
Definition: flashconsole.c:16
uint64_t length
Definition: fw_cfg_if.h:1
static const int mask[4]
Definition: gpio.c:308
uint32_t u32
Definition: stdint.h:51
uint16_t u16
Definition: stdint.h:48
uint8_t u8
Definition: stdint.h:45
Definition: dptx.h:48
u8 val
Definition: sys.c:300