xref: /arm-trusted-firmware/include/drivers/brcm/i2c/i2c_regs.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2016 - 2021, Broadcom
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef I2C_REGS
8*91f16700Schasinglulu #define I2C_REGS
9*91f16700Schasinglulu 
10*91f16700Schasinglulu /* SMBUS Config register */
11*91f16700Schasinglulu #define SMB_CFG_REG				0x0U
12*91f16700Schasinglulu 
13*91f16700Schasinglulu #define SMB_CFG_RST_MASK			0x80000000U
14*91f16700Schasinglulu #define SMB_CFG_RST_SHIFT			31U
15*91f16700Schasinglulu 
16*91f16700Schasinglulu #define SMB_CFG_SMBEN_MASK			0x40000000U
17*91f16700Schasinglulu #define SMB_CFG_SMBEN_SHIFT			30U
18*91f16700Schasinglulu 
19*91f16700Schasinglulu #define SMB_CFG_BITBANGEN_MASK			0x20000000U
20*91f16700Schasinglulu #define SMB_CFG_BITBANGEN_SHIFT			29U
21*91f16700Schasinglulu 
22*91f16700Schasinglulu #define SMB_CFG_EN_NIC_SMBADDR0_MASK		0x10000000U
23*91f16700Schasinglulu #define SMB_CFG_EN_NIC_SMBADDR0_SHIFT		28U
24*91f16700Schasinglulu 
25*91f16700Schasinglulu #define SMB_CFG_PROMISCMODE_MASK		0x08000000U
26*91f16700Schasinglulu #define SMB_CFG_PROMISCMODE_SHIFT		27U
27*91f16700Schasinglulu 
28*91f16700Schasinglulu #define SMB_CFG_TSTMPCNTEN_MASK			0x04000000U
29*91f16700Schasinglulu #define SMB_CFG_TSTMPCNTEN_SHIFT		26U
30*91f16700Schasinglulu 
31*91f16700Schasinglulu #define SMB_CFG_MSTRRTRYCNT_MASK		0x000F0000U
32*91f16700Schasinglulu #define SMB_CFG_MSTRRTRYCNT_SHIFT		16U
33*91f16700Schasinglulu 
34*91f16700Schasinglulu /* SMBUS Timing config register */
35*91f16700Schasinglulu #define SMB_TIMGCFG_REG				0x4U
36*91f16700Schasinglulu 
37*91f16700Schasinglulu #define SMB_TIMGCFG_MODE400_MASK		0x80000000U
38*91f16700Schasinglulu #define SMB_TIMGCFG_MODE400_SHIFT		31U
39*91f16700Schasinglulu 
40*91f16700Schasinglulu #define SMB_TIMGCFG_RNDSLVSTR_MASK		0x7F000000U
41*91f16700Schasinglulu #define SMB_TIMGCFG_RNDSLVSTR_SHIFT		24U
42*91f16700Schasinglulu 
43*91f16700Schasinglulu #define SMB_TIMGCFG_PERSLVSTR_MASK		0x00FF0000U
44*91f16700Schasinglulu #define SMB_TIMGCFG_PERSLVSTR_SHIFT		16U
45*91f16700Schasinglulu 
46*91f16700Schasinglulu #define SMB_TIMGCFG_IDLTIME_MASK		0x0000FF00U
47*91f16700Schasinglulu #define SMB_TIMGCFG_IDLTIME_SHIFT		8U
48*91f16700Schasinglulu 
49*91f16700Schasinglulu /* SMBUS Slave address register */
50*91f16700Schasinglulu #define SMB_ADDR_REG				0x8U
51*91f16700Schasinglulu 
52*91f16700Schasinglulu #define SMB_EN_NIC_SMBADDR3_MASK		0x80000000U
53*91f16700Schasinglulu #define SMB_EN_NIC_SMBADDR3_SHIFT		31U
54*91f16700Schasinglulu 
55*91f16700Schasinglulu #define SMB_NIC_SMBADDR3_MASK			0x7F000000U
56*91f16700Schasinglulu #define SMB_NIC_SMBADDR3_SHIFT			24U
57*91f16700Schasinglulu 
58*91f16700Schasinglulu #define SMB_EN_NIC_SMBADDR2_MASK		0x00800000U
59*91f16700Schasinglulu #define SMB_EN_NIC_SMBADDR2_SHIFT		23U
60*91f16700Schasinglulu 
61*91f16700Schasinglulu #define SMB_NIC_SMBADDR2_MASK			0x007F0000U
62*91f16700Schasinglulu #define SMB_NIC_SMBADDR2_SHIFT			16U
63*91f16700Schasinglulu 
64*91f16700Schasinglulu #define SMB_EN_NIC_SMBADDR1_MASK		0x00008000U
65*91f16700Schasinglulu #define SMB_EN_NIC_SMBADDR1_SHIFT		15U
66*91f16700Schasinglulu 
67*91f16700Schasinglulu #define SMB_NIC_SMBADDR1_MASK			0x00007F00U
68*91f16700Schasinglulu #define SMB_NIC_SMBADDR1_SHIFT			8U
69*91f16700Schasinglulu 
70*91f16700Schasinglulu #define SMB_EN_NIC_SMBADDR0_MASK		0x00000080U
71*91f16700Schasinglulu #define SMB_EN_NIC_SMBADDR0_SHIFT		7U
72*91f16700Schasinglulu 
73*91f16700Schasinglulu #define SMB_NIC_SMBADDR0_MASK			0x0000007FU
74*91f16700Schasinglulu #define SMB_NIC_SMBADDR0_SHIFT			0U
75*91f16700Schasinglulu 
76*91f16700Schasinglulu /* SMBUS Master FIFO control register */
77*91f16700Schasinglulu #define SMB_MSTRFIFOCTL_REG			0xCU
78*91f16700Schasinglulu 
79*91f16700Schasinglulu #define SMB_MSTRRXFIFOFLSH_MASK			0x80000000U
80*91f16700Schasinglulu #define SMB_MSTRRXFIFOFLSH_SHIFT		31U
81*91f16700Schasinglulu 
82*91f16700Schasinglulu #define SMB_MSTRTXFIFOFLSH_MASK			0x40000000U
83*91f16700Schasinglulu #define SMB_MSTRTXFIFOFLSH_SHIFT		30U
84*91f16700Schasinglulu 
85*91f16700Schasinglulu #define SMB_MSTRRXPKTCNT_MASK			0x007F0000U
86*91f16700Schasinglulu #define SMB_MSTRRXPKTCNT_SHIFT			16U
87*91f16700Schasinglulu 
88*91f16700Schasinglulu #define SMB_MSTRRXFIFOTHR_MASK			0x00003F00U
89*91f16700Schasinglulu #define SMB_MSTRRXFIFOTHR_SHIFT			8U
90*91f16700Schasinglulu 
91*91f16700Schasinglulu /* SMBUS Slave FIFO control register */
92*91f16700Schasinglulu #define SMB_SLVFIFOCTL_REG			0x10U
93*91f16700Schasinglulu 
94*91f16700Schasinglulu #define SMB_SLVRXFIFOFLSH_MASK			0x80000000U
95*91f16700Schasinglulu #define SMB_SLVRXFIFOFLSH_SHIFT			31U
96*91f16700Schasinglulu 
97*91f16700Schasinglulu #define SMB_SLVTXFIFOFLSH_MASK			0x40000000U
98*91f16700Schasinglulu #define SMB_SLVTXFIFOFLSH_SHIFT			30U
99*91f16700Schasinglulu 
100*91f16700Schasinglulu #define SMB_SLVRXPKTCNT_MASK			0x007F0000U
101*91f16700Schasinglulu #define SMB_SLVRXPKTCNT_SHIFT			16U
102*91f16700Schasinglulu 
103*91f16700Schasinglulu #define SMB_SLVRXFIFOTHR_MASK			0x00003F00U
104*91f16700Schasinglulu #define SMB_SLVRXFIFOTHR_SHIFT			8U
105*91f16700Schasinglulu 
106*91f16700Schasinglulu /* SMBUS Bit-bang mode control register */
107*91f16700Schasinglulu #define SMB_BITBANGCTL_REG			0x14U
108*91f16700Schasinglulu 
109*91f16700Schasinglulu #define SMB_SMBCLKIN_MASK			0x80000000U
110*91f16700Schasinglulu #define SMB_SMBCLKIN_SHIFT			31U
111*91f16700Schasinglulu 
112*91f16700Schasinglulu #define SMB_SMBCLKOUTEN_MASK			0x40000000U
113*91f16700Schasinglulu #define SMB_SMBCLKOUTEN_SHIFT			30U
114*91f16700Schasinglulu 
115*91f16700Schasinglulu #define SMB_SMBDATAIN_MASK			0x20000000U
116*91f16700Schasinglulu #define SMB_SMBDATAIN_SHIFT			29U
117*91f16700Schasinglulu 
118*91f16700Schasinglulu #define SMB_SMBDATAOUTEN_MASK			0x10000000U
119*91f16700Schasinglulu #define SMB_SMBDATAOUTEN_SHIFT			28U
120*91f16700Schasinglulu 
121*91f16700Schasinglulu /* SMBUS Master command register */
122*91f16700Schasinglulu #define SMB_MSTRCMD_REG				0x30U
123*91f16700Schasinglulu 
124*91f16700Schasinglulu #define SMB_MSTRSTARTBUSYCMD_MASK		0x80000000U
125*91f16700Schasinglulu #define SMB_MSTRSTARTBUSYCMD_SHIFT		31U
126*91f16700Schasinglulu 
127*91f16700Schasinglulu #define SMB_MSTRABORT_MASK			0x40000000U
128*91f16700Schasinglulu #define SMB_MSTRABORT_SHIFT			30U
129*91f16700Schasinglulu 
130*91f16700Schasinglulu #define SMB_MSTRSTS_MASK			0x0E000000U
131*91f16700Schasinglulu #define SMB_MSTRSTS_SHIFT			25U
132*91f16700Schasinglulu 
133*91f16700Schasinglulu #define SMB_MSTRSMBUSPROTO_MASK			0x00001E00U
134*91f16700Schasinglulu #define SMB_MSTRSMBUSPROTO_SHIFT		9U
135*91f16700Schasinglulu 
136*91f16700Schasinglulu #define SMB_MSTRPEC_MASK			0x00000100U
137*91f16700Schasinglulu #define SMB_MSTRPEC_SHIFT			8U
138*91f16700Schasinglulu 
139*91f16700Schasinglulu #define SMB_MSTRRDBYTECNT_MASK			0x000000FFU
140*91f16700Schasinglulu #define SMB_MSTRRDBYTECNT_SHIFT			0U
141*91f16700Schasinglulu 
142*91f16700Schasinglulu /* SMBUS Slave command register */
143*91f16700Schasinglulu #define SMB_SLVCMD_REG				0x34U
144*91f16700Schasinglulu 
145*91f16700Schasinglulu #define SMB_SLVSTARTBUSYCMD_MASK		0x80000000U
146*91f16700Schasinglulu #define SMB_SLVSTARTBUSYCMD_SHIFT		31U
147*91f16700Schasinglulu 
148*91f16700Schasinglulu #define SMB_SLVABORT_MASK			0x40000000U
149*91f16700Schasinglulu #define SMB_SLVABORT_SHIFT			30U
150*91f16700Schasinglulu 
151*91f16700Schasinglulu #define SMB_SLVSTS_MASK				0x03800000U
152*91f16700Schasinglulu #define SMB_SLVSTS_SHIFT			23U
153*91f16700Schasinglulu 
154*91f16700Schasinglulu #define SMB_SLVPEC_MASK				0x00000100U
155*91f16700Schasinglulu #define SMB_SLVPEC_SHIFT			8U
156*91f16700Schasinglulu 
157*91f16700Schasinglulu /* SMBUS Event enable register */
158*91f16700Schasinglulu #define SMB_EVTEN_REG				0x38U
159*91f16700Schasinglulu 
160*91f16700Schasinglulu #define SMB_MSTRRXFIFOFULLEN_MASK		0x80000000U
161*91f16700Schasinglulu #define SMB_MSTRRXFIFOFULLEN_SHIFT		31U
162*91f16700Schasinglulu 
163*91f16700Schasinglulu #define SMB_MSTRRXFIFOTHRHITEN_MASK		0x40000000U
164*91f16700Schasinglulu #define SMB_MSTRRXFIFOTHRHITEN_SHIFT		30U
165*91f16700Schasinglulu 
166*91f16700Schasinglulu #define SMB_MSTRRXEVTEN_MASK			0x20000000U
167*91f16700Schasinglulu #define SMB_MSTRRXEVTEN_SHIFT			29U
168*91f16700Schasinglulu 
169*91f16700Schasinglulu #define SMB_MSTRSTARTBUSYEN_MASK		0x10000000U
170*91f16700Schasinglulu #define SMB_MSTRSTARTBUSYEN_SHIFT		28U
171*91f16700Schasinglulu 
172*91f16700Schasinglulu #define SMB_MSTRTXUNDEN_MASK			0x08000000U
173*91f16700Schasinglulu #define SMB_MSTRTXUNDEN_SHIFT			27U
174*91f16700Schasinglulu 
175*91f16700Schasinglulu #define SMB_SLVRXFIFOFULLEN_MASK		0x04000000U
176*91f16700Schasinglulu #define SMB_SLVRXFIFOFULLEN_SHIFT		26U
177*91f16700Schasinglulu 
178*91f16700Schasinglulu #define SMB_SLVRXFIFOTHRHITEN_MASK		0x02000000U
179*91f16700Schasinglulu #define SMB_SLVRXFIFOTHRHITEN_SHIFT		25U
180*91f16700Schasinglulu 
181*91f16700Schasinglulu #define SMB_SLVRXEVTEN_MASK			0x01000000U
182*91f16700Schasinglulu #define SMB_SLVRXEVTEN_SHIFT			24U
183*91f16700Schasinglulu 
184*91f16700Schasinglulu #define SMB_SLVSTARTBUSYEN_MASK			0x00800000U
185*91f16700Schasinglulu #define SMB_SLVSTARTBUSYEN_SHIFT		23U
186*91f16700Schasinglulu 
187*91f16700Schasinglulu #define SMB_SLVTXUNDEN_MASK			0x00400000U
188*91f16700Schasinglulu #define SMB_SLVTXUNDEN_SHIFT			22U
189*91f16700Schasinglulu 
190*91f16700Schasinglulu #define SMB_SLVRDEVTEN_MASK			0x00200000U
191*91f16700Schasinglulu #define SMB_SLVRDEVTEN_SHIFT			21U
192*91f16700Schasinglulu 
193*91f16700Schasinglulu /* SMBUS Event status register */
194*91f16700Schasinglulu #define SMB_EVTSTS_REG				0x3CU
195*91f16700Schasinglulu 
196*91f16700Schasinglulu #define SMB_MSTRRXFIFOFULLSTS_MASK		0x80000000U
197*91f16700Schasinglulu #define SMB_MSTRRXFIFOFULLSTS_SHIFT		31U
198*91f16700Schasinglulu 
199*91f16700Schasinglulu #define SMB_MSTRRXFIFOTHRHITSTS_MASK		0x40000000U
200*91f16700Schasinglulu #define SMB_MSTRRXFIFOTHRHITSTS_SHIFT		30U
201*91f16700Schasinglulu 
202*91f16700Schasinglulu #define SMB_MSTRRXEVTSTS_MASK			0x20000000U
203*91f16700Schasinglulu #define SMB_MSTRRXEVTSTS_SHIFT			29U
204*91f16700Schasinglulu 
205*91f16700Schasinglulu #define SMB_MSTRSTARTBUSYSTS_MASK		0x10000000U
206*91f16700Schasinglulu #define SMB_MSTRSTARTBUSYSTS_SHIFT		28U
207*91f16700Schasinglulu 
208*91f16700Schasinglulu #define SMB_MSTRTXUNDSTS_MASK			0x08000000U
209*91f16700Schasinglulu #define SMB_MSTRTXUNDSTS_SHIFT			27U
210*91f16700Schasinglulu 
211*91f16700Schasinglulu #define SMB_SLVRXFIFOFULLSTS_MASK		0x04000000U
212*91f16700Schasinglulu #define SMB_SLVRXFIFOFULLSTS_SHIFT		26U
213*91f16700Schasinglulu 
214*91f16700Schasinglulu #define SMB_SLVRXFIFOTHRHITSTS_MASK		0x02000000U
215*91f16700Schasinglulu #define SMB_SLVRXFIFOTHRHITSTS_SHIFT		25U
216*91f16700Schasinglulu 
217*91f16700Schasinglulu #define SMB_SLVRXEVTSTS_MASK			0x01000000U
218*91f16700Schasinglulu #define SMB_SLVRXEVTSTS_SHIFT			24U
219*91f16700Schasinglulu 
220*91f16700Schasinglulu #define SMB_SLVSTARTBUSYSTS_MASK		0x00800000U
221*91f16700Schasinglulu #define SMB_SLVSTARTBUSYSTS_SHIFT		23U
222*91f16700Schasinglulu 
223*91f16700Schasinglulu #define SMB_SLVTXUNDSTS_MASK			0x00400000U
224*91f16700Schasinglulu #define SMB_SLVTXUNDSTS_SHIFT			22U
225*91f16700Schasinglulu 
226*91f16700Schasinglulu #define SMB_SLVRDEVTSTS_MASK			0x00200000U
227*91f16700Schasinglulu #define SMB_SLVRDEVTSTS_SHIFT			21U
228*91f16700Schasinglulu 
229*91f16700Schasinglulu /* SMBUS Master data write register */
230*91f16700Schasinglulu #define SMB_MSTRDATAWR_REG			0x40U
231*91f16700Schasinglulu 
232*91f16700Schasinglulu #define SMB_MSTRWRSTS_MASK			0x80000000U
233*91f16700Schasinglulu #define SMB_MSTRWRSTS_SHIFT			31U
234*91f16700Schasinglulu 
235*91f16700Schasinglulu #define SMB_MSTRWRDATA_MASK			0x000000FFU
236*91f16700Schasinglulu #define SMB_MSTRWRDATA_SHIFT			0U
237*91f16700Schasinglulu 
238*91f16700Schasinglulu /* SMBUS Master data read register */
239*91f16700Schasinglulu #define SMB_MSTRDATARD_REG			0x44U
240*91f16700Schasinglulu 
241*91f16700Schasinglulu #define SMB_MSTRRDSTS_MASK			0xC0000000U
242*91f16700Schasinglulu #define SMB_MSTRRDSTS_SHIFT			30U
243*91f16700Schasinglulu 
244*91f16700Schasinglulu #define SMB_MSTRRDPECERR_MASK			0x20000000U
245*91f16700Schasinglulu #define SMB_MSTRRDPECERR_SHIFT			29U
246*91f16700Schasinglulu 
247*91f16700Schasinglulu #define SMB_MSTRRDDATA_MASK			0x000000FFU
248*91f16700Schasinglulu #define SMB_MSTRRDDATA_SHIFT			0U
249*91f16700Schasinglulu 
250*91f16700Schasinglulu /* SMBUS Slave data write register */
251*91f16700Schasinglulu #define SMB_SLVDATAWR_REG			0x48U
252*91f16700Schasinglulu 
253*91f16700Schasinglulu #define SMB_SLVWRSTS_MASK			0x80000000U
254*91f16700Schasinglulu #define SMB_SLVWRSTS_SHIFT			31U
255*91f16700Schasinglulu 
256*91f16700Schasinglulu #define SMB_SLVWRDATA_MASK			0x000000FFU
257*91f16700Schasinglulu #define SMB_SLVWRDATA_SHIFT			0U
258*91f16700Schasinglulu 
259*91f16700Schasinglulu /* SMBUS Slave data read register */
260*91f16700Schasinglulu #define SMB_SLVDATARD_REG			0x4CU
261*91f16700Schasinglulu 
262*91f16700Schasinglulu #define SMB_SLVRDSTS_MASK			0xC0000000U
263*91f16700Schasinglulu #define SMB_SLVRDSTS_SHIFT			30U
264*91f16700Schasinglulu 
265*91f16700Schasinglulu #define SMB_SLVRDERRSTS_MASK			0x30000000U
266*91f16700Schasinglulu #define SMB_SLVRDERRSTS_SHIFT			28U
267*91f16700Schasinglulu 
268*91f16700Schasinglulu #define SMB_SLVRDDATA_MASK			0x000000FFU
269*91f16700Schasinglulu #define SMB_SLVRDDATA_SHIFT			0U
270*91f16700Schasinglulu 
271*91f16700Schasinglulu #endif /* I2C_REGS */
272