xref: /rk3399_rockchip-uboot/drivers/video/drm/display-serdes/maxim/maxim-max96789.h (revision d1fd9c74759fc742c95117ea6373caa27c260a8c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * maxim-max96789.h -- register define for max96789 chip
4  *
5  * Copyright (c) 2023-2028 Rockchip Electronics Co. Ltd.
6  *
7  * Author: luowei <lw@rock-chips.com>
8  *
9  */
10 
11 #ifndef __MFD_SERDES_MAXIM_MAX96789_H__
12 #define __MFD_SERDES_MAXIM_MAX96789_H__
13 
14 #include <linux/bitfield.h>
15 
16 #define GPIO_A_REG(gpio)	(0x02be + ((gpio) * 3))
17 #define GPIO_B_REG(gpio)	(0x02bf + ((gpio) * 3))
18 #define GPIO_C_REG(gpio)	(0x02c0 + ((gpio) * 3))
19 
20 /* 0000h */
21 #define DEV_ADDR		GENMASK(7, 1)
22 #define CFG_BLOCK		BIT(0)
23 
24 /* 0001h */
25 #define IIC_2_EN		BIT(7)
26 #define IIC_1_EN		BIT(6)
27 #define DIS_REM_CC		BIT(4)
28 #define TX_RATE			GENMASK(3, 2)
29 
30 /* 0002h */
31 #define VID_TX_EN_U		BIT(7)
32 #define VID_TX_EN_Z		BIT(6)
33 #define VID_TX_EN_Y		BIT(5)
34 #define VID_TX_EN_X		BIT(4)
35 #define AUD_TX_EN_Y		BIT(3)
36 #define AUD_TX_EN_X		BIT(2)
37 
38 /* 0003h */
39 #define UART_2_EN		BIT(5)
40 #define UART_1_EN		BIT(4)
41 
42 /* 0004h */
43 #define GMSL2_B			BIT(7)
44 #define GMSL2_A			BIT(6)
45 #define LINK_EN_B		BIT(5)
46 #define LINK_EN_A		BIT(4)
47 #define AUD_TX_SRC_Y	BIT(1)
48 #define AUD_TX_SRC_X	BIT(0)
49 
50 /* 0005h */
51 #define LOCK_EN			BIT(7)
52 #define ERRB_EN			BIT(6)
53 #define PU_LF3			BIT(3)
54 #define PU_LF2			BIT(2)
55 #define PU_LF1			BIT(1)
56 #define PU_LF0			BIT(0)
57 
58 /* 0006h */
59 #define RCLKEN			BIT(5)
60 
61 /* 0010h */
62 #define RESET_ALL		BIT(7)
63 #define RESET_LINK		BIT(6)
64 #define RESET_ONESHOT		BIT(5)
65 #define AUTO_LINK		BIT(4)
66 #define SLEEP			BIT(3)
67 #define REG_ENABLE		BIT(2)
68 #define LINK_CFG		GENMASK(1, 0)
69 
70 /* 0013h */
71 #define LINK_MODE		GENMASK(5, 4)
72 #define	LOCKED			BIT(3)
73 
74 /* 001fh */
75 #define	LINKA_LOCKED	BIT(3)
76 #define	LINKB_LOCKED	BIT(4)
77 
78 /* 0026h */
79 #define LF_1			GENMASK(6, 4)
80 #define LF_0			GENMASK(2, 0)
81 
82 /* 0048h */
83 #define REM_MS_EN		BIT(5)
84 #define LOC_MS_EN		BIT(4)
85 
86 /* 0053h */
87 #define TX_SPLIT_MASK_B		BIT(5)
88 #define TX_SPLIT_MASK_A		BIT(4)
89 #define TX_STR_SEL		GENMASK(1, 0)
90 
91 /* 0140h */
92 #define AUD_RX_EN		BIT(0)
93 
94 /* 0170h */
95 #define SPI_EN			BIT(0)
96 
97 /* 01e5h */
98 #define PATGEN_MODE		GENMASK(1, 0)
99 
100 /* 02beh */
101 #define RES_CFG			BIT(7)
102 #define TX_PRIO			BIT(6)
103 #define TX_COMP_EN		BIT(5)
104 #define GPIO_OUT		BIT(4)
105 #define GPIO_IN			BIT(3)
106 #define GPIO_RX_EN		BIT(2)
107 #define GPIO_TX_EN		BIT(1)
108 #define GPIO_OUT_DIS		BIT(0)
109 
110 /* 02bfh */
111 #define PULL_UPDN_SEL		GENMASK(7, 6)
112 #define OUT_TYPE		BIT(5)
113 #define GPIO_TX_ID		GENMASK(4, 0)
114 
115 /* 02c0h */
116 #define OVR_RES_CFG		BIT(7)
117 #define GPIO_RX_ID		GENMASK(4, 0)
118 
119 /* 0311h */
120 #define START_PORTBU		BIT(7)
121 #define START_PORTBZ		BIT(6)
122 #define START_PORTBY		BIT(5)
123 #define START_PORTBX		BIT(4)
124 #define START_PORTAU		BIT(3)
125 #define START_PORTAZ		BIT(2)
126 #define START_PORTAY		BIT(1)
127 #define START_PORTAX		BIT(0)
128 
129 /* 032ah */
130 #define DV_LOCK			BIT(7)
131 #define DV_SWP_AB		BIT(6)
132 #define LINE_ALT		BIT(5)
133 #define DV_CONV			BIT(2)
134 #define DV_SPL			BIT(1)
135 #define DV_EN			BIT(0)
136 
137 /* 0330h */
138 #define PHY_CONFIG		GENMASK(2, 0)
139 #define MIPI_RX_RESET		BIT(3)
140 
141 /* 0331h */
142 #define NUM_LANES		GENMASK(1, 0)
143 
144 /* 0385h */
145 #define DPI_HSYNC_WIDTH_L	GENMASK(7, 0)
146 
147 /* 0386h */
148 #define DPI_VYSNC_WIDTH_L	GENMASK(7, 0)
149 
150 /* 0387h */
151 #define	DPI_HSYNC_WIDTH_H	GENMASK(3, 0)
152 #define DPI_VSYNC_WIDTH_H	GENMASK(7, 4)
153 
154 /* 03a4h */
155 #define DPI_DE_SKEW_SEL		BIT(1)
156 #define DPI_DESKEW_EN		BIT(0)
157 
158 /* 03a5h */
159 #define DPI_VFP_L		GENMASK(7, 0)
160 
161 /* 03a6h */
162 #define DPI_VFP_H		GENMASK(3, 0)
163 #define DPI_VBP_L		GENMASK(7, 4)
164 
165 /* 03a7h */
166 #define DPI_VBP_H		GENMASK(7, 0)
167 
168 /* 03a8h */
169 #define DPI_VACT_L		GENMASK(7, 0)
170 
171 /* 03a9h */
172 #define DPI_VACT_H		GENMASK(3, 0)
173 
174 /* 03aah */
175 #define DPI_HFP_L		GENMASK(7, 0)
176 
177 /* 03abh */
178 #define DPI_HFP_H		GENMASK(3, 0)
179 #define DPI_HBP_L		GENMASK(7, 4)
180 
181 /* 03ach */
182 #define DPI_HBP_H		GENMASK(7, 0)
183 
184 /* 03adh */
185 #define DPI_HACT_L		GENMASK(7, 0)
186 
187 /* 03aeh */
188 #define DPI_HACT_H		GENMASK(4, 0)
189 
190 /* 055dh */
191 #define VS_DET			BIT(5)
192 #define HS_DET			BIT(4)
193 
194 enum link_mode {
195 	DUAL_LINK,
196 	LINKA,
197 	LINKB,
198 	SPLITTER_MODE,
199 };
200 
201 #endif
202