summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/renesas/rcar-du/rcar_mipi_dsi_regs.h
blob: b6fb58c2f9f650b613b1c5bfe7142faa598e7528 (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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * R-Car MIPI DSI Interface Registers Definitions
 *
 * Copyright (C) 2020 Renesas Electronics Corporation
 */

#ifndef __RCAR_MIPI_DSI_REGS_H__
#define __RCAR_MIPI_DSI_REGS_H__

#define LINKSR				0x010
#define LINKSR_LPBUSY			BIT_U32(1)
#define LINKSR_HSBUSY			BIT_U32(0)

#define TXSETR				0x100
#define TXSETR_LANECNT_MASK		GENMASK_U32(1, 0)

/*
 * DSI Command Transfer Registers
 */
#define TXCMSETR			0x110
#define TXCMSETR_SPDTYP			BIT_U32(8)	/* 0:HS 1:LP */
#define TXCMSETR_LPPDACC		BIT_U32(0)
#define TXCMCR				0x120
#define TXCMCR_BTATYP			BIT_U32(2)
#define TXCMCR_BTAREQ			BIT_U32(1)
#define TXCMCR_TXREQ			BIT_U32(0)
#define TXCMSR				0x130
#define TXCMSR_CLSNERR			BIT_U32(18)
#define TXCMSR_AXIERR			BIT_U32(16)
#define TXCMSR_TXREQEND			BIT_U32(0)
#define TXCMSCR				0x134
#define TXCMSCR_CLSNERR			BIT_U32(18)
#define TXCMSCR_AXIERR			BIT_U32(16)
#define TXCMSCR_TXREQEND		BIT_U32(0)
#define TXCMIER				0x138
#define TXCMIER_CLSNERR			BIT_U32(18)
#define TXCMIER_AXIERR			BIT_U32(16)
#define TXCMIER_TXREQEND		BIT_U32(0)
#define TXCMADDRSET0R			0x140
#define TXCMPHDR			0x150
#define TXCMPHDR_FMT			BIT_U32(24)	/* 0:SP 1:LP */
#define TXCMPHDR_VC_MASK		GENMASK_U32(23, 22)
#define TXCMPHDR_VC(n)			FIELD_PREP(TXCMPHDR_VC_MASK, (n))
#define TXCMPHDR_DT_MASK		GENMASK_U32(21, 16)
#define TXCMPHDR_DT(n)			FIELD_PREP(TXCMPHDR_DT_MASK, (n))
#define TXCMPHDR_DATA1_MASK		GENMASK_U32(15, 8)
#define TXCMPHDR_DATA1(n)		FIELD_PREP(TXCMPHDR_DATA1_MASK, (n))
#define TXCMPHDR_DATA0_MASK		GENMASK_U32(7, 0)
#define TXCMPHDR_DATA0(n)		FIELD_PREP(TXCMPHDR_DATA0_MASK, (n))
#define TXCMPPD0R			0x160
#define TXCMPPD1R			0x164
#define TXCMPPD2R			0x168
#define TXCMPPD3R			0x16c

#define RXSETR				0x200
#define RXSETR_CRCEN_MASK		GENMASK_U32(27, 24)
#define RXSETR_ECCEN_MASK		GENMASK_U32(19, 16)
#define RXPSETR				0x210
#define RXPSETR_LPPDACC			BIT_U32(0)
#define RXPSR				0x220
#define RXPSR_ECCERR1B			BIT_U32(28)
#define RXPSR_UEXTRGERR			BIT_U32(25)
#define RXPSR_RESPTOERR			BIT_U32(24)
#define RXPSR_OVRERR			BIT_U32(23)
#define RXPSR_AXIERR			BIT_U32(22)
#define RXPSR_CRCERR			BIT_U32(21)
#define RXPSR_WCERR			BIT_U32(20)
#define RXPSR_UEXDTERR			BIT_U32(19)
#define RXPSR_UEXPKTERR			BIT_U32(18)
#define RXPSR_ECCERR			BIT_U32(17)
#define RXPSR_MLFERR			BIT_U32(16)
#define RXPSR_RCVACK			BIT_U32(14)
#define RXPSR_RCVEOT			BIT_U32(10)
#define RXPSR_RCVAKE			BIT_U32(9)
#define RXPSR_RCVRESP			BIT_U32(8)
#define RXPSR_BTAREQEND			BIT_U32(0)
#define RXPSCR				0x224
#define RXPSCR_ECCERR1B			BIT_U32(28)
#define RXPSCR_UEXTRGERR		BIT_U32(25)
#define RXPSCR_RESPTOERR		BIT_U32(24)
#define RXPSCR_OVRERR			BIT_U32(23)
#define RXPSCR_AXIERR			BIT_U32(22)
#define RXPSCR_CRCERR			BIT_U32(21)
#define RXPSCR_WCERR			BIT_U32(20)
#define RXPSCR_UEXDTERR			BIT_U32(19)
#define RXPSCR_UEXPKTERR		BIT_U32(18)
#define RXPSCR_ECCERR			BIT_U32(17)
#define RXPSCR_MLFERR			BIT_U32(16)
#define RXPSCR_RCVACK			BIT_U32(14)
#define RXPSCR_RCVEOT			BIT_U32(10)
#define RXPSCR_RCVAKE			BIT_U32(9)
#define RXPSCR_RCVRESP			BIT_U32(8)
#define RXPSCR_BTAREQEND		BIT_U32(0)
#define RXPIER				0x228
#define RXPIER_ECCERR1B			BIT_U32(28)
#define RXPIER_UEXTRGERR		BIT_U32(25)
#define RXPIER_RESPTOERR		BIT_U32(24)
#define RXPIER_OVRERR			BIT_U32(23)
#define RXPIER_AXIERR			BIT_U32(22)
#define RXPIER_CRCERR			BIT_U32(21)
#define RXPIER_WCERR			BIT_U32(20)
#define RXPIER_UEXDTERR			BIT_U32(19)
#define RXPIER_UEXPKTERR		BIT_U32(18)
#define RXPIER_ECCERR			BIT_U32(17)
#define RXPIER_MLFERR			BIT_U32(16)
#define RXPIER_RCVACK			BIT_U32(14)
#define RXPIER_RCVEOT			BIT_U32(10)
#define RXPIER_RCVAKE			BIT_U32(9)
#define RXPIER_RCVRESP			BIT_U32(8)
#define RXPIER_BTAREQEND		BIT_U32(0)
#define RXPADDRSET0R			0x230
#define RXPSIZESETR			0x238
#define RXPSIZESETR_SIZE_MASK		GENMASK_U32(6, 3)
#define RXPHDR				0x240
#define RXPHDR_FMT			BIT_U32(24)	/* 0:SP 1:LP */
#define RXPHDR_VC_MASK			GENMASK_U32(23, 22)
#define RXPHDR_DT_MASK			GENMASK_U32(21, 16)
#define RXPHDR_DATA1_MASK		GENMASK_U32(15, 8)
#define RXPHDR_DATA0_MASK		GENMASK_U32(7, 0)
#define RXPPD0R				0x250
#define RXPPD1R				0x254
#define RXPPD2R				0x258
#define RXPPD3R				0x25c
#define AKEPR				0x300
#define AKEPR_VC_MASK			GENMASK_U32(23, 22)
#define AKEPR_DT_MASK			GENMASK_U32(21, 16)
#define AKEPR_ERRRPT_MASK		GENMASK_U32(15, 0)
#define RXRESPTOSETR			0x400
#define TACR				0x500
#define TASR				0x510
#define TASCR				0x514
#define TAIER				0x518
#define TOSR				0x610
#define TOSR_TATO			BIT_U32(2)
#define TOSR_LRXHTO			BIT_U32(1)
#define TOSR_HRXTO			BIT_U32(0)
#define TOSCR				0x614
#define TOSCR_TATO			BIT_U32(2)
#define TOSCR_LRXHTO			BIT_U32(1)
#define TOSCR_HRXTO			BIT_U32(0)

/*
 * Video Mode Register
 */
#define TXVMSETR			0x180
#define TXVMSETR_SYNSEQ_EVENTS		BIT_U32(16) /* 0:Pulses 1:Events */
#define TXVMSETR_VSTPM			BIT_U32(15)
#define TXVMSETR_PIXWDTH_MASK		GENMASK_U32(10, 8)
#define TXVMSETR_PIXWDTH		BIT_U32(8) /* Only allowed value */
#define TXVMSETR_VSEN			BIT_U32(4)
#define TXVMSETR_HFPBPEN		BIT_U32(2)
#define TXVMSETR_HBPBPEN		BIT_U32(1)
#define TXVMSETR_HSABPEN		BIT_U32(0)

#define TXVMCR				0x190
#define TXVMCR_VFCLR			BIT_U32(12)
#define TXVMCR_EN_VIDEO			BIT_U32(0)

#define TXVMSR				0x1a0
#define TXVMSR_STR			BIT_U32(16)
#define TXVMSR_VFRDY			BIT_U32(12)
#define TXVMSR_ACT			BIT_U32(8)
#define TXVMSR_RDY			BIT_U32(0)

#define TXVMSCR				0x1a4
#define TXVMSCR_STR			BIT_U32(16)

#define TXVMPSPHSETR			0x1c0
#define TXVMPSPHSETR_DT_MASK		(0x3f << 16)
#define TXVMPSPHSETR_DT_RGB16		FIELD_PREP(TXVMPSPHSETR_DT_MASK, 0x0e)
#define TXVMPSPHSETR_DT_RGB18		FIELD_PREP(TXVMPSPHSETR_DT_MASK, 0x1e)
#define TXVMPSPHSETR_DT_RGB18_LS	FIELD_PREP(TXVMPSPHSETR_DT_MASK, 0x2e)
#define TXVMPSPHSETR_DT_RGB24		FIELD_PREP(TXVMPSPHSETR_DT_MASK, 0x3e)
#define TXVMPSPHSETR_DT_YCBCR16		FIELD_PREP(TXVMPSPHSETR_DT_MASK, 0x2c)

#define TXVMVPRMSET0R			0x1d0
#define TXVMVPRMSET0R_HSPOL_LOW		BIT_U32(17) /* 0:High 1:Low */
#define TXVMVPRMSET0R_VSPOL_LOW		BIT_U32(16) /* 0:High 1:Low */
#define TXVMVPRMSET0R_CSPC_YCbCr	BIT_U32(4) /* 0:RGB 1:YCbCr */
#define TXVMVPRMSET0R_BPP_MASK		GENMASK_U32(2, 0)
#define TXVMVPRMSET0R_BPP_16		FIELD_PREP(TXVMVPRMSET0R_BPP_MASK, 0)
#define TXVMVPRMSET0R_BPP_18		FIELD_PREP(TXVMVPRMSET0R_BPP_MASK, 1)
#define TXVMVPRMSET0R_BPP_24		FIELD_PREP(TXVMVPRMSET0R_BPP_MASK, 2)

#define TXVMVPRMSET1R			0x1d4
#define TXVMVPRMSET1R_VACTIVE_MASK	GENMASK_U32(30, 16)
#define TXVMVPRMSET1R_VACTIVE(n)	FIELD_PREP(TXVMVPRMSET1R_VACTIVE_MASK, (n))
#define TXVMVPRMSET1R_VSA_MASK		GENMASK_U32(11, 0)
#define TXVMVPRMSET1R_VSA(n)		FIELD_PREP(TXVMVPRMSET1R_VSA_MASK, (n))

#define TXVMVPRMSET2R			0x1d8
#define TXVMVPRMSET2R_VFP_MASK		GENMASK_U32(28, 16)
#define TXVMVPRMSET2R_VFP(n)		FIELD_PREP(TXVMVPRMSET2R_VFP_MASK, (n))
#define TXVMVPRMSET2R_VBP_MASK		GENMASK_U32(12, 0)
#define TXVMVPRMSET2R_VBP(n)		FIELD_PREP(TXVMVPRMSET2R_VBP_MASK, (n))

#define TXVMVPRMSET3R			0x1dc
#define TXVMVPRMSET3R_HACTIVE_MASK	GENMASK_U32(30, 16)
#define TXVMVPRMSET3R_HACTIVE(n)	FIELD_PREP(TXVMVPRMSET3R_HACTIVE_MASK, (n))
#define TXVMVPRMSET3R_HSA_MASK		GENMASK_U32(11, 0)
#define TXVMVPRMSET3R_HSA(n)		FIELD_PREP(TXVMVPRMSET3R_HSA_MASK, (n))

#define TXVMVPRMSET4R			0x1e0
#define TXVMVPRMSET4R_HFP_MASK		GENMASK_U32(28, 16)
#define TXVMVPRMSET4R_HFP(n)		FIELD_PREP(TXVMVPRMSET4R_HFP_MASK, (n))
#define TXVMVPRMSET4R_HBP_MASK		GENMASK_U32(12, 0)
#define TXVMVPRMSET4R_HBP(n)		FIELD_PREP(TXVMVPRMSET4R_HBP_MASK, (n))

/*
 * PHY-Protocol Interface (PPI) Registers
 */
#define PPISETR				0x700
#define PPISETR_DLEN_MASK		GENMASK_U32(3, 0)
#define PPISETR_CLEN			BIT_U32(8)

#define PPICLCR				0x710
#define PPICLCR_TXREQHS			BIT_U32(8)
#define PPICLCR_TXULPSEXT		BIT_U32(1)
#define PPICLCR_TXULPSCLK		BIT_U32(0)

#define PPICLSR				0x720
#define PPICLSR_HSTOLP			BIT_U32(27)
#define PPICLSR_TOHS			BIT_U32(26)
#define PPICLSR_STPST			BIT_U32(0)

#define PPICLSCR			0x724
#define PPICLSCR_HSTOLP			BIT_U32(27)
#define PPICLSCR_TOHS			BIT_U32(26)

#define PPIDL0SR			0x740
#define PPIDL0SR_DIR			BIT_U32(10)
#define PPIDL0SR_STPST			BIT_U32(6)

#define PPIDLSR				0x760
#define PPIDLSR_STPST			GENMASK_U32(3, 0)

/*
 * Clocks registers
 */
#define LPCLKSET			0x1000
#define LPCLKSET_CKEN			BIT_U32(8)
#define LPCLKSET_LPCLKDIV_MASK		GENMASK_U32(5, 0)

#define CFGCLKSET			0x1004
#define CFGCLKSET_CKEN			BIT_U32(8)
#define CFGCLKSET_CFGCLKDIV_MASK	GENMASK_U32(5, 0)

#define DOTCLKDIV			0x1008
#define DOTCLKDIV_CKEN			BIT_U32(8)
#define DOTCLKDIV_DOTCLKDIV_MASK	GENMASK_U32(5, 0)

#define VCLKSET				0x100c
#define VCLKSET_CKEN			BIT_U32(16)
#define VCLKSET_COLOR_YCC		BIT_U32(8) /* 0:RGB 1:YCbCr */
#define VCLKSET_DIV_V3U_MASK		GENMASK_U32(5, 4)
#define VCLKSET_DIV_V3U(n)		FIELD_PREP(VCLKSET_DIV_V3U_MASK, (n))
#define VCLKSET_DIV_V4H_MASK		GENMASK_U32(6, 4)
#define VCLKSET_DIV_V4H(n)		FIELD_PREP(VCLKSET_DIV_V4H_MASK, (n))
#define VCLKSET_BPP_MASK		GENMASK_U32(3, 2)
#define VCLKSET_BPP_16			FIELD_PREP(VCLKSET_BPP_MASK, 0)
#define VCLKSET_BPP_18			FIELD_PREP(VCLKSET_BPP_MASK, 1)
#define VCLKSET_BPP_18L			FIELD_PREP(VCLKSET_BPP_MASK, 2)
#define VCLKSET_BPP_24			FIELD_PREP(VCLKSET_BPP_MASK, 3)
#define VCLKSET_LANE_MASK		GENMASK_U32(1, 0)
#define VCLKSET_LANE(n)			FIELD_PREP(VCLKSET_LANE_MASK, (n))

#define VCLKEN				0x1010
#define VCLKEN_CKEN			BIT_U32(0)

#define PHYSETUP			0x1014
#define PHYSETUP_HSFREQRANGE_MASK	GENMASK_U32(22, 16)
#define PHYSETUP_HSFREQRANGE(n)		FIELD_PREP(PHYSETUP_HSFREQRANGE_MASK, (n))
#define PHYSETUP_CFGCLKFREQRANGE_MASK	GENMASK_U32(13, 8)
#define PHYSETUP_SHUTDOWNZ		BIT_U32(1)
#define PHYSETUP_RSTZ			BIT_U32(0)

#define CLOCKSET1			0x101c
#define CLOCKSET1_LOCK_PHY		BIT_U32(17)
#define CLOCKSET1_CLKSEL		BIT_U32(8)
#define CLOCKSET1_CLKINSEL_MASK		GENMASK_U32(3, 2)
#define CLOCKSET1_CLKINSEL_EXTAL	FIELD_PREP(CLOCKSET1_CLKINSEL_MASK, 0)
#define CLOCKSET1_CLKINSEL_DIG		FIELD_PREP(CLOCKSET1_CLKINSEL_MASK, 1)
#define CLOCKSET1_CLKINSEL_DU		FIELD_PREP(CLOCKSET1_CLKINSEL_MASK, 2)
#define CLOCKSET1_SHADOW_CLEAR		BIT_U32(1)
#define CLOCKSET1_UPDATEPLL		BIT_U32(0)

#define CLOCKSET2			0x1020
#define CLOCKSET2_M_MASK		GENMASK_U32(27, 16)
#define CLOCKSET2_M(n)			FIELD_PREP(CLOCKSET2_M_MASK, (n))
#define CLOCKSET2_VCO_CNTRL_MASK	GENMASK_U32(13, 8)
#define CLOCKSET2_VCO_CNTRL(n)		FIELD_PREP(CLOCKSET2_VCO_CNTRL_MASK, (n))
#define CLOCKSET2_N_MASK		GENMASK_U32(3, 0)
#define CLOCKSET2_N(n)			FIELD_PREP(CLOCKSET2_N_MASK, (n))

#define CLOCKSET3			0x1024
#define CLOCKSET3_PROP_CNTRL_MASK	GENMASK_U32(29, 24)
#define CLOCKSET3_PROP_CNTRL(n)	FIELD_PREP(CLOCKSET3_PROP_CNTRL_MASK, (n))
#define CLOCKSET3_INT_CNTRL_MASK	GENMASK_U32(21, 16)
#define CLOCKSET3_INT_CNTRL(n)		FIELD_PREP(CLOCKSET3_INT_CNTRL_MASK, (n))
#define CLOCKSET3_CPBIAS_CNTRL_MASK	GENMASK_U32(14, 8)
#define CLOCKSET3_CPBIAS_CNTRL(n)	FIELD_PREP(CLOCKSET3_CPBIAS_CNTRL_MASK, (n))
#define CLOCKSET3_GMP_CNTRL_MASK	GENMASK_U32(1, 0)
#define CLOCKSET3_GMP_CNTRL(n)		FIELD_PREP(CLOCKSET3_GMP_CNTRL_MASK, (n))

#define PHTW				0x1034
#define PHTW_DWEN			BIT_U32(24)
#define PHTW_TESTDIN_DATA_MASK		GENMASK_U32(23, 16)
#define PHTW_CWEN			BIT_U32(8)
#define PHTW_TESTDIN_CODE_MASK		GENMASK_U32(7, 0)

#define PHTR				0x1038
#define PHTR_TESTDOUT			GENMASK_U32(23, 16)
#define PHTR_TESTDOUT_TEST		BIT_U32(16)

#define PHTC				0x103c
#define PHTC_TESTCLR			BIT_U32(0)

#endif /* __RCAR_MIPI_DSI_REGS_H__ */