]>
Commit | Line | Data |
---|---|---|
1a59d1b8 | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
1da177e4 LT |
2 | /* ********************************************************************* |
3 | * SB1250 Board Support Package | |
42a3b4f2 | 4 | * |
70342287 | 5 | * SMBUS Constants File: sb1250_smbus.h |
42a3b4f2 RB |
6 | * |
7 | * This module contains constants and macros useful for | |
1da177e4 | 8 | * manipulating the SB1250's SMbus devices. |
42a3b4f2 | 9 | * |
4f19f990 AI |
10 | * SB1250 specification level: 10/21/02 |
11 | * BCM1280 specification level: 11/24/03 | |
42a3b4f2 RB |
12 | * |
13 | ********************************************************************* | |
1da177e4 LT |
14 | * |
15 | * Copyright 2000,2001,2002,2003 | |
16 | * Broadcom Corporation. All rights reserved. | |
42a3b4f2 | 17 | * |
1da177e4 LT |
18 | ********************************************************************* */ |
19 | ||
20 | ||
21 | #ifndef _SB1250_SMBUS_H | |
22 | #define _SB1250_SMBUS_H | |
23 | ||
a1ce3928 | 24 | #include <asm/sibyte/sb1250_defs.h> |
1da177e4 LT |
25 | |
26 | /* | |
27 | * SMBus Clock Frequency Register (Table 14-2) | |
28 | */ | |
29 | ||
70342287 RB |
30 | #define S_SMB_FREQ_DIV 0 |
31 | #define M_SMB_FREQ_DIV _SB_MAKEMASK(13, S_SMB_FREQ_DIV) | |
32 | #define V_SMB_FREQ_DIV(x) _SB_MAKEVALUE(x, S_SMB_FREQ_DIV) | |
1da177e4 LT |
33 | |
34 | #define K_SMB_FREQ_400KHZ 0x1F | |
35 | #define K_SMB_FREQ_100KHZ 0x7D | |
4cbf2bea | 36 | #define K_SMB_FREQ_10KHZ 1250 |
1da177e4 | 37 | |
70342287 RB |
38 | #define S_SMB_CMD 0 |
39 | #define M_SMB_CMD _SB_MAKEMASK(8, S_SMB_CMD) | |
40 | #define V_SMB_CMD(x) _SB_MAKEVALUE(x, S_SMB_CMD) | |
1da177e4 LT |
41 | |
42 | /* | |
43 | * SMBus control register (Table 14-4) | |
44 | */ | |
45 | ||
70342287 RB |
46 | #define M_SMB_ERR_INTR _SB_MAKEMASK1(0) |
47 | #define M_SMB_FINISH_INTR _SB_MAKEMASK1(1) | |
4cbf2bea | 48 | |
70342287 RB |
49 | #define S_SMB_DATA_OUT 4 |
50 | #define M_SMB_DATA_OUT _SB_MAKEMASK1(S_SMB_DATA_OUT) | |
51 | #define V_SMB_DATA_OUT(x) _SB_MAKEVALUE(x, S_SMB_DATA_OUT) | |
4cbf2bea | 52 | |
70342287 RB |
53 | #define M_SMB_DATA_DIR _SB_MAKEMASK1(5) |
54 | #define M_SMB_DATA_DIR_OUTPUT M_SMB_DATA_DIR | |
55 | #define M_SMB_CLK_OUT _SB_MAKEMASK1(6) | |
56 | #define M_SMB_DIRECT_ENABLE _SB_MAKEMASK1(7) | |
1da177e4 LT |
57 | |
58 | /* | |
59 | * SMBus status registers (Table 14-5) | |
60 | */ | |
61 | ||
70342287 RB |
62 | #define M_SMB_BUSY _SB_MAKEMASK1(0) |
63 | #define M_SMB_ERROR _SB_MAKEMASK1(1) | |
64 | #define M_SMB_ERROR_TYPE _SB_MAKEMASK1(2) | |
4cbf2bea AI |
65 | |
66 | #if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480) | |
70342287 RB |
67 | #define S_SMB_SCL_IN 5 |
68 | #define M_SMB_SCL_IN _SB_MAKEMASK1(S_SMB_SCL_IN) | |
69 | #define V_SMB_SCL_IN(x) _SB_MAKEVALUE(x, S_SMB_SCL_IN) | |
70 | #define G_SMB_SCL_IN(x) _SB_GETVALUE(x, S_SMB_SCL_IN, M_SMB_SCL_IN) | |
4cbf2bea AI |
71 | #endif /* 1250 PASS3 || 112x PASS1 || 1480 */ |
72 | ||
70342287 RB |
73 | #define S_SMB_REF 6 |
74 | #define M_SMB_REF _SB_MAKEMASK1(S_SMB_REF) | |
75 | #define V_SMB_REF(x) _SB_MAKEVALUE(x, S_SMB_REF) | |
76 | #define G_SMB_REF(x) _SB_GETVALUE(x, S_SMB_REF, M_SMB_REF) | |
4cbf2bea | 77 | |
70342287 RB |
78 | #define S_SMB_DATA_IN 7 |
79 | #define M_SMB_DATA_IN _SB_MAKEMASK1(S_SMB_DATA_IN) | |
80 | #define V_SMB_DATA_IN(x) _SB_MAKEVALUE(x, S_SMB_DATA_IN) | |
81 | #define G_SMB_DATA_IN(x) _SB_GETVALUE(x, S_SMB_DATA_IN, M_SMB_DATA_IN) | |
1da177e4 LT |
82 | |
83 | /* | |
84 | * SMBus Start/Command registers (Table 14-9) | |
85 | */ | |
86 | ||
70342287 RB |
87 | #define S_SMB_ADDR 0 |
88 | #define M_SMB_ADDR _SB_MAKEMASK(7, S_SMB_ADDR) | |
89 | #define V_SMB_ADDR(x) _SB_MAKEVALUE(x, S_SMB_ADDR) | |
90 | #define G_SMB_ADDR(x) _SB_GETVALUE(x, S_SMB_ADDR, M_SMB_ADDR) | |
1da177e4 | 91 | |
70342287 | 92 | #define M_SMB_QDATA _SB_MAKEMASK1(7) |
1da177e4 | 93 | |
70342287 RB |
94 | #define S_SMB_TT 8 |
95 | #define M_SMB_TT _SB_MAKEMASK(3, S_SMB_TT) | |
96 | #define V_SMB_TT(x) _SB_MAKEVALUE(x, S_SMB_TT) | |
97 | #define G_SMB_TT(x) _SB_GETVALUE(x, S_SMB_TT, M_SMB_TT) | |
1da177e4 | 98 | |
70342287 RB |
99 | #define K_SMB_TT_WR1BYTE 0 |
100 | #define K_SMB_TT_WR2BYTE 1 | |
101 | #define K_SMB_TT_WR3BYTE 2 | |
102 | #define K_SMB_TT_CMD_RD1BYTE 3 | |
103 | #define K_SMB_TT_CMD_RD2BYTE 4 | |
104 | #define K_SMB_TT_RD1BYTE 5 | |
105 | #define K_SMB_TT_QUICKCMD 6 | |
106 | #define K_SMB_TT_EEPROMREAD 7 | |
1da177e4 LT |
107 | |
108 | #define V_SMB_TT_WR1BYTE V_SMB_TT(K_SMB_TT_WR1BYTE) | |
109 | #define V_SMB_TT_WR2BYTE V_SMB_TT(K_SMB_TT_WR2BYTE) | |
110 | #define V_SMB_TT_WR3BYTE V_SMB_TT(K_SMB_TT_WR3BYTE) | |
111 | #define V_SMB_TT_CMD_RD1BYTE V_SMB_TT(K_SMB_TT_CMD_RD1BYTE) | |
112 | #define V_SMB_TT_CMD_RD2BYTE V_SMB_TT(K_SMB_TT_CMD_RD2BYTE) | |
113 | #define V_SMB_TT_RD1BYTE V_SMB_TT(K_SMB_TT_RD1BYTE) | |
114 | #define V_SMB_TT_QUICKCMD V_SMB_TT(K_SMB_TT_QUICKCMD) | |
115 | #define V_SMB_TT_EEPROMREAD V_SMB_TT(K_SMB_TT_EEPROMREAD) | |
116 | ||
70342287 | 117 | #define M_SMB_PEC _SB_MAKEMASK1(15) |
1da177e4 LT |
118 | |
119 | /* | |
120 | * SMBus Data Register (Table 14-6) and SMBus Extra Register (Table 14-7) | |
121 | */ | |
122 | ||
70342287 RB |
123 | #define S_SMB_LB 0 |
124 | #define M_SMB_LB _SB_MAKEMASK(8, S_SMB_LB) | |
125 | #define V_SMB_LB(x) _SB_MAKEVALUE(x, S_SMB_LB) | |
1da177e4 | 126 | |
70342287 RB |
127 | #define S_SMB_MB 8 |
128 | #define M_SMB_MB _SB_MAKEMASK(8, S_SMB_MB) | |
129 | #define V_SMB_MB(x) _SB_MAKEVALUE(x, S_SMB_MB) | |
1da177e4 LT |
130 | |
131 | ||
132 | /* | |
133 | * SMBus Packet Error Check register (Table 14-8) | |
134 | */ | |
135 | ||
70342287 RB |
136 | #define S_SPEC_PEC 0 |
137 | #define M_SPEC_PEC _SB_MAKEMASK(8, S_SPEC_PEC) | |
138 | #define V_SPEC_MB(x) _SB_MAKEVALUE(x, S_SPEC_PEC) | |
1da177e4 LT |
139 | |
140 | ||
4cbf2bea | 141 | #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480) |
1da177e4 | 142 | |
70342287 RB |
143 | #define S_SMB_CMDH 8 |
144 | #define M_SMB_CMDH _SB_MAKEMASK(8, S_SMB_CMDH) | |
145 | #define V_SMB_CMDH(x) _SB_MAKEVALUE(x, S_SMB_CMDH) | |
1da177e4 LT |
146 | |
147 | #define M_SMB_EXTEND _SB_MAKEMASK1(14) | |
148 | ||
70342287 RB |
149 | #define S_SMB_DFMT 8 |
150 | #define M_SMB_DFMT _SB_MAKEMASK(3, S_SMB_DFMT) | |
151 | #define V_SMB_DFMT(x) _SB_MAKEVALUE(x, S_SMB_DFMT) | |
152 | #define G_SMB_DFMT(x) _SB_GETVALUE(x, S_SMB_DFMT, M_SMB_DFMT) | |
1da177e4 | 153 | |
70342287 RB |
154 | #define K_SMB_DFMT_1BYTE 0 |
155 | #define K_SMB_DFMT_2BYTE 1 | |
156 | #define K_SMB_DFMT_3BYTE 2 | |
157 | #define K_SMB_DFMT_4BYTE 3 | |
158 | #define K_SMB_DFMT_NODATA 4 | |
159 | #define K_SMB_DFMT_CMD4BYTE 5 | |
160 | #define K_SMB_DFMT_CMD5BYTE 6 | |
161 | #define K_SMB_DFMT_RESERVED 7 | |
1da177e4 LT |
162 | |
163 | #define V_SMB_DFMT_1BYTE V_SMB_DFMT(K_SMB_DFMT_1BYTE) | |
164 | #define V_SMB_DFMT_2BYTE V_SMB_DFMT(K_SMB_DFMT_2BYTE) | |
165 | #define V_SMB_DFMT_3BYTE V_SMB_DFMT(K_SMB_DFMT_3BYTE) | |
166 | #define V_SMB_DFMT_4BYTE V_SMB_DFMT(K_SMB_DFMT_4BYTE) | |
167 | #define V_SMB_DFMT_NODATA V_SMB_DFMT(K_SMB_DFMT_NODATA) | |
168 | #define V_SMB_DFMT_CMD4BYTE V_SMB_DFMT(K_SMB_DFMT_CMD4BYTE) | |
169 | #define V_SMB_DFMT_CMD5BYTE V_SMB_DFMT(K_SMB_DFMT_CMD5BYTE) | |
170 | #define V_SMB_DFMT_RESERVED V_SMB_DFMT(K_SMB_DFMT_RESERVED) | |
171 | ||
70342287 RB |
172 | #define S_SMB_AFMT 11 |
173 | #define M_SMB_AFMT _SB_MAKEMASK(2, S_SMB_AFMT) | |
174 | #define V_SMB_AFMT(x) _SB_MAKEVALUE(x, S_SMB_AFMT) | |
175 | #define G_SMB_AFMT(x) _SB_GETVALUE(x, S_SMB_AFMT, M_SMB_AFMT) | |
4cbf2bea | 176 | |
70342287 RB |
177 | #define K_SMB_AFMT_NONE 0 |
178 | #define K_SMB_AFMT_ADDR 1 | |
4cbf2bea AI |
179 | #define K_SMB_AFMT_ADDR_CMD1BYTE 2 |
180 | #define K_SMB_AFMT_ADDR_CMD2BYTE 3 | |
181 | ||
182 | #define V_SMB_AFMT_NONE V_SMB_AFMT(K_SMB_AFMT_NONE) | |
183 | #define V_SMB_AFMT_ADDR V_SMB_AFMT(K_SMB_AFMT_ADDR) | |
184 | #define V_SMB_AFMT_ADDR_CMD1BYTE V_SMB_AFMT(K_SMB_AFMT_ADDR_CMD1BYTE) | |
185 | #define V_SMB_AFMT_ADDR_CMD2BYTE V_SMB_AFMT(K_SMB_AFMT_ADDR_CMD2BYTE) | |
186 | ||
187 | #define M_SMB_DIR _SB_MAKEMASK1(13) | |
188 | ||
189 | #endif /* 1250 PASS2 || 112x PASS1 || 1480 */ | |
1da177e4 LT |
190 | |
191 | #endif |