3 #ifndef SOC_MEDIATEK_MT8195_DP_INTF_H
4 #define SOC_MEDIATEK_MT8195_DP_INTF_H
11 #define DPINTF_RET 0x04
13 #define RST_SEL BIT(16)
15 #define DPINTF_INTEN 0x08
16 #define INT_VSYNC_EN BIT(0)
17 #define INT_VDE_EN BIT(1)
18 #define INT_UNDERFLOW_EN BIT(2)
19 #define INT_TARGET_LINE_EN BIT(3)
21 #define DPINTF_INTSTA 0x0C
22 #define INT_VSYNC_STA BIT(0)
23 #define INT_VDE_STA BIT(1)
24 #define INT_UNDERFLOW_STA BIT(2)
25 #define INT_TARGET_LINE_STA BIT(3)
27 #define DPINTF_CON 0x10
28 #define BG_ENABLE BIT(0)
29 #define INTL_EN BIT(2)
30 #define TDFP_EN BIT(3)
31 #define VS_LODD_EN BIT(16)
32 #define VS_LEVEN_EN BIT(17)
33 #define VS_RODD_EN BIT(18)
34 #define VS_REVEN BIT(19)
35 #define FAKE_DE_LODD BIT(20)
36 #define FAKE_DE_LEVEN BIT(21)
37 #define FAKE_DE_RODD BIT(22)
38 #define FAKE_DE_REVEN BIT(23)
39 #define YUV422_EN BIT(24)
40 #define CLPF_EN BIT(25)
41 #define MATRIX_EN BIT(26)
42 #define INTERNAL_CG_EN BIT(27)
43 #define LOWPOWER_EN BIT(28)
44 #define INPUT_2P_EN BIT(29)
45 #define EXT_VSYNC_EN BIT(30)
47 #define DPINTF_OUTPUT_SETTING 0x14
48 #define PIXEL_SWAP BIT(0)
49 #define CH_SWAP BIT(1)
50 #define CH_SWAP_MASK (0x7 << 1)
51 #define SWAP_RGB (0x00 << 1)
52 #define SWAP_GBR (0x01 << 1)
53 #define SWAP_BRG (0x02 << 1)
54 #define SWAP_RBG (0x03 << 1)
55 #define SWAP_GRB (0x04 << 1)
56 #define SWAP_BGR (0x05 << 1)
60 #define DE_MASK BIT(8)
61 #define HS_MASK BIT(9)
62 #define VS_MASK BIT(10)
63 #define HSYNC_POL BIT(13)
64 #define VSYNC_POL BIT(14)
65 #define OUT_BIT BIT(16)
66 #define OUT_BIT_MASK (0x3 << 18)
67 #define OUT_BIT_8 (0x00 << 18)
68 #define OUT_BIT_10 (0x01 << 18)
69 #define OUT_BIT_12 (0x02 << 18)
70 #define OUT_BIT_16 (0x03 << 18)
72 #define DPINTF_SIZE 0x18
74 #define HSIZE_MASK (0xffff << 0)
76 #define VSIZE_MASK (0xffff << 16)
78 #define DPINTF_TGEN_HWIDTH 0x20
80 #define HPW_MASK (0xffff << 0)
82 #define DPINTF_TGEN_HPORCH 0x24
84 #define HBP_MASK (0xffff << 0)
86 #define HFP_MASK (0xffff << 16)
88 #define DPINTF_TGEN_VWIDTH 0x28
89 #define VSYNC_WIDTH_SHIFT 0
90 #define VSYNC_WIDTH_MASK (0xffff << 0)
91 #define VSYNC_HALF_LINE_SHIFT 16
92 #define VSYNC_HALF_LINE_MASK BIT(16)
95 #define DPINTF_TGEN_VPORCH 0x2C
96 #define VSYNC_BACK_PORCH_SHIFT 0
97 #define VSYNC_BACK_PORCH_MASK (0xffff << 0)
98 #define VSYNC_FRONT_PORCH_SHIFT 16
99 #define VSYNC_FRONT_PORCH_MASK (0xffff << 16)
101 #define DPINTF_BG_HCNTL 0x30
102 #define BG_RIGHT (0xffff << 0)
103 #define BG_LEFT (0xffff << 16)
105 #define DPINTF_BG_VCNTL 0x34
106 #define BG_BOT (0xffff << 0)
107 #define BG_TOP (0xffff << 16)
109 #define DPINTF_BG_COLOR 0x38
110 #define BG_B (0x3ff << 0)
111 #define BG_G (0x3ff << 10)
112 #define BG_R (0x3ff << 20)
114 #define DPINTF_FIFO_CTL 0x3C
115 #define FIFO_VALID_SET (0x1F << 0)
116 #define FIFO_RST_SEL BIT(8)
117 #define FIFO_RD_MASK BIT(12)
119 #define DPINTF_STATUS 0x40
120 #define VCOUNTER (0x3ffff << 0)
121 #define DPINTF_BUSY BIT(24)
122 #define FIELD BIT(28)
125 #define DPINTF_TGEN_VWIDTH_LEVEN 0x68
126 #define DPINTF_TGEN_VPORCH_LEVEN 0x6C
127 #define DPINTF_TGEN_VWIDTH_RODD 0x70
128 #define DPINTF_TGEN_VPORCH_RODD 0x74
129 #define DPINTF_TGEN_VWIDTH_REVEN 0x78
130 #define DPINTF_TGEN_VPORCH_REVEN 0x7C
132 #define DPINTF_CLPF_SETTING 0x94
133 #define CLPF_TYPE (0x3 << 0)
134 #define ROUND_EN BIT(4)
136 #define DPINTF_Y_LIMIT 0x98
137 #define Y_LIMINT_BOT 0
138 #define Y_LIMINT_BOT_MASK (0xFFF << 0)
139 #define Y_LIMINT_TOP 16
140 #define Y_LIMINT_TOP_MASK (0xFFF << 16)
142 #define DPINTF_C_LIMIT 0x9C
143 #define C_LIMIT_BOT 0
144 #define C_LIMIT_BOT_MASK (0xFFF << 0)
145 #define C_LIMIT_TOP 16
146 #define C_LIMIT_TOP_MASK (0xFFF << 16)
148 #define DPINTF_YUV422_SETTING 0xA0
149 #define UV_SWAP BIT(0)
150 #define CR_DELSEL BIT(4)
151 #define CB_DELSEL BIT(5)
152 #define Y_DELSEL BIT(6)
153 #define DE_DELSEL BIT(7)
155 #define DPINTF_MATRIX_SET 0xB4
156 #define INT_MATRIX_SEL_MASK 0x1f
157 #define RGB_TO_JPEG 0x00
158 #define RGB_TO_FULL709 0x01
159 #define RGB_TO_BT601 0x02
160 #define RGB_TO_BT709 0x03
161 #define JPEG_TO_RGB 0x04
162 #define FULL709_TO_RGB 0x05
163 #define BT601_TO_RGB 0x06
164 #define BT709_TO_RGB 0x07
165 #define JPEG_TO_BT601 0x08
166 #define JPEG_TO_BT709 0x09
167 #define BT601_TO_JPEG 0xA
168 #define BT709_TO_JPEG 0xB
169 #define BT709_TO_BT601 0xC
170 #define BT601_TO_BT709 0xD
171 #define JPEG_TO_CERGB 0x14
172 #define FULL709_TO_CERGB 0x15
173 #define BT601_TO_CERGB 0x16
174 #define BT709_TO_CERGB 0x17
175 #define RGB_TO_CERGB 0x1C
177 #define MATRIX_BIT_MASK (0x3 << 8)
178 #define EXT_MATRIX_EN BIT(12)
@ MTK_DPINTF_POLARITY_RISING
@ MTK_DPINTF_POLARITY_FALLING
mtk_dpintf_out_color_format
@ MTK_DPINTF_COLOR_FORMAT_YCBCR_444_FULL
@ MTK_DPINTF_COLOR_FORMAT_YCBCR_422
@ MTK_DPINTF_COLOR_FORMAT_XV_YCC
@ MTK_DPINTF_COLOR_FORMAT_RGB
@ MTK_DPINTF_COLOR_FORMAT_YCBCR_444
@ MTK_DPINTF_COLOR_FORMAT_YCBCR_422_FULL
@ MTK_DPINTF_COLOR_FORMAT_RGB_FULL
void dp_intf_config(const struct edid *edid)
mtk_dpintf_out_channel_swap
@ MTK_DPINTF_OUT_CHANNEL_SWAP_GRB
@ MTK_DPINTF_OUT_CHANNEL_SWAP_BGR
@ MTK_DPINTF_OUT_CHANNEL_SWAP_RBG
@ MTK_DPINTF_OUT_CHANNEL_SWAP_GBR
@ MTK_DPINTF_OUT_CHANNEL_SWAP_RGB
@ MTK_DPINTF_OUT_CHANNEL_SWAP_BRG
@ MTK_DPINTF_OUT_BIT_NUM_16BITS
@ MTK_DPINTF_OUT_BIT_NUM_12BITS
@ MTK_DPINTF_OUT_BIT_NUM_10BITS
@ MTK_DPINTF_OUT_BIT_NUM_8BITS
@ MTK_DPINTF_OUT_YC_MAP_YCYC
@ MTK_DPINTF_OUT_YC_MAP_YC
@ MTK_DPINTF_OUT_YC_MAP_CYCY
@ MTK_DPINTF_OUT_YC_MAP_CY
@ MTK_DPINTF_OUT_YC_MAP_RGB
enum mtk_dpintf_polarity vsync_pol
enum mtk_dpintf_polarity de_pol
enum mtk_dpintf_polarity ck_pol
enum mtk_dpintf_polarity hsync_pol
enum mtk_dpintf_out_bit_num bit_num
enum mtk_dpintf_out_yc_map yc_map
enum mtk_dpintf_out_color_format color_format
enum mtk_dpintf_out_channel_swap channel_swap