| 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| 2 | /* |
| 3 | * Copyright 2021 ROHM Semiconductors. |
| 4 | * |
| 5 | * Author: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> |
| 6 | * |
| 7 | * Copyright 2014 Embest Technology Co. Ltd. Inc. |
| 8 | * |
| 9 | * Author: yanglsh@embest-tech.com |
| 10 | */ |
| 11 | |
| 12 | #ifndef _MFD_BD71815_H |
| 13 | #define _MFD_BD71815_H |
| 14 | |
| 15 | #include <linux/regmap.h> |
| 16 | |
| 17 | enum { |
| 18 | BD71815_BUCK1 = 0, |
| 19 | BD71815_BUCK2, |
| 20 | BD71815_BUCK3, |
| 21 | BD71815_BUCK4, |
| 22 | BD71815_BUCK5, |
| 23 | /* General Purpose */ |
| 24 | BD71815_LDO1, |
| 25 | BD71815_LDO2, |
| 26 | BD71815_LDO3, |
| 27 | /* LDOs for SD Card and SD Card Interface */ |
| 28 | BD71815_LDO4, |
| 29 | BD71815_LDO5, |
| 30 | /* LDO for DDR Reference Voltage */ |
| 31 | BD71815_LDODVREF, |
| 32 | /* LDO for Low-Power State Retention */ |
| 33 | BD71815_LDOLPSR, |
| 34 | BD71815_WLED, |
| 35 | BD71815_REGULATOR_CNT, |
| 36 | }; |
| 37 | |
| 38 | #define BD71815_SUPPLY_STATE_ENABLED 0x1 |
| 39 | |
| 40 | enum { |
| 41 | BD71815_REG_DEVICE = 0, |
| 42 | BD71815_REG_PWRCTRL, |
| 43 | BD71815_REG_BUCK1_MODE, |
| 44 | BD71815_REG_BUCK2_MODE, |
| 45 | BD71815_REG_BUCK3_MODE, |
| 46 | BD71815_REG_BUCK4_MODE, |
| 47 | BD71815_REG_BUCK5_MODE, |
| 48 | BD71815_REG_BUCK1_VOLT_H, |
| 49 | BD71815_REG_BUCK1_VOLT_L, |
| 50 | BD71815_REG_BUCK2_VOLT_H, |
| 51 | BD71815_REG_BUCK2_VOLT_L, |
| 52 | BD71815_REG_BUCK3_VOLT, |
| 53 | BD71815_REG_BUCK4_VOLT, |
| 54 | BD71815_REG_BUCK5_VOLT, |
| 55 | BD71815_REG_LED_CTRL, |
| 56 | BD71815_REG_LED_DIMM, |
| 57 | BD71815_REG_LDO_MODE1, |
| 58 | BD71815_REG_LDO_MODE2, |
| 59 | BD71815_REG_LDO_MODE3, |
| 60 | BD71815_REG_LDO_MODE4, |
| 61 | BD71815_REG_LDO1_VOLT, |
| 62 | BD71815_REG_LDO2_VOLT, |
| 63 | BD71815_REG_LDO3_VOLT, |
| 64 | BD71815_REG_LDO4_VOLT, |
| 65 | BD71815_REG_LDO5_VOLT_H, |
| 66 | BD71815_REG_LDO5_VOLT_L, |
| 67 | BD71815_REG_BUCK_PD_DIS, |
| 68 | BD71815_REG_LDO_PD_DIS, |
| 69 | BD71815_REG_GPO, |
| 70 | BD71815_REG_OUT32K, |
| 71 | BD71815_REG_SEC, |
| 72 | BD71815_REG_MIN, |
| 73 | BD71815_REG_HOUR, |
| 74 | BD71815_REG_WEEK, |
| 75 | BD71815_REG_DAY, |
| 76 | BD71815_REG_MONTH, |
| 77 | BD71815_REG_YEAR, |
| 78 | BD71815_REG_ALM0_SEC, |
| 79 | |
| 80 | BD71815_REG_ALM1_SEC = 0x2C, |
| 81 | |
| 82 | BD71815_REG_ALM0_MASK = 0x33, |
| 83 | BD71815_REG_ALM1_MASK, |
| 84 | BD71815_REG_ALM2, |
| 85 | BD71815_REG_TRIM, |
| 86 | BD71815_REG_CONF, |
| 87 | BD71815_REG_SYS_INIT, |
| 88 | BD71815_REG_CHG_STATE, |
| 89 | BD71815_REG_CHG_LAST_STATE, |
| 90 | BD71815_REG_BAT_STAT, |
| 91 | BD71815_REG_DCIN_STAT, |
| 92 | BD71815_REG_VSYS_STAT, |
| 93 | BD71815_REG_CHG_STAT, |
| 94 | BD71815_REG_CHG_WDT_STAT, |
| 95 | BD71815_REG_BAT_TEMP, |
| 96 | BD71815_REG_IGNORE_0, |
| 97 | BD71815_REG_INHIBIT_0, |
| 98 | BD71815_REG_DCIN_CLPS, |
| 99 | BD71815_REG_VSYS_REG, |
| 100 | BD71815_REG_VSYS_MAX, |
| 101 | BD71815_REG_VSYS_MIN, |
| 102 | BD71815_REG_CHG_SET1, |
| 103 | BD71815_REG_CHG_SET2, |
| 104 | BD71815_REG_CHG_WDT_PRE, |
| 105 | BD71815_REG_CHG_WDT_FST, |
| 106 | BD71815_REG_CHG_IPRE, |
| 107 | BD71815_REG_CHG_IFST, |
| 108 | BD71815_REG_CHG_IFST_TERM, |
| 109 | BD71815_REG_CHG_VPRE, |
| 110 | BD71815_REG_CHG_VBAT_1, |
| 111 | BD71815_REG_CHG_VBAT_2, |
| 112 | BD71815_REG_CHG_VBAT_3, |
| 113 | BD71815_REG_CHG_LED_1, |
| 114 | BD71815_REG_VF_TH, |
| 115 | BD71815_REG_BAT_SET_1, |
| 116 | BD71815_REG_BAT_SET_2, |
| 117 | BD71815_REG_BAT_SET_3, |
| 118 | BD71815_REG_ALM_VBAT_TH_U, |
| 119 | BD71815_REG_ALM_VBAT_TH_L, |
| 120 | BD71815_REG_ALM_DCIN_TH, |
| 121 | BD71815_REG_ALM_VSYS_TH, |
| 122 | BD71815_REG_VM_IBAT_U, |
| 123 | BD71815_REG_VM_IBAT_L, |
| 124 | BD71815_REG_VM_VBAT_U, |
| 125 | BD71815_REG_VM_VBAT_L, |
| 126 | BD71815_REG_VM_BTMP, |
| 127 | BD71815_REG_VM_VTH, |
| 128 | BD71815_REG_VM_DCIN_U, |
| 129 | BD71815_REG_VM_DCIN_L, |
| 130 | BD71815_REG_VM_VSYS, |
| 131 | BD71815_REG_VM_VF, |
| 132 | BD71815_REG_VM_OCI_PRE_U, |
| 133 | BD71815_REG_VM_OCI_PRE_L, |
| 134 | BD71815_REG_VM_OCV_PRE_U, |
| 135 | BD71815_REG_VM_OCV_PRE_L, |
| 136 | BD71815_REG_VM_OCI_PST_U, |
| 137 | BD71815_REG_VM_OCI_PST_L, |
| 138 | BD71815_REG_VM_OCV_PST_U, |
| 139 | BD71815_REG_VM_OCV_PST_L, |
| 140 | BD71815_REG_VM_SA_VBAT_U, |
| 141 | BD71815_REG_VM_SA_VBAT_L, |
| 142 | BD71815_REG_VM_SA_IBAT_U, |
| 143 | BD71815_REG_VM_SA_IBAT_L, |
| 144 | BD71815_REG_CC_CTRL, |
| 145 | BD71815_REG_CC_BATCAP1_TH_U, |
| 146 | BD71815_REG_CC_BATCAP1_TH_L, |
| 147 | BD71815_REG_CC_BATCAP2_TH_U, |
| 148 | BD71815_REG_CC_BATCAP2_TH_L, |
| 149 | BD71815_REG_CC_BATCAP3_TH_U, |
| 150 | BD71815_REG_CC_BATCAP3_TH_L, |
| 151 | BD71815_REG_CC_STAT, |
| 152 | BD71815_REG_CC_CCNTD_3, |
| 153 | BD71815_REG_CC_CCNTD_2, |
| 154 | BD71815_REG_CC_CCNTD_1, |
| 155 | BD71815_REG_CC_CCNTD_0, |
| 156 | BD71815_REG_CC_CURCD_U, |
| 157 | BD71815_REG_CC_CURCD_L, |
| 158 | BD71815_REG_VM_OCUR_THR_1, |
| 159 | BD71815_REG_VM_OCUR_DUR_1, |
| 160 | BD71815_REG_VM_OCUR_THR_2, |
| 161 | BD71815_REG_VM_OCUR_DUR_2, |
| 162 | BD71815_REG_VM_OCUR_THR_3, |
| 163 | BD71815_REG_VM_OCUR_DUR_3, |
| 164 | BD71815_REG_VM_OCUR_MON, |
| 165 | BD71815_REG_VM_BTMP_OV_THR, |
| 166 | BD71815_REG_VM_BTMP_OV_DUR, |
| 167 | BD71815_REG_VM_BTMP_LO_THR, |
| 168 | BD71815_REG_VM_BTMP_LO_DUR, |
| 169 | BD71815_REG_VM_BTMP_MON, |
| 170 | BD71815_REG_INT_EN_01, |
| 171 | |
| 172 | BD71815_REG_INT_EN_11 = 0x95, |
| 173 | BD71815_REG_INT_EN_12, |
| 174 | BD71815_REG_INT_STAT, |
| 175 | BD71815_REG_INT_STAT_01, |
| 176 | BD71815_REG_INT_STAT_02, |
| 177 | BD71815_REG_INT_STAT_03, |
| 178 | BD71815_REG_INT_STAT_04, |
| 179 | BD71815_REG_INT_STAT_05, |
| 180 | BD71815_REG_INT_STAT_06, |
| 181 | BD71815_REG_INT_STAT_07, |
| 182 | BD71815_REG_INT_STAT_08, |
| 183 | BD71815_REG_INT_STAT_09, |
| 184 | BD71815_REG_INT_STAT_10, |
| 185 | BD71815_REG_INT_STAT_11, |
| 186 | BD71815_REG_INT_STAT_12, |
| 187 | BD71815_REG_INT_UPDATE, |
| 188 | |
| 189 | BD71815_REG_VM_VSYS_U = 0xC0, |
| 190 | BD71815_REG_VM_VSYS_L, |
| 191 | BD71815_REG_VM_SA_VSYS_U, |
| 192 | BD71815_REG_VM_SA_VSYS_L, |
| 193 | |
| 194 | BD71815_REG_VM_SA_IBAT_MIN_U = 0xD0, |
| 195 | BD71815_REG_VM_SA_IBAT_MIN_L, |
| 196 | BD71815_REG_VM_SA_IBAT_MAX_U, |
| 197 | BD71815_REG_VM_SA_IBAT_MAX_L, |
| 198 | BD71815_REG_VM_SA_VBAT_MIN_U, |
| 199 | BD71815_REG_VM_SA_VBAT_MIN_L, |
| 200 | BD71815_REG_VM_SA_VBAT_MAX_U, |
| 201 | BD71815_REG_VM_SA_VBAT_MAX_L, |
| 202 | BD71815_REG_VM_SA_VSYS_MIN_U, |
| 203 | BD71815_REG_VM_SA_VSYS_MIN_L, |
| 204 | BD71815_REG_VM_SA_VSYS_MAX_U, |
| 205 | BD71815_REG_VM_SA_VSYS_MAX_L, |
| 206 | BD71815_REG_VM_SA_MINMAX_CLR, |
| 207 | |
| 208 | BD71815_REG_REX_CCNTD_3 = 0xE0, |
| 209 | BD71815_REG_REX_CCNTD_2, |
| 210 | BD71815_REG_REX_CCNTD_1, |
| 211 | BD71815_REG_REX_CCNTD_0, |
| 212 | BD71815_REG_REX_SA_VBAT_U, |
| 213 | BD71815_REG_REX_SA_VBAT_L, |
| 214 | BD71815_REG_REX_CTRL_1, |
| 215 | BD71815_REG_REX_CTRL_2, |
| 216 | BD71815_REG_FULL_CCNTD_3, |
| 217 | BD71815_REG_FULL_CCNTD_2, |
| 218 | BD71815_REG_FULL_CCNTD_1, |
| 219 | BD71815_REG_FULL_CCNTD_0, |
| 220 | BD71815_REG_FULL_CTRL, |
| 221 | |
| 222 | BD71815_REG_CCNTD_CHG_3 = 0xF0, |
| 223 | BD71815_REG_CCNTD_CHG_2, |
| 224 | |
| 225 | BD71815_REG_TEST_MODE = 0xFE, |
| 226 | BD71815_MAX_REGISTER, |
| 227 | }; |
| 228 | |
| 229 | /* BD71815_REG_BUCK1_MODE bits */ |
| 230 | #define BD71815_BUCK_RAMPRATE_MASK 0xC0 |
| 231 | #define BD71815_BUCK_RAMPRATE_10P00MV 0x0 |
| 232 | #define BD71815_BUCK_RAMPRATE_5P00MV 0x01 |
| 233 | #define BD71815_BUCK_RAMPRATE_2P50MV 0x02 |
| 234 | #define BD71815_BUCK_RAMPRATE_1P25MV 0x03 |
| 235 | |
| 236 | #define BD71815_BUCK_PWM_FIXED BIT(4) |
| 237 | #define BD71815_BUCK_SNVS_ON BIT(3) |
| 238 | #define BD71815_BUCK_RUN_ON BIT(2) |
| 239 | #define BD71815_BUCK_LPSR_ON BIT(1) |
| 240 | #define BD71815_BUCK_SUSP_ON BIT(0) |
| 241 | |
| 242 | /* BD71815_REG_BUCK1_VOLT_H bits */ |
| 243 | #define BD71815_BUCK_DVSSEL BIT(7) |
| 244 | #define BD71815_BUCK_STBY_DVS BIT(6) |
| 245 | #define BD71815_VOLT_MASK 0x3F |
| 246 | #define BD71815_BUCK1_H_DEFAULT 0x14 |
| 247 | #define BD71815_BUCK1_L_DEFAULT 0x14 |
| 248 | |
| 249 | /* BD71815_REG_BUCK2_VOLT_H bits */ |
| 250 | #define BD71815_BUCK2_H_DEFAULT 0x14 |
| 251 | #define BD71815_BUCK2_L_DEFAULT 0x14 |
| 252 | |
| 253 | /* WLED output */ |
| 254 | /* current register mask */ |
| 255 | #define LED_DIMM_MASK 0x3f |
| 256 | /* LED enable bits at LED_CTRL reg */ |
| 257 | #define LED_CHGDONE_EN BIT(4) |
| 258 | #define LED_RUN_ON BIT(2) |
| 259 | #define LED_LPSR_ON BIT(1) |
| 260 | #define LED_SUSP_ON BIT(0) |
| 261 | |
| 262 | /* BD71815_REG_LDO1_CTRL bits */ |
| 263 | #define LDO1_EN BIT(0) |
| 264 | #define LDO2_EN BIT(1) |
| 265 | #define LDO3_EN BIT(2) |
| 266 | #define DVREF_EN BIT(3) |
| 267 | #define VOSNVS_SW_EN BIT(4) |
| 268 | |
| 269 | /* LDO_MODE1_register */ |
| 270 | #define LDO1_SNVS_ON BIT(7) |
| 271 | #define LDO1_RUN_ON BIT(6) |
| 272 | #define LDO1_LPSR_ON BIT(5) |
| 273 | #define LDO1_SUSP_ON BIT(4) |
| 274 | /* set => register control, unset => GPIO control */ |
| 275 | #define LDO4_MODE_MASK BIT(3) |
| 276 | #define LDO4_MODE_I2C BIT(3) |
| 277 | #define LDO4_MODE_GPIO 0 |
| 278 | /* set => register control, unset => start when DCIN connected */ |
| 279 | #define LDO3_MODE_MASK BIT(2) |
| 280 | #define LDO3_MODE_I2C BIT(2) |
| 281 | #define LDO3_MODE_DCIN 0 |
| 282 | |
| 283 | /* LDO_MODE2 register */ |
| 284 | #define LDO3_SNVS_ON BIT(7) |
| 285 | #define LDO3_RUN_ON BIT(6) |
| 286 | #define LDO3_LPSR_ON BIT(5) |
| 287 | #define LDO3_SUSP_ON BIT(4) |
| 288 | #define LDO2_SNVS_ON BIT(3) |
| 289 | #define LDO2_RUN_ON BIT(2) |
| 290 | #define LDO2_LPSR_ON BIT(1) |
| 291 | #define LDO2_SUSP_ON BIT(0) |
| 292 | |
| 293 | |
| 294 | /* LDO_MODE3 register */ |
| 295 | #define LDO5_SNVS_ON BIT(7) |
| 296 | #define LDO5_RUN_ON BIT(6) |
| 297 | #define LDO5_LPSR_ON BIT(5) |
| 298 | #define LDO5_SUSP_ON BIT(4) |
| 299 | #define LDO4_SNVS_ON BIT(3) |
| 300 | #define LDO4_RUN_ON BIT(2) |
| 301 | #define LDO4_LPSR_ON BIT(1) |
| 302 | #define LDO4_SUSP_ON BIT(0) |
| 303 | |
| 304 | /* LDO_MODE4 register */ |
| 305 | #define DVREF_SNVS_ON BIT(7) |
| 306 | #define DVREF_RUN_ON BIT(6) |
| 307 | #define DVREF_LPSR_ON BIT(5) |
| 308 | #define DVREF_SUSP_ON BIT(4) |
| 309 | #define LDO_LPSR_SNVS_ON BIT(3) |
| 310 | #define LDO_LPSR_RUN_ON BIT(2) |
| 311 | #define LDO_LPSR_LPSR_ON BIT(1) |
| 312 | #define LDO_LPSR_SUSP_ON BIT(0) |
| 313 | |
| 314 | /* BD71815_REG_OUT32K bits */ |
| 315 | #define OUT32K_EN BIT(0) |
| 316 | #define OUT32K_MODE BIT(1) |
| 317 | #define OUT32K_MODE_CMOS BIT(1) |
| 318 | #define OUT32K_MODE_OPEN_DRAIN 0 |
| 319 | |
| 320 | /* BD71815_REG_BAT_STAT bits */ |
| 321 | #define BAT_DET BIT(5) |
| 322 | #define BAT_DET_OFFSET 5 |
| 323 | #define BAT_DET_DONE BIT(4) |
| 324 | #define VBAT_OV BIT(3) |
| 325 | #define DBAT_DET BIT(0) |
| 326 | |
| 327 | /* BD71815_REG_VBUS_STAT bits */ |
| 328 | #define VBUS_DET BIT(0) |
| 329 | |
| 330 | #define BD71815_REG_RTC_START BD71815_REG_SEC |
| 331 | #define BD71815_REG_RTC_ALM_START BD71815_REG_ALM0_SEC |
| 332 | |
| 333 | /* BD71815_REG_ALM0_MASK bits */ |
| 334 | #define A0_ONESEC BIT(7) |
| 335 | |
| 336 | /* BD71815_REG_INT_EN_00 bits */ |
| 337 | #define ALMALE BIT(0) |
| 338 | |
| 339 | /* BD71815_REG_INT_STAT_03 bits */ |
| 340 | #define DCIN_MON_DET BIT(1) |
| 341 | #define DCIN_MON_RES BIT(0) |
| 342 | #define POWERON_LONG BIT(2) |
| 343 | #define POWERON_MID BIT(3) |
| 344 | #define POWERON_SHORT BIT(4) |
| 345 | #define POWERON_PRESS BIT(5) |
| 346 | |
| 347 | /* BD71805_REG_INT_STAT_08 bits */ |
| 348 | #define VBAT_MON_DET BIT(1) |
| 349 | #define VBAT_MON_RES BIT(0) |
| 350 | |
| 351 | /* BD71805_REG_INT_STAT_11 bits */ |
| 352 | #define INT_STAT_11_VF_DET BIT(7) |
| 353 | #define INT_STAT_11_VF_RES BIT(6) |
| 354 | #define INT_STAT_11_VF125_DET BIT(5) |
| 355 | #define INT_STAT_11_VF125_RES BIT(4) |
| 356 | #define INT_STAT_11_OVTMP_DET BIT(3) |
| 357 | #define INT_STAT_11_OVTMP_RES BIT(2) |
| 358 | #define INT_STAT_11_LOTMP_DET BIT(1) |
| 359 | #define INT_STAT_11_LOTMP_RES BIT(0) |
| 360 | |
| 361 | #define VBAT_MON_DET BIT(1) |
| 362 | #define VBAT_MON_RES BIT(0) |
| 363 | |
| 364 | /* BD71815_REG_PWRCTRL bits */ |
| 365 | #define RESTARTEN BIT(0) |
| 366 | |
| 367 | /* BD71815_REG_GPO bits */ |
| 368 | #define READY_FORCE_LOW BIT(2) |
| 369 | #define BD71815_GPIO_DRIVE_MASK BIT(4) |
| 370 | #define BD71815_GPIO_OPEN_DRAIN 0 |
| 371 | #define BD71815_GPIO_CMOS BIT(4) |
| 372 | |
| 373 | /* BD71815 interrupt masks */ |
| 374 | enum { |
| 375 | BD71815_INT_EN_01_BUCKAST_MASK = 0x0F, |
| 376 | BD71815_INT_EN_02_DCINAST_MASK = 0x3E, |
| 377 | BD71815_INT_EN_03_DCINAST_MASK = 0x3F, |
| 378 | BD71815_INT_EN_04_VSYSAST_MASK = 0xCF, |
| 379 | BD71815_INT_EN_05_CHGAST_MASK = 0xFC, |
| 380 | BD71815_INT_EN_06_BATAST_MASK = 0xF3, |
| 381 | BD71815_INT_EN_07_BMONAST_MASK = 0xFE, |
| 382 | BD71815_INT_EN_08_BMONAST_MASK = 0x03, |
| 383 | BD71815_INT_EN_09_BMONAST_MASK = 0x07, |
| 384 | BD71815_INT_EN_10_BMONAST_MASK = 0x3F, |
| 385 | BD71815_INT_EN_11_TMPAST_MASK = 0xFF, |
| 386 | BD71815_INT_EN_12_ALMAST_MASK = 0x07, |
| 387 | }; |
| 388 | /* BD71815 interrupt irqs */ |
| 389 | enum { |
| 390 | /* BUCK reg interrupts */ |
| 391 | BD71815_INT_BUCK1_OCP, |
| 392 | BD71815_INT_BUCK2_OCP, |
| 393 | BD71815_INT_BUCK3_OCP, |
| 394 | BD71815_INT_BUCK4_OCP, |
| 395 | BD71815_INT_BUCK5_OCP, |
| 396 | BD71815_INT_LED_OVP, |
| 397 | BD71815_INT_LED_OCP, |
| 398 | BD71815_INT_LED_SCP, |
| 399 | /* DCIN1 interrupts */ |
| 400 | BD71815_INT_DCIN_RMV, |
| 401 | BD71815_INT_CLPS_OUT, |
| 402 | BD71815_INT_CLPS_IN, |
| 403 | BD71815_INT_DCIN_OVP_RES, |
| 404 | BD71815_INT_DCIN_OVP_DET, |
| 405 | /* DCIN2 interrupts */ |
| 406 | BD71815_INT_DCIN_MON_RES, |
| 407 | BD71815_INT_DCIN_MON_DET, |
| 408 | BD71815_INT_WDOG, |
| 409 | /* Vsys INT_STAT_04 */ |
| 410 | BD71815_INT_VSYS_UV_RES, |
| 411 | BD71815_INT_VSYS_UV_DET, |
| 412 | BD71815_INT_VSYS_LOW_RES, |
| 413 | BD71815_INT_VSYS_LOW_DET, |
| 414 | BD71815_INT_VSYS_MON_RES, |
| 415 | BD71815_INT_VSYS_MON_DET, |
| 416 | /* Charger INT_STAT_05 */ |
| 417 | BD71815_INT_CHG_WDG_TEMP, |
| 418 | BD71815_INT_CHG_WDG_TIME, |
| 419 | BD71815_INT_CHG_RECHARGE_RES, |
| 420 | BD71815_INT_CHG_RECHARGE_DET, |
| 421 | BD71815_INT_CHG_RANGED_TEMP_TRANSITION, |
| 422 | BD71815_INT_CHG_STATE_TRANSITION, |
| 423 | /* Battery INT_STAT_06 */ |
| 424 | BD71815_INT_BAT_TEMP_NORMAL, |
| 425 | BD71815_INT_BAT_TEMP_ERANGE, |
| 426 | BD71815_INT_BAT_REMOVED, |
| 427 | BD71815_INT_BAT_DETECTED, |
| 428 | BD71815_INT_THERM_REMOVED, |
| 429 | BD71815_INT_THERM_DETECTED, |
| 430 | /* Battery Mon 1 INT_STAT_07 */ |
| 431 | BD71815_INT_BAT_DEAD, |
| 432 | BD71815_INT_BAT_SHORTC_RES, |
| 433 | BD71815_INT_BAT_SHORTC_DET, |
| 434 | BD71815_INT_BAT_LOW_VOLT_RES, |
| 435 | BD71815_INT_BAT_LOW_VOLT_DET, |
| 436 | BD71815_INT_BAT_OVER_VOLT_RES, |
| 437 | BD71815_INT_BAT_OVER_VOLT_DET, |
| 438 | /* Battery Mon 2 INT_STAT_08 */ |
| 439 | BD71815_INT_BAT_MON_RES, |
| 440 | BD71815_INT_BAT_MON_DET, |
| 441 | /* Battery Mon 3 (Coulomb counter) INT_STAT_09 */ |
| 442 | BD71815_INT_BAT_CC_MON1, |
| 443 | BD71815_INT_BAT_CC_MON2, |
| 444 | BD71815_INT_BAT_CC_MON3, |
| 445 | /* Battery Mon 4 INT_STAT_10 */ |
| 446 | BD71815_INT_BAT_OVER_CURR_1_RES, |
| 447 | BD71815_INT_BAT_OVER_CURR_1_DET, |
| 448 | BD71815_INT_BAT_OVER_CURR_2_RES, |
| 449 | BD71815_INT_BAT_OVER_CURR_2_DET, |
| 450 | BD71815_INT_BAT_OVER_CURR_3_RES, |
| 451 | BD71815_INT_BAT_OVER_CURR_3_DET, |
| 452 | /* Temperature INT_STAT_11 */ |
| 453 | BD71815_INT_TEMP_BAT_LOW_RES, |
| 454 | BD71815_INT_TEMP_BAT_LOW_DET, |
| 455 | BD71815_INT_TEMP_BAT_HI_RES, |
| 456 | BD71815_INT_TEMP_BAT_HI_DET, |
| 457 | BD71815_INT_TEMP_CHIP_OVER_125_RES, |
| 458 | BD71815_INT_TEMP_CHIP_OVER_125_DET, |
| 459 | BD71815_INT_TEMP_CHIP_OVER_VF_RES, |
| 460 | BD71815_INT_TEMP_CHIP_OVER_VF_DET, |
| 461 | /* RTC Alarm INT_STAT_12 */ |
| 462 | BD71815_INT_RTC0, |
| 463 | BD71815_INT_RTC1, |
| 464 | BD71815_INT_RTC2, |
| 465 | }; |
| 466 | |
| 467 | #define BD71815_INT_BUCK1_OCP_MASK BIT(0) |
| 468 | #define BD71815_INT_BUCK2_OCP_MASK BIT(1) |
| 469 | #define BD71815_INT_BUCK3_OCP_MASK BIT(2) |
| 470 | #define BD71815_INT_BUCK4_OCP_MASK BIT(3) |
| 471 | #define BD71815_INT_BUCK5_OCP_MASK BIT(4) |
| 472 | #define BD71815_INT_LED_OVP_MASK BIT(5) |
| 473 | #define BD71815_INT_LED_OCP_MASK BIT(6) |
| 474 | #define BD71815_INT_LED_SCP_MASK BIT(7) |
| 475 | |
| 476 | #define BD71815_INT_DCIN_RMV_MASK BIT(1) |
| 477 | #define BD71815_INT_CLPS_OUT_MASK BIT(2) |
| 478 | #define BD71815_INT_CLPS_IN_MASK BIT(3) |
| 479 | #define BD71815_INT_DCIN_OVP_RES_MASK BIT(4) |
| 480 | #define BD71815_INT_DCIN_OVP_DET_MASK BIT(5) |
| 481 | |
| 482 | #define BD71815_INT_DCIN_MON_RES_MASK BIT(0) |
| 483 | #define BD71815_INT_DCIN_MON_DET_MASK BIT(1) |
| 484 | #define BD71815_INT_WDOG_MASK BIT(6) |
| 485 | |
| 486 | #define BD71815_INT_VSYS_UV_RES_MASK BIT(0) |
| 487 | #define BD71815_INT_VSYS_UV_DET_MASK BIT(1) |
| 488 | #define BD71815_INT_VSYS_LOW_RES_MASK BIT(2) |
| 489 | #define BD71815_INT_VSYS_LOW_DET_MASK BIT(3) |
| 490 | #define BD71815_INT_VSYS_MON_RES_MASK BIT(6) |
| 491 | #define BD71815_INT_VSYS_MON_DET_MASK BIT(7) |
| 492 | |
| 493 | #define BD71815_INT_CHG_WDG_TEMP_MASK BIT(2) |
| 494 | #define BD71815_INT_CHG_WDG_TIME_MASK BIT(3) |
| 495 | #define BD71815_INT_CHG_RECHARGE_RES_MASK BIT(4) |
| 496 | #define BD71815_INT_CHG_RECHARGE_DET_MASK BIT(5) |
| 497 | #define BD71815_INT_CHG_RANGED_TEMP_TRANSITION_MASK BIT(6) |
| 498 | #define BD71815_INT_CHG_STATE_TRANSITION_MASK BIT(7) |
| 499 | |
| 500 | #define BD71815_INT_BAT_TEMP_NORMAL_MASK BIT(0) |
| 501 | #define BD71815_INT_BAT_TEMP_ERANGE_MASK BIT(1) |
| 502 | #define BD71815_INT_BAT_REMOVED_MASK BIT(4) |
| 503 | #define BD71815_INT_BAT_DETECTED_MASK BIT(5) |
| 504 | #define BD71815_INT_THERM_REMOVED_MASK BIT(6) |
| 505 | #define BD71815_INT_THERM_DETECTED_MASK BIT(7) |
| 506 | |
| 507 | #define BD71815_INT_BAT_DEAD_MASK BIT(1) |
| 508 | #define BD71815_INT_BAT_SHORTC_RES_MASK BIT(2) |
| 509 | #define BD71815_INT_BAT_SHORTC_DET_MASK BIT(3) |
| 510 | #define BD71815_INT_BAT_LOW_VOLT_RES_MASK BIT(4) |
| 511 | #define BD71815_INT_BAT_LOW_VOLT_DET_MASK BIT(5) |
| 512 | #define BD71815_INT_BAT_OVER_VOLT_RES_MASK BIT(6) |
| 513 | #define BD71815_INT_BAT_OVER_VOLT_DET_MASK BIT(7) |
| 514 | |
| 515 | #define BD71815_INT_BAT_MON_RES_MASK BIT(0) |
| 516 | #define BD71815_INT_BAT_MON_DET_MASK BIT(1) |
| 517 | |
| 518 | #define BD71815_INT_BAT_CC_MON1_MASK BIT(0) |
| 519 | #define BD71815_INT_BAT_CC_MON2_MASK BIT(1) |
| 520 | #define BD71815_INT_BAT_CC_MON3_MASK BIT(2) |
| 521 | |
| 522 | #define BD71815_INT_BAT_OVER_CURR_1_RES_MASK BIT(0) |
| 523 | #define BD71815_INT_BAT_OVER_CURR_1_DET_MASK BIT(1) |
| 524 | #define BD71815_INT_BAT_OVER_CURR_2_RES_MASK BIT(2) |
| 525 | #define BD71815_INT_BAT_OVER_CURR_2_DET_MASK BIT(3) |
| 526 | #define BD71815_INT_BAT_OVER_CURR_3_RES_MASK BIT(4) |
| 527 | #define BD71815_INT_BAT_OVER_CURR_3_DET_MASK BIT(5) |
| 528 | |
| 529 | #define BD71815_INT_TEMP_BAT_LOW_RES_MASK BIT(0) |
| 530 | #define BD71815_INT_TEMP_BAT_LOW_DET_MASK BIT(1) |
| 531 | #define BD71815_INT_TEMP_BAT_HI_RES_MASK BIT(2) |
| 532 | #define BD71815_INT_TEMP_BAT_HI_DET_MASK BIT(3) |
| 533 | #define BD71815_INT_TEMP_CHIP_OVER_125_RES_MASK BIT(4) |
| 534 | #define BD71815_INT_TEMP_CHIP_OVER_125_DET_MASK BIT(5) |
| 535 | #define BD71815_INT_TEMP_CHIP_OVER_VF_RES_MASK BIT(6) |
| 536 | #define BD71815_INT_TEMP_CHIP_OVER_VF_DET_MASK BIT(7) |
| 537 | |
| 538 | #define BD71815_INT_RTC0_MASK BIT(0) |
| 539 | #define BD71815_INT_RTC1_MASK BIT(1) |
| 540 | #define BD71815_INT_RTC2_MASK BIT(2) |
| 541 | |
| 542 | /* BD71815_REG_CC_CTRL bits */ |
| 543 | #define CCNTRST 0x80 |
| 544 | #define CCNTENB 0x40 |
| 545 | #define CCCALIB 0x20 |
| 546 | |
| 547 | /* BD71815_REG_CC_CURCD */ |
| 548 | #define CURDIR_Discharging 0x8000 |
| 549 | |
| 550 | /* BD71815_REG_VM_SA_IBAT */ |
| 551 | #define IBAT_SA_DIR_Discharging 0x8000 |
| 552 | |
| 553 | /* BD71815_REG_REX_CTRL_1 bits */ |
| 554 | #define REX_CLR BIT(4) |
| 555 | |
| 556 | /* BD71815_REG_REX_CTRL_1 bits */ |
| 557 | #define REX_PMU_STATE_MASK BIT(2) |
| 558 | |
| 559 | /* BD71815_REG_LED_CTRL bits */ |
| 560 | #define CHGDONE_LED_EN BIT(4) |
| 561 | |
| 562 | #endif /* __LINUX_MFD_BD71815_H */ |
| 563 | |