Loading...
Note: File does not exist in v5.4.
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * R-Car MIPI DSI Interface Registers Definitions
4 *
5 * Copyright (C) 2020 Renesas Electronics Corporation
6 */
7
8#ifndef __RCAR_MIPI_DSI_REGS_H__
9#define __RCAR_MIPI_DSI_REGS_H__
10
11#define LINKSR 0x010
12#define LINKSR_LPBUSY (1 << 1)
13#define LINKSR_HSBUSY (1 << 0)
14
15/*
16 * Video Mode Register
17 */
18#define TXVMSETR 0x180
19#define TXVMSETR_SYNSEQ_PULSES (0 << 16)
20#define TXVMSETR_SYNSEQ_EVENTS (1 << 16)
21#define TXVMSETR_VSTPM (1 << 15)
22#define TXVMSETR_PIXWDTH (1 << 8)
23#define TXVMSETR_VSEN_EN (1 << 4)
24#define TXVMSETR_VSEN_DIS (0 << 4)
25#define TXVMSETR_HFPBPEN_EN (1 << 2)
26#define TXVMSETR_HFPBPEN_DIS (0 << 2)
27#define TXVMSETR_HBPBPEN_EN (1 << 1)
28#define TXVMSETR_HBPBPEN_DIS (0 << 1)
29#define TXVMSETR_HSABPEN_EN (1 << 0)
30#define TXVMSETR_HSABPEN_DIS (0 << 0)
31
32#define TXVMCR 0x190
33#define TXVMCR_VFCLR (1 << 12)
34#define TXVMCR_EN_VIDEO (1 << 0)
35
36#define TXVMSR 0x1a0
37#define TXVMSR_STR (1 << 16)
38#define TXVMSR_VFRDY (1 << 12)
39#define TXVMSR_ACT (1 << 8)
40#define TXVMSR_RDY (1 << 0)
41
42#define TXVMSCR 0x1a4
43#define TXVMSCR_STR (1 << 16)
44
45#define TXVMPSPHSETR 0x1c0
46#define TXVMPSPHSETR_DT_RGB16 (0x0e << 16)
47#define TXVMPSPHSETR_DT_RGB18 (0x1e << 16)
48#define TXVMPSPHSETR_DT_RGB18_LS (0x2e << 16)
49#define TXVMPSPHSETR_DT_RGB24 (0x3e << 16)
50#define TXVMPSPHSETR_DT_YCBCR16 (0x2c << 16)
51
52#define TXVMVPRMSET0R 0x1d0
53#define TXVMVPRMSET0R_HSPOL_HIG (0 << 17)
54#define TXVMVPRMSET0R_HSPOL_LOW (1 << 17)
55#define TXVMVPRMSET0R_VSPOL_HIG (0 << 16)
56#define TXVMVPRMSET0R_VSPOL_LOW (1 << 16)
57#define TXVMVPRMSET0R_CSPC_RGB (0 << 4)
58#define TXVMVPRMSET0R_CSPC_YCbCr (1 << 4)
59#define TXVMVPRMSET0R_BPP_16 (0 << 0)
60#define TXVMVPRMSET0R_BPP_18 (1 << 0)
61#define TXVMVPRMSET0R_BPP_24 (2 << 0)
62
63#define TXVMVPRMSET1R 0x1d4
64#define TXVMVPRMSET1R_VACTIVE(x) (((x) & 0x7fff) << 16)
65#define TXVMVPRMSET1R_VSA(x) (((x) & 0xfff) << 0)
66
67#define TXVMVPRMSET2R 0x1d8
68#define TXVMVPRMSET2R_VFP(x) (((x) & 0x1fff) << 16)
69#define TXVMVPRMSET2R_VBP(x) (((x) & 0x1fff) << 0)
70
71#define TXVMVPRMSET3R 0x1dc
72#define TXVMVPRMSET3R_HACTIVE(x) (((x) & 0x7fff) << 16)
73#define TXVMVPRMSET3R_HSA(x) (((x) & 0xfff) << 0)
74
75#define TXVMVPRMSET4R 0x1e0
76#define TXVMVPRMSET4R_HFP(x) (((x) & 0x1fff) << 16)
77#define TXVMVPRMSET4R_HBP(x) (((x) & 0x1fff) << 0)
78
79/*
80 * PHY-Protocol Interface (PPI) Registers
81 */
82#define PPISETR 0x700
83#define PPISETR_DLEN_0 (0x1 << 0)
84#define PPISETR_DLEN_1 (0x3 << 0)
85#define PPISETR_DLEN_2 (0x7 << 0)
86#define PPISETR_DLEN_3 (0xf << 0)
87#define PPISETR_CLEN (1 << 8)
88
89#define PPICLCR 0x710
90#define PPICLCR_TXREQHS (1 << 8)
91#define PPICLCR_TXULPSEXT (1 << 1)
92#define PPICLCR_TXULPSCLK (1 << 0)
93
94#define PPICLSR 0x720
95#define PPICLSR_HSTOLP (1 << 27)
96#define PPICLSR_TOHS (1 << 26)
97#define PPICLSR_STPST (1 << 0)
98
99#define PPICLSCR 0x724
100#define PPICLSCR_HSTOLP (1 << 27)
101#define PPICLSCR_TOHS (1 << 26)
102
103#define PPIDLSR 0x760
104#define PPIDLSR_STPST (0xf << 0)
105
106/*
107 * Clocks registers
108 */
109#define LPCLKSET 0x1000
110#define LPCLKSET_CKEN (1 << 8)
111#define LPCLKSET_LPCLKDIV(x) (((x) & 0x3f) << 0)
112
113#define CFGCLKSET 0x1004
114#define CFGCLKSET_CKEN (1 << 8)
115#define CFGCLKSET_CFGCLKDIV(x) (((x) & 0x3f) << 0)
116
117#define DOTCLKDIV 0x1008
118#define DOTCLKDIV_CKEN (1 << 8)
119#define DOTCLKDIV_DOTCLKDIV(x) (((x) & 0x3f) << 0)
120
121#define VCLKSET 0x100c
122#define VCLKSET_CKEN (1 << 16)
123#define VCLKSET_COLOR_RGB (0 << 8)
124#define VCLKSET_COLOR_YCC (1 << 8)
125#define VCLKSET_DIV(x) (((x) & 0x3) << 4)
126#define VCLKSET_BPP_16 (0 << 2)
127#define VCLKSET_BPP_18 (1 << 2)
128#define VCLKSET_BPP_18L (2 << 2)
129#define VCLKSET_BPP_24 (3 << 2)
130#define VCLKSET_LANE(x) (((x) & 0x3) << 0)
131
132#define VCLKEN 0x1010
133#define VCLKEN_CKEN (1 << 0)
134
135#define PHYSETUP 0x1014
136#define PHYSETUP_HSFREQRANGE(x) (((x) & 0x7f) << 16)
137#define PHYSETUP_HSFREQRANGE_MASK (0x7f << 16)
138#define PHYSETUP_CFGCLKFREQRANGE(x) (((x) & 0x3f) << 8)
139#define PHYSETUP_SHUTDOWNZ (1 << 1)
140#define PHYSETUP_RSTZ (1 << 0)
141
142#define CLOCKSET1 0x101c
143#define CLOCKSET1_LOCK_PHY (1 << 17)
144#define CLOCKSET1_LOCK (1 << 16)
145#define CLOCKSET1_CLKSEL (1 << 8)
146#define CLOCKSET1_CLKINSEL_EXTAL (0 << 2)
147#define CLOCKSET1_CLKINSEL_DIG (1 << 2)
148#define CLOCKSET1_CLKINSEL_DU (1 << 3)
149#define CLOCKSET1_SHADOW_CLEAR (1 << 1)
150#define CLOCKSET1_UPDATEPLL (1 << 0)
151
152#define CLOCKSET2 0x1020
153#define CLOCKSET2_M(x) (((x) & 0xfff) << 16)
154#define CLOCKSET2_VCO_CNTRL(x) (((x) & 0x3f) << 8)
155#define CLOCKSET2_N(x) (((x) & 0xf) << 0)
156
157#define CLOCKSET3 0x1024
158#define CLOCKSET3_PROP_CNTRL(x) (((x) & 0x3f) << 24)
159#define CLOCKSET3_INT_CNTRL(x) (((x) & 0x3f) << 16)
160#define CLOCKSET3_CPBIAS_CNTRL(x) (((x) & 0x7f) << 8)
161#define CLOCKSET3_GMP_CNTRL(x) (((x) & 0x3) << 0)
162
163#define PHTW 0x1034
164#define PHTW_DWEN (1 << 24)
165#define PHTW_TESTDIN_DATA(x) (((x) & 0xff) << 16)
166#define PHTW_CWEN (1 << 8)
167#define PHTW_TESTDIN_CODE(x) (((x) & 0xff) << 0)
168
169#define PHTC 0x103c
170#define PHTC_TESTCLR (1 << 0)
171
172#endif /* __RCAR_MIPI_DSI_REGS_H__ */