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