summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/hisilicon/hibmc/dp/dp_reg.h
blob: 394b1e933c3ae70b33fb7154dbb4027385ceb64b (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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Copyright (c) 2024 Hisilicon Limited. */

#ifndef DP_REG_H
#define DP_REG_H

#define HIBMC_DP_AUX_CMD_ADDR			0x50

#define HIBMC_DP_AUX_WR_DATA0			0x54
#define HIBMC_DP_AUX_WR_DATA1			0x58
#define HIBMC_DP_AUX_WR_DATA2			0x5c
#define HIBMC_DP_AUX_WR_DATA3			0x60
#define HIBMC_DP_AUX_RD_DATA0			0x64

#define HIBMC_DP_AUX_REQ			0x74
#define HIBMC_DP_CFG_AUX_REQ			BIT(0)
#define HIBMC_DP_CFG_AUX_SYNC_LEN_SEL		BIT(1)
#define HIBMC_DP_CFG_AUX_TIMER_TIMEOUT		BIT(2)
#define HIBMC_DP_CFG_AUX_MIN_PULSE_NUM		GENMASK(13, 9)

#define HIBMC_DP_AUX_STATUS			0x78
#define HIBMC_DP_CFG_AUX_TIMEOUT		BIT(0)
#define HIBMC_DP_CFG_AUX_STATUS			GENMASK(11, 4)
#define HIBMC_DP_CFG_AUX_READY_DATA_BYTE	GENMASK(16, 12)
#define HIBMC_DP_CFG_AUX			GENMASK(24, 17)

#define HIBMC_DP_PHYIF_CTRL0			0xa0
#define HIBMC_DP_CFG_SCRAMBLE_EN		BIT(0)
#define HIBMC_DP_CFG_PAT_SEL			GENMASK(7, 4)
#define HIBMC_DP_CFG_LANE_DATA_EN		GENMASK(11, 8)

#define HIBMC_DP_VIDEO_CTRL			0x100
#define HIBMC_DP_CFG_STREAM_RGB_ENABLE		BIT(1)
#define HIBMC_DP_CFG_STREAM_VIDEO_MAPPING	GENMASK(5, 2)
#define HIBMC_DP_CFG_STREAM_FRAME_MODE		BIT(6)
#define HIBMC_DP_CFG_STREAM_HSYNC_POLARITY	BIT(7)
#define HIBMC_DP_CFG_STREAM_VSYNC_POLARITY	BIT(8)

#define HIBMC_DP_VIDEO_CONFIG0			0x104
#define HIBMC_DP_CFG_STREAM_HACTIVE		GENMASK(31, 16)
#define HIBMC_DP_CFG_STREAM_HBLANK		GENMASK(15, 0)

#define HIBMC_DP_VIDEO_CONFIG1			0x108
#define HIBMC_DP_CFG_STREAM_VACTIVE		GENMASK(31, 16)
#define HIBMC_DP_CFG_STREAM_VBLANK		GENMASK(15, 0)

#define HIBMC_DP_VIDEO_CONFIG2			0x10c
#define HIBMC_DP_CFG_STREAM_HSYNC_WIDTH		GENMASK(15, 0)

#define HIBMC_DP_VIDEO_CONFIG3			0x110
#define HIBMC_DP_CFG_STREAM_VSYNC_WIDTH		GENMASK(15, 0)
#define HIBMC_DP_CFG_STREAM_VFRONT_PORCH	GENMASK(31, 16)

#define HIBMC_DP_VIDEO_PACKET			0x114
#define HIBMC_DP_CFG_STREAM_TU_SYMBOL_SIZE	GENMASK(5, 0)
#define HIBMC_DP_CFG_STREAM_TU_SYMBOL_FRAC_SIZE	GENMASK(9, 6)
#define HIBMC_DP_CFG_STREAM_SYNC_CALIBRATION	GENMASK(31, 20)

#define HIBMC_DP_VIDEO_MSA0			0x118
#define HIBMC_DP_CFG_STREAM_VSTART		GENMASK(31, 16)
#define HIBMC_DP_CFG_STREAM_HSTART		GENMASK(15, 0)

#define HIBMC_DP_VIDEO_MSA1			0x11c
#define HIBMC_DP_VIDEO_MSA2			0x120

#define HIBMC_DP_VIDEO_HORIZONTAL_SIZE		0X124
#define HIBMC_DP_CFG_STREAM_HTOTAL_SIZE		GENMASK(31, 16)
#define HIBMC_DP_CFG_STREAM_HBLANK_SIZE		GENMASK(15, 0)

#define HIBMC_DP_COLOR_BAR_CTRL			0x260
#define HIBMC_DP_COLOR_BAR_CTRL1		0x264

#define HIBMC_DP_TIMING_GEN_CONFIG0		0x26c
#define HIBMC_DP_CFG_TIMING_GEN0_HACTIVE	GENMASK(31, 16)
#define HIBMC_DP_CFG_TIMING_GEN0_HBLANK		GENMASK(15, 0)

#define HIBMC_DP_TIMING_GEN_CONFIG2		0x274
#define HIBMC_DP_CFG_TIMING_GEN0_VACTIVE	GENMASK(31, 16)
#define HIBMC_DP_CFG_TIMING_GEN0_VBLANK		GENMASK(15, 0)

#define HIBMC_DP_TIMING_GEN_CONFIG3		0x278
#define HIBMC_DP_CFG_TIMING_GEN0_VFRONT_PORCH	GENMASK(31, 16)

#define HIBMC_DP_HDCP_CFG			0x600

#define HIBMC_DP_DPTX_RST_CTRL			0x700
#define HIBMC_DP_CFG_AUX_RST_N			BIT(4)

#define HIBMC_DP_DPTX_CLK_CTRL			0x704

#define HIBMC_DP_DPTX_GCTL0			0x708
#define HIBMC_DP_CFG_PHY_LANE_NUM		GENMASK(2, 1)

#define HIBMC_DP_INTR_ENABLE			0x720
#define HIBMC_DP_INTR_ORIGINAL_STATUS		0x728

#define HIBMC_DP_TIMING_MODEL_CTRL		0x884
#define HIBMC_DP_CFG_PIXEL_NUM_TIMING_MODE_SEL1	GENMASK(31, 16)

#define HIBMC_DP_TIMING_SYNC_CTRL		0xFF0

#define HIBMC_DP_INTSTAT			0x1e0724
#define HIBMC_DP_INTCLR				0x1e0728

/* dp serdes reg */
#define HIBMC_DP_HOST_OFFSET		0x10000
#define HIBMC_DP_LANE0_RATE_OFFSET	0x4
#define HIBMC_DP_LANE1_RATE_OFFSET	0xc
#define HIBMC_DP_LANE_STATUS_OFFSET	0x10
#define HIBMC_DP_PMA_LANE0_OFFSET	0x18
#define HIBMC_DP_PMA_LANE1_OFFSET	0x1c
#define HIBMC_DP_HOST_SERDES_CTRL	0x1f001c
#define HIBMC_DP_PMA_TXDEEMPH		GENMASK(18, 1)
#define DP_SERDES_DONE			0x3

/* dp serdes TX-Deempth Configuration */
#define DP_SERDES_VOL0_PRE0		0x280
#define DP_SERDES_VOL0_PRE1		0x2300
#define DP_SERDES_VOL0_PRE2		0x53c0
#define DP_SERDES_VOL0_PRE3		0x8400
#define DP_SERDES_VOL1_PRE0		0x380
#define DP_SERDES_VOL1_PRE1		0x3440
#define DP_SERDES_VOL1_PRE2		0x6480
#define DP_SERDES_VOL2_PRE0		0x4c1
#define DP_SERDES_VOL2_PRE1		0x4500
#define DP_SERDES_VOL3_PRE0		0x600
#define DP_SERDES_BW_8_1		0x3
#define DP_SERDES_BW_5_4		0x2
#define DP_SERDES_BW_2_7		0x1
#define DP_SERDES_BW_1_62		0x0

#endif