File: rzg2l_mipi_dsi_regs.h

package info (click to toggle)
linux 6.17.7-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,734,408 kB
  • sloc: ansic: 26,679,265; asm: 271,207; sh: 147,319; python: 75,916; makefile: 57,295; perl: 36,942; xml: 19,562; cpp: 5,899; yacc: 4,909; lex: 2,943; awk: 1,556; sed: 29; ruby: 25
file content (203 lines) | stat: -rw-r--r-- 6,299 bytes parent folder | download | duplicates (9)
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
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * RZ/G2L MIPI DSI Interface Registers Definitions
 *
 * Copyright (C) 2022 Renesas Electronics Corporation
 */

#ifndef __RZG2L_MIPI_DSI_REGS_H__
#define __RZG2L_MIPI_DSI_REGS_H__

#include <linux/bits.h>

/* DPHY Registers */
#define DSIDPHYCTRL0			0x00
#define DSIDPHYCTRL0_CAL_EN_HSRX_OFS	BIT(16)
#define DSIDPHYCTRL0_CMN_MASTER_EN	BIT(8)
#define DSIDPHYCTRL0_RE_VDD_DETVCCQLV18	BIT(2)
#define DSIDPHYCTRL0_EN_LDO1200		BIT(1)
#define DSIDPHYCTRL0_EN_BGR		BIT(0)

#define DSIDPHYTIM0			0x04
#define DSIDPHYTIM0_TCLK_MISS(x)	((x) << 24)
#define DSIDPHYTIM0_T_INIT(x)		((x) << 0)

#define DSIDPHYTIM1			0x08
#define DSIDPHYTIM1_THS_PREPARE(x)	((x) << 24)
#define DSIDPHYTIM1_TCLK_PREPARE(x)	((x) << 16)
#define DSIDPHYTIM1_THS_SETTLE(x)	((x) << 8)
#define DSIDPHYTIM1_TCLK_SETTLE(x)	((x) << 0)

#define DSIDPHYTIM2			0x0c
#define DSIDPHYTIM2_TCLK_TRAIL(x)	((x) << 24)
#define DSIDPHYTIM2_TCLK_POST(x)	((x) << 16)
#define DSIDPHYTIM2_TCLK_PRE(x)		((x) << 8)
#define DSIDPHYTIM2_TCLK_ZERO(x)	((x) << 0)

#define DSIDPHYTIM3			0x10
#define DSIDPHYTIM3_TLPX(x)		((x) << 24)
#define DSIDPHYTIM3_THS_EXIT(x)		((x) << 16)
#define DSIDPHYTIM3_THS_TRAIL(x)	((x) << 8)
#define DSIDPHYTIM3_THS_ZERO(x)		((x) << 0)

/* --------------------------------------------------------*/

/* Link Status Register */
#define LINKSR				0x10
#define LINKSR_LPBUSY			BIT(13)
#define LINKSR_HSBUSY			BIT(12)
#define LINKSR_VICHRUN1			BIT(8)
#define LINKSR_SQCHRUN1			BIT(4)
#define LINKSR_SQCHRUN0			BIT(0)

/* Tx Set Register */
#define TXSETR				0x100
#define TXSETR_NUMLANECAP		(0x3 << 16)
#define TXSETR_DLEN			(1 << 9)
#define TXSETR_CLEN			(1 << 8)
#define TXSETR_NUMLANEUSE(x)		(((x) & 0x3) << 0)

/* HS Clock Set Register */
#define HSCLKSETR			0x104
#define HSCLKSETR_HSCLKMODE_CONT	(1 << 1)
#define HSCLKSETR_HSCLKMODE_NON_CONT	(0 << 1)
#define HSCLKSETR_HSCLKRUN_HS		(1 << 0)
#define HSCLKSETR_HSCLKRUN_LP		(0 << 0)

/* Reset Control Register */
#define RSTCR				0x110
#define RSTCR_SWRST			BIT(0)
#define RSTCR_FCETXSTP			BIT(16)

/* Reset Status Register */
#define RSTSR				0x114
#define RSTSR_DL0DIR			(1 << 15)
#define RSTSR_DLSTPST			(0xf << 8)
#define RSTSR_SWRSTV1			(1 << 4)
#define RSTSR_SWRSTIB			(1 << 3)
#define RSTSR_SWRSTAPB			(1 << 2)
#define RSTSR_SWRSTLP			(1 << 1)
#define RSTSR_SWRSTHS			(1 << 0)

/* DSI Set Register */
#define DSISETR				0x120
#define DSISETR_MRPSZ			GENMASK(15, 0)

/* Rx Result Save Slot 0 Register */
#define RXRSS0R				0x240
#define RXRSS0R_RXPKTDFAIL		BIT(28)
#define RXRSS0R_RXFAIL			BIT(27)
#define RXRSS0R_RXSUC			BIT(25)
#define RXRSS0R_DT			GENMASK(21, 16)
#define RXRSS0R_DATA1			GENMASK(15, 8)
#define RXRSS0R_DATA0			GENMASK(7, 0)
#define RXRSS0R_WC			GENMASK(15, 0) /* Word count for long packet. */

/* Clock Lane Stop Time Set Register */
#define CLSTPTSETR			0x314
#define CLSTPTSETR_CLKKPT(x)		((x) << 24)
#define CLSTPTSETR_CLKBFHT(x)		((x) << 16)
#define CLSTPTSETR_CLKSTPT(x)		((x) << 2)

/* LP Transition Time Set Register */
#define LPTRNSTSETR			0x318
#define LPTRNSTSETR_GOLPBKT(x)		((x) << 0)

/* Physical Lane Status Register */
#define PLSR				0x320
#define PLSR_CLHS2LP			BIT(27)
#define PLSR_CLLP2HS			BIT(26)

/* Video-Input Channel 1 Set 0 Register */
#define VICH1SET0R			0x400
#define VICH1SET0R_VSEN			BIT(12)
#define VICH1SET0R_HFPNOLP		BIT(10)
#define VICH1SET0R_HBPNOLP		BIT(9)
#define VICH1SET0R_HSANOLP		BIT(8)
#define VICH1SET0R_VSTPAFT		BIT(1)
#define VICH1SET0R_VSTART		BIT(0)

/* Video-Input Channel 1 Set 1 Register */
#define VICH1SET1R			0x404
#define VICH1SET1R_DLY(x)		(((x) & 0xfff) << 2)

/* Video-Input Channel 1 Status Register */
#define VICH1SR				0x410
#define VICH1SR_VIRDY			BIT(3)
#define VICH1SR_RUNNING			BIT(2)
#define VICH1SR_STOP			BIT(1)
#define VICH1SR_START			BIT(0)

/* Video-Input Channel 1 Pixel Packet Set Register */
#define VICH1PPSETR			0x420
#define VICH1PPSETR_DT_RGB18		(0x1e << 16)
#define VICH1PPSETR_DT_RGB18_LS		(0x2e << 16)
#define VICH1PPSETR_DT_RGB24		(0x3e << 16)
#define VICH1PPSETR_TXESYNC_PULSE	(1 << 15)
#define VICH1PPSETR_VC(x)		((x) << 22)

/* Video-Input Channel 1 Vertical Size Set Register */
#define VICH1VSSETR			0x428
#define VICH1VSSETR_VACTIVE(x)		(((x) & 0x7fff) << 16)
#define VICH1VSSETR_VSPOL_LOW		(1 << 15)
#define VICH1VSSETR_VSPOL_HIGH		(0 << 15)
#define VICH1VSSETR_VSA(x)		(((x) & 0xfff) << 0)

/* Video-Input Channel 1 Vertical Porch Set Register */
#define VICH1VPSETR			0x42c
#define VICH1VPSETR_VFP(x)		(((x) & 0x1fff) << 16)
#define VICH1VPSETR_VBP(x)		(((x) & 0x1fff) << 0)

/* Video-Input Channel 1 Horizontal Size Set Register */
#define VICH1HSSETR			0x430
#define VICH1HSSETR_HACTIVE(x)		(((x) & 0x7fff) << 16)
#define VICH1HSSETR_HSPOL_LOW		(1 << 15)
#define VICH1HSSETR_HSPOL_HIGH		(0 << 15)
#define VICH1HSSETR_HSA(x)		(((x) & 0xfff) << 0)

/* Video-Input Channel 1 Horizontal Porch Set Register */
#define VICH1HPSETR			0x434
#define VICH1HPSETR_HFP(x)		(((x) & 0x1fff) << 16)
#define VICH1HPSETR_HBP(x)		(((x) & 0x1fff) << 0)

/* Sequence Channel 0 Set 0 Register */
#define SQCH0SET0R			0x5c0
#define SQCH0SET0R_START		BIT(0)

/* Sequence Channel 0 Status Register */
#define SQCH0SR				0x5d0
#define SQCH0SR_ADESFIN			BIT(8)

/* Sequence Channel 0 Status Clear Register */
#define SQCH0SCR			0x5d4
#define SQCH0SCR_ADESFIN		BIT(8)

/* Sequence Channel 0 Descriptor 0-A Register */
#define SQCH0DSC0AR			0x780
#define SQCH0DSC0AR_NXACT_TERM		0	/* Bit 28 */
#define SQCH0DSC0AR_BTA			GENMASK(27, 26)
#define SQCH0DSC0AR_BTA_NONE		0
#define SQCH0DSC0AR_BTA_NON_READ	1
#define SQCH0DSC0AR_BTA_READ		2
#define SQCH0DSC0AR_BTA_ONLY		3
#define SQCH0DSC0AR_SPD_HIGH		0
#define SQCH0DSC0AR_SPD_LOW		BIT(25)
#define SQCH0DSC0AR_FMT_SHORT		0
#define SQCH0DSC0AR_FMT_LONG		BIT(24)
#define SQCH0DSC0AR_DT			GENMASK(21, 16)
#define SQCH0DSC0AR_DATA1		GENMASK(15, 8)
#define SQCH0DSC0AR_DATA0		GENMASK(7, 0)

/* Sequence Channel 0 Descriptor 0-B Register */
#define SQCH0DSC0BR			0x784
#define SQCH0DSC0BR_DTSEL_MEM_SPACE	BIT(24)	/* Use external memory */

/* Sequence Channel 0 Descriptor 0-C Register */
#define SQCH0DSC0CR			0x788
#define SQCH0DSC0CR_FINACT		BIT(0)
#define SQCH0DSC0CR_AUXOP		BIT(22)

/* Sequence Channel 0 Descriptor 0-D Register */
#define SQCH0DSC0DR			0x78c

#endif /* __RZG2L_MIPI_DSI_REGS_H__ */