0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef __MAX77843_PRIVATE_H_
0011 #define __MAX77843_PRIVATE_H_
0012
0013 #include <linux/i2c.h>
0014 #include <linux/regmap.h>
0015
0016 #define I2C_ADDR_TOPSYS (0xCC >> 1)
0017 #define I2C_ADDR_CHG (0xD2 >> 1)
0018 #define I2C_ADDR_FG (0x6C >> 1)
0019 #define I2C_ADDR_MUIC (0x4A >> 1)
0020
0021
0022 enum max77843_sys_reg {
0023 MAX77843_SYS_REG_PMICID = 0x00,
0024 MAX77843_SYS_REG_PMICREV = 0x01,
0025 MAX77843_SYS_REG_MAINCTRL1 = 0x02,
0026 MAX77843_SYS_REG_INTSRC = 0x22,
0027 MAX77843_SYS_REG_INTSRCMASK = 0x23,
0028 MAX77843_SYS_REG_SYSINTSRC = 0x24,
0029 MAX77843_SYS_REG_SYSINTMASK = 0x26,
0030 MAX77843_SYS_REG_TOPSYS_STAT = 0x28,
0031 MAX77843_SYS_REG_SAFEOUTCTRL = 0xC6,
0032
0033 MAX77843_SYS_REG_END,
0034 };
0035
0036 enum max77843_haptic_reg {
0037 MAX77843_HAP_REG_MCONFIG = 0x10,
0038
0039 MAX77843_HAP_REG_END,
0040 };
0041
0042 enum max77843_led_reg {
0043 MAX77843_LED_REG_LEDEN = 0x30,
0044 MAX77843_LED_REG_LED0BRT = 0x31,
0045 MAX77843_LED_REG_LED1BRT = 0x32,
0046 MAX77843_LED_REG_LED2BRT = 0x33,
0047 MAX77843_LED_REG_LED3BRT = 0x34,
0048 MAX77843_LED_REG_LEDBLNK = 0x38,
0049 MAX77843_LED_REG_LEDRAMP = 0x36,
0050
0051 MAX77843_LED_REG_END,
0052 };
0053
0054
0055 enum max77843_charger_reg {
0056 MAX77843_CHG_REG_CHG_INT = 0xB0,
0057 MAX77843_CHG_REG_CHG_INT_MASK = 0xB1,
0058 MAX77843_CHG_REG_CHG_INT_OK = 0xB2,
0059 MAX77843_CHG_REG_CHG_DTLS_00 = 0xB3,
0060 MAX77843_CHG_REG_CHG_DTLS_01 = 0xB4,
0061 MAX77843_CHG_REG_CHG_DTLS_02 = 0xB5,
0062 MAX77843_CHG_REG_CHG_CNFG_00 = 0xB7,
0063 MAX77843_CHG_REG_CHG_CNFG_01 = 0xB8,
0064 MAX77843_CHG_REG_CHG_CNFG_02 = 0xB9,
0065 MAX77843_CHG_REG_CHG_CNFG_03 = 0xBA,
0066 MAX77843_CHG_REG_CHG_CNFG_04 = 0xBB,
0067 MAX77843_CHG_REG_CHG_CNFG_06 = 0xBD,
0068 MAX77843_CHG_REG_CHG_CNFG_07 = 0xBE,
0069 MAX77843_CHG_REG_CHG_CNFG_09 = 0xC0,
0070 MAX77843_CHG_REG_CHG_CNFG_10 = 0xC1,
0071 MAX77843_CHG_REG_CHG_CNFG_11 = 0xC2,
0072 MAX77843_CHG_REG_CHG_CNFG_12 = 0xC3,
0073
0074 MAX77843_CHG_REG_END,
0075 };
0076
0077
0078 enum max77843_fuelgauge {
0079 MAX77843_FG_REG_STATUS = 0x00,
0080 MAX77843_FG_REG_VALRT_TH = 0x01,
0081 MAX77843_FG_REG_TALRT_TH = 0x02,
0082 MAX77843_FG_REG_SALRT_TH = 0x03,
0083 MAX77843_FG_RATE_AT_RATE = 0x04,
0084 MAX77843_FG_REG_REMCAP_REP = 0x05,
0085 MAX77843_FG_REG_SOCREP = 0x06,
0086 MAX77843_FG_REG_AGE = 0x07,
0087 MAX77843_FG_REG_TEMP = 0x08,
0088 MAX77843_FG_REG_VCELL = 0x09,
0089 MAX77843_FG_REG_CURRENT = 0x0A,
0090 MAX77843_FG_REG_AVG_CURRENT = 0x0B,
0091 MAX77843_FG_REG_SOCMIX = 0x0D,
0092 MAX77843_FG_REG_SOCAV = 0x0E,
0093 MAX77843_FG_REG_REMCAP_MIX = 0x0F,
0094 MAX77843_FG_REG_FULLCAP = 0x10,
0095 MAX77843_FG_REG_AVG_TEMP = 0x16,
0096 MAX77843_FG_REG_CYCLES = 0x17,
0097 MAX77843_FG_REG_AVG_VCELL = 0x19,
0098 MAX77843_FG_REG_CONFIG = 0x1D,
0099 MAX77843_FG_REG_REMCAP_AV = 0x1F,
0100 MAX77843_FG_REG_FULLCAP_NOM = 0x23,
0101 MAX77843_FG_REG_MISCCFG = 0x2B,
0102 MAX77843_FG_REG_RCOMP = 0x38,
0103 MAX77843_FG_REG_FSTAT = 0x3D,
0104 MAX77843_FG_REG_DQACC = 0x45,
0105 MAX77843_FG_REG_DPACC = 0x46,
0106 MAX77843_FG_REG_OCV = 0xEE,
0107 MAX77843_FG_REG_VFOCV = 0xFB,
0108 MAX77843_FG_SOCVF = 0xFF,
0109
0110 MAX77843_FG_END,
0111 };
0112
0113
0114 enum max77843_muic_reg {
0115 MAX77843_MUIC_REG_ID = 0x00,
0116 MAX77843_MUIC_REG_INT1 = 0x01,
0117 MAX77843_MUIC_REG_INT2 = 0x02,
0118 MAX77843_MUIC_REG_INT3 = 0x03,
0119 MAX77843_MUIC_REG_STATUS1 = 0x04,
0120 MAX77843_MUIC_REG_STATUS2 = 0x05,
0121 MAX77843_MUIC_REG_STATUS3 = 0x06,
0122 MAX77843_MUIC_REG_INTMASK1 = 0x07,
0123 MAX77843_MUIC_REG_INTMASK2 = 0x08,
0124 MAX77843_MUIC_REG_INTMASK3 = 0x09,
0125 MAX77843_MUIC_REG_CDETCTRL1 = 0x0A,
0126 MAX77843_MUIC_REG_CDETCTRL2 = 0x0B,
0127 MAX77843_MUIC_REG_CONTROL1 = 0x0C,
0128 MAX77843_MUIC_REG_CONTROL2 = 0x0D,
0129 MAX77843_MUIC_REG_CONTROL3 = 0x0E,
0130 MAX77843_MUIC_REG_CONTROL4 = 0x16,
0131 MAX77843_MUIC_REG_HVCONTROL1 = 0x17,
0132 MAX77843_MUIC_REG_HVCONTROL2 = 0x18,
0133
0134 MAX77843_MUIC_REG_END,
0135 };
0136
0137 enum max77843_irq {
0138
0139 MAX77843_SYS_IRQ_SYSINTSRC_SYSUVLO_INT,
0140 MAX77843_SYS_IRQ_SYSINTSRC_SYSOVLO_INT,
0141 MAX77843_SYS_IRQ_SYSINTSRC_TSHDN_INT,
0142 MAX77843_SYS_IRQ_SYSINTSRC_TM_INT,
0143
0144
0145 MAX77843_CHG_IRQ_CHG_INT_BYP_I,
0146 MAX77843_CHG_IRQ_CHG_INT_BATP_I,
0147 MAX77843_CHG_IRQ_CHG_INT_BAT_I,
0148 MAX77843_CHG_IRQ_CHG_INT_CHG_I,
0149 MAX77843_CHG_IRQ_CHG_INT_WCIN_I,
0150 MAX77843_CHG_IRQ_CHG_INT_CHGIN_I,
0151 MAX77843_CHG_IRQ_CHG_INT_AICL_I,
0152
0153 MAX77843_IRQ_NUM,
0154 };
0155
0156 enum max77843_irq_muic {
0157
0158 MAX77843_MUIC_IRQ_INT1_ADC,
0159 MAX77843_MUIC_IRQ_INT1_ADCERROR,
0160 MAX77843_MUIC_IRQ_INT1_ADC1K,
0161
0162
0163 MAX77843_MUIC_IRQ_INT2_CHGTYP,
0164 MAX77843_MUIC_IRQ_INT2_CHGDETRUN,
0165 MAX77843_MUIC_IRQ_INT2_DCDTMR,
0166 MAX77843_MUIC_IRQ_INT2_DXOVP,
0167 MAX77843_MUIC_IRQ_INT2_VBVOLT,
0168
0169
0170 MAX77843_MUIC_IRQ_INT3_VBADC,
0171 MAX77843_MUIC_IRQ_INT3_VDNMON,
0172 MAX77843_MUIC_IRQ_INT3_DNRES,
0173 MAX77843_MUIC_IRQ_INT3_MPNACK,
0174 MAX77843_MUIC_IRQ_INT3_MRXBUFOW,
0175 MAX77843_MUIC_IRQ_INT3_MRXTRF,
0176 MAX77843_MUIC_IRQ_INT3_MRXPERR,
0177 MAX77843_MUIC_IRQ_INT3_MRXRDY,
0178
0179 MAX77843_MUIC_IRQ_NUM,
0180 };
0181
0182
0183 #define MAX77843_SYS_IRQ_SYSUVLO_INT BIT(0)
0184 #define MAX77843_SYS_IRQ_SYSOVLO_INT BIT(1)
0185 #define MAX77843_SYS_IRQ_TSHDN_INT BIT(2)
0186 #define MAX77843_SYS_IRQ_TM_INT BIT(3)
0187
0188
0189 #define MAINCTRL1_BIASEN_SHIFT 7
0190 #define MAX77843_MAINCTRL1_BIASEN_MASK BIT(MAINCTRL1_BIASEN_SHIFT)
0191
0192
0193 #define MCONFIG_MODE_SHIFT 7
0194 #define MCONFIG_MEN_SHIFT 6
0195 #define MCONFIG_PDIV_SHIFT 0
0196
0197 #define MAX77843_MCONFIG_MODE_MASK BIT(MCONFIG_MODE_SHIFT)
0198 #define MAX77843_MCONFIG_MEN_MASK BIT(MCONFIG_MEN_SHIFT)
0199 #define MAX77843_MCONFIG_PDIV_MASK (0x3 << MCONFIG_PDIV_SHIFT)
0200
0201
0202 #define MAX77843_CHG_BYP_I BIT(0)
0203 #define MAX77843_CHG_BATP_I BIT(2)
0204 #define MAX77843_CHG_BAT_I BIT(3)
0205 #define MAX77843_CHG_CHG_I BIT(4)
0206 #define MAX77843_CHG_WCIN_I BIT(5)
0207 #define MAX77843_CHG_CHGIN_I BIT(6)
0208 #define MAX77843_CHG_AICL_I BIT(7)
0209
0210
0211 #define MAX77843_CHG_BYP_OK BIT(0)
0212 #define MAX77843_CHG_BATP_OK BIT(2)
0213 #define MAX77843_CHG_BAT_OK BIT(3)
0214 #define MAX77843_CHG_CHG_OK BIT(4)
0215 #define MAX77843_CHG_WCIN_OK BIT(5)
0216 #define MAX77843_CHG_CHGIN_OK BIT(6)
0217 #define MAX77843_CHG_AICL_OK BIT(7)
0218
0219
0220 #define MAX77843_CHG_BAT_DTLS BIT(0)
0221
0222
0223 #define MAX77843_CHG_DTLS_MASK 0x0f
0224 #define MAX77843_CHG_PQ_MODE 0x00
0225 #define MAX77843_CHG_CC_MODE 0x01
0226 #define MAX77843_CHG_CV_MODE 0x02
0227 #define MAX77843_CHG_TO_MODE 0x03
0228 #define MAX77843_CHG_DO_MODE 0x04
0229 #define MAX77843_CHG_HT_MODE 0x05
0230 #define MAX77843_CHG_TF_MODE 0x06
0231 #define MAX77843_CHG_TS_MODE 0x07
0232 #define MAX77843_CHG_OFF_MODE 0x08
0233
0234 #define MAX77843_CHG_BAT_DTLS_MASK 0xf0
0235 #define MAX77843_CHG_NO_BAT (0x00 << 4)
0236 #define MAX77843_CHG_LOW_VOLT_BAT (0x01 << 4)
0237 #define MAX77843_CHG_LONG_BAT_TIME (0x02 << 4)
0238 #define MAX77843_CHG_OK_BAT (0x03 << 4)
0239 #define MAX77843_CHG_OK_LOW_VOLT_BAT (0x04 << 4)
0240 #define MAX77843_CHG_OVER_VOLT_BAT (0x05 << 4)
0241 #define MAX77843_CHG_OVER_CURRENT_BAT (0x06 << 4)
0242
0243
0244 #define MAX77843_CHG_MODE_MASK 0x0f
0245 #define MAX77843_CHG_DISABLE 0x00
0246 #define MAX77843_CHG_ENABLE 0x05
0247 #define MAX77843_CHG_MASK 0x01
0248 #define MAX77843_CHG_OTG_MASK 0x02
0249 #define MAX77843_CHG_BUCK_MASK 0x04
0250 #define MAX77843_CHG_BOOST_MASK 0x08
0251
0252
0253 #define MAX77843_CHG_RESTART_THRESHOLD_100 0x00
0254 #define MAX77843_CHG_RESTART_THRESHOLD_150 0x10
0255 #define MAX77843_CHG_RESTART_THRESHOLD_200 0x20
0256 #define MAX77843_CHG_RESTART_THRESHOLD_DISABLE 0x30
0257
0258
0259 #define MAX77843_CHG_FAST_CHG_CURRENT_MIN 100000
0260 #define MAX77843_CHG_FAST_CHG_CURRENT_MAX 3150000
0261 #define MAX77843_CHG_FAST_CHG_CURRENT_STEP 50000
0262 #define MAX77843_CHG_FAST_CHG_CURRENT_MASK 0x3f
0263 #define MAX77843_CHG_OTG_ILIMIT_500 (0x00 << 6)
0264 #define MAX77843_CHG_OTG_ILIMIT_900 (0x01 << 6)
0265 #define MAX77843_CHG_OTG_ILIMIT_1200 (0x02 << 6)
0266 #define MAX77843_CHG_OTG_ILIMIT_1500 (0x03 << 6)
0267 #define MAX77843_CHG_OTG_ILIMIT_MASK 0xc0
0268
0269
0270 #define MAX77843_CHG_TOP_OFF_CURRENT_MIN 125000
0271 #define MAX77843_CHG_TOP_OFF_CURRENT_MAX 650000
0272 #define MAX77843_CHG_TOP_OFF_CURRENT_STEP 75000
0273 #define MAX77843_CHG_TOP_OFF_CURRENT_MASK 0x07
0274
0275
0276 #define MAX77843_CHG_WRITE_CAP_BLOCK 0x10
0277 #define MAX77843_CHG_WRITE_CAP_UNBLOCK 0x0C
0278
0279
0280 #define MAX77843_CHG_INPUT_CURRENT_LIMIT_MIN 100000
0281 #define MAX77843_CHG_INPUT_CURRENT_LIMIT_MAX 4000000
0282 #define MAX77843_CHG_INPUT_CURRENT_LIMIT_REF 3367000
0283 #define MAX77843_CHG_INPUT_CURRENT_LIMIT_STEP 33000
0284
0285 #define MAX77843_MUIC_ADC BIT(0)
0286 #define MAX77843_MUIC_ADCERROR BIT(2)
0287 #define MAX77843_MUIC_ADC1K BIT(3)
0288
0289 #define MAX77843_MUIC_CHGTYP BIT(0)
0290 #define MAX77843_MUIC_CHGDETRUN BIT(1)
0291 #define MAX77843_MUIC_DCDTMR BIT(2)
0292 #define MAX77843_MUIC_DXOVP BIT(3)
0293 #define MAX77843_MUIC_VBVOLT BIT(4)
0294
0295 #define MAX77843_MUIC_VBADC BIT(0)
0296 #define MAX77843_MUIC_VDNMON BIT(1)
0297 #define MAX77843_MUIC_DNRES BIT(2)
0298 #define MAX77843_MUIC_MPNACK BIT(3)
0299 #define MAX77843_MUIC_MRXBUFOW BIT(4)
0300 #define MAX77843_MUIC_MRXTRF BIT(5)
0301 #define MAX77843_MUIC_MRXPERR BIT(6)
0302 #define MAX77843_MUIC_MRXRDY BIT(7)
0303
0304
0305 #define MAX77843_INTSRCMASK_CHGR 0
0306 #define MAX77843_INTSRCMASK_SYS 1
0307 #define MAX77843_INTSRCMASK_FG 2
0308 #define MAX77843_INTSRCMASK_MUIC 3
0309
0310 #define MAX77843_INTSRCMASK_CHGR_MASK BIT(MAX77843_INTSRCMASK_CHGR)
0311 #define MAX77843_INTSRCMASK_SYS_MASK BIT(MAX77843_INTSRCMASK_SYS)
0312 #define MAX77843_INTSRCMASK_FG_MASK BIT(MAX77843_INTSRCMASK_FG)
0313 #define MAX77843_INTSRCMASK_MUIC_MASK BIT(MAX77843_INTSRCMASK_MUIC)
0314
0315 #define MAX77843_INTSRC_MASK_MASK \
0316 (MAX77843_INTSRCMASK_MUIC_MASK | MAX77843_INTSRCMASK_FG_MASK | \
0317 MAX77843_INTSRCMASK_SYS_MASK | MAX77843_INTSRCMASK_CHGR_MASK)
0318
0319
0320 #define MAX77843_MUIC_STATUS1_ADC_SHIFT 0
0321 #define MAX77843_MUIC_STATUS1_ADCERROR_SHIFT 6
0322 #define MAX77843_MUIC_STATUS1_ADC1K_SHIFT 7
0323 #define MAX77843_MUIC_STATUS2_CHGTYP_SHIFT 0
0324 #define MAX77843_MUIC_STATUS2_CHGDETRUN_SHIFT 3
0325 #define MAX77843_MUIC_STATUS2_DCDTMR_SHIFT 4
0326 #define MAX77843_MUIC_STATUS2_DXOVP_SHIFT 5
0327 #define MAX77843_MUIC_STATUS2_VBVOLT_SHIFT 6
0328 #define MAX77843_MUIC_STATUS3_VBADC_SHIFT 0
0329 #define MAX77843_MUIC_STATUS3_VDNMON_SHIFT 4
0330 #define MAX77843_MUIC_STATUS3_DNRES_SHIFT 5
0331 #define MAX77843_MUIC_STATUS3_MPNACK_SHIFT 6
0332
0333 #define MAX77843_MUIC_STATUS1_ADC_MASK (0x1f << MAX77843_MUIC_STATUS1_ADC_SHIFT)
0334 #define MAX77843_MUIC_STATUS1_ADCERROR_MASK BIT(MAX77843_MUIC_STATUS1_ADCERROR_SHIFT)
0335 #define MAX77843_MUIC_STATUS1_ADC1K_MASK BIT(MAX77843_MUIC_STATUS1_ADC1K_SHIFT)
0336 #define MAX77843_MUIC_STATUS2_CHGTYP_MASK (0x7 << MAX77843_MUIC_STATUS2_CHGTYP_SHIFT)
0337 #define MAX77843_MUIC_STATUS2_CHGDETRUN_MASK BIT(MAX77843_MUIC_STATUS2_CHGDETRUN_SHIFT)
0338 #define MAX77843_MUIC_STATUS2_DCDTMR_MASK BIT(MAX77843_MUIC_STATUS2_DCDTMR_SHIFT)
0339 #define MAX77843_MUIC_STATUS2_DXOVP_MASK BIT(MAX77843_MUIC_STATUS2_DXOVP_SHIFT)
0340 #define MAX77843_MUIC_STATUS2_VBVOLT_MASK BIT(MAX77843_MUIC_STATUS2_VBVOLT_SHIFT)
0341 #define MAX77843_MUIC_STATUS3_VBADC_MASK (0xf << MAX77843_MUIC_STATUS3_VBADC_SHIFT)
0342 #define MAX77843_MUIC_STATUS3_VDNMON_MASK BIT(MAX77843_MUIC_STATUS3_VDNMON_SHIFT)
0343 #define MAX77843_MUIC_STATUS3_DNRES_MASK BIT(MAX77843_MUIC_STATUS3_DNRES_SHIFT)
0344 #define MAX77843_MUIC_STATUS3_MPNACK_MASK BIT(MAX77843_MUIC_STATUS3_MPNACK_SHIFT)
0345
0346
0347 #define MAX77843_MUIC_CONTROL1_COMP1SW_SHIFT 0
0348 #define MAX77843_MUIC_CONTROL1_COMP2SW_SHIFT 3
0349 #define MAX77843_MUIC_CONTROL1_NOBCCOMP_SHIFT 6
0350 #define MAX77843_MUIC_CONTROL1_IDBEN_SHIFT 7
0351 #define MAX77843_MUIC_CONTROL2_LOWPWR_SHIFT 0
0352 #define MAX77843_MUIC_CONTROL2_ADCEN_SHIFT 1
0353 #define MAX77843_MUIC_CONTROL2_CPEN_SHIFT 2
0354 #define MAX77843_MUIC_CONTROL2_ACC_DET_SHIFT 5
0355 #define MAX77843_MUIC_CONTROL2_USBCPINT_SHIFT 6
0356 #define MAX77843_MUIC_CONTROL2_RCPS_SHIFT 7
0357 #define MAX77843_MUIC_CONTROL3_JIGSET_SHIFT 0
0358 #define MAX77843_MUIC_CONTROL4_ADCDBSET_SHIFT 0
0359 #define MAX77843_MUIC_CONTROL4_USBAUTO_SHIFT 4
0360 #define MAX77843_MUIC_CONTROL4_FCTAUTO_SHIFT 5
0361 #define MAX77843_MUIC_CONTROL4_ADCMODE_SHIFT 6
0362
0363 #define MAX77843_MUIC_CONTROL1_COMP1SW_MASK (0x7 << MAX77843_MUIC_CONTROL1_COMP1SW_SHIFT)
0364 #define MAX77843_MUIC_CONTROL1_COMP2SW_MASK (0x7 << MAX77843_MUIC_CONTROL1_COMP2SW_SHIFT)
0365 #define MAX77843_MUIC_CONTROL1_IDBEN_MASK BIT(MAX77843_MUIC_CONTROL1_IDBEN_SHIFT)
0366 #define MAX77843_MUIC_CONTROL1_NOBCCOMP_MASK BIT(MAX77843_MUIC_CONTROL1_NOBCCOMP_SHIFT)
0367 #define MAX77843_MUIC_CONTROL2_LOWPWR_MASK BIT(MAX77843_MUIC_CONTROL2_LOWPWR_SHIFT)
0368 #define MAX77843_MUIC_CONTROL2_ADCEN_MASK BIT(MAX77843_MUIC_CONTROL2_ADCEN_SHIFT)
0369 #define MAX77843_MUIC_CONTROL2_CPEN_MASK BIT(MAX77843_MUIC_CONTROL2_CPEN_SHIFT)
0370 #define MAX77843_MUIC_CONTROL2_ACC_DET_MASK BIT(MAX77843_MUIC_CONTROL2_ACC_DET_SHIFT)
0371 #define MAX77843_MUIC_CONTROL2_USBCPINT_MASK BIT(MAX77843_MUIC_CONTROL2_USBCPINT_SHIFT)
0372 #define MAX77843_MUIC_CONTROL2_RCPS_MASK BIT(MAX77843_MUIC_CONTROL2_RCPS_SHIFT)
0373 #define MAX77843_MUIC_CONTROL3_JIGSET_MASK (0x3 << MAX77843_MUIC_CONTROL3_JIGSET_SHIFT)
0374 #define MAX77843_MUIC_CONTROL4_ADCDBSET_MASK (0x3 << MAX77843_MUIC_CONTROL4_ADCDBSET_SHIFT)
0375 #define MAX77843_MUIC_CONTROL4_USBAUTO_MASK BIT(MAX77843_MUIC_CONTROL4_USBAUTO_SHIFT)
0376 #define MAX77843_MUIC_CONTROL4_FCTAUTO_MASK BIT(MAX77843_MUIC_CONTROL4_FCTAUTO_SHIFT)
0377 #define MAX77843_MUIC_CONTROL4_ADCMODE_MASK (0x3 << MAX77843_MUIC_CONTROL4_ADCMODE_SHIFT)
0378
0379
0380 #define COM_OPEN 0
0381 #define COM_USB 1
0382 #define COM_AUDIO 2
0383 #define COM_UART 3
0384 #define COM_AUX_USB 4
0385 #define COM_AUX_UART 5
0386
0387 #define MAX77843_MUIC_CONTROL1_COM_SW \
0388 ((MAX77843_MUIC_CONTROL1_COMP1SW_MASK | \
0389 MAX77843_MUIC_CONTROL1_COMP2SW_MASK))
0390
0391 #define MAX77843_MUIC_CONTROL1_SW_OPEN \
0392 ((COM_OPEN << MAX77843_MUIC_CONTROL1_COMP1SW_SHIFT | \
0393 COM_OPEN << MAX77843_MUIC_CONTROL1_COMP2SW_SHIFT))
0394 #define MAX77843_MUIC_CONTROL1_SW_USB \
0395 ((COM_USB << MAX77843_MUIC_CONTROL1_COMP1SW_SHIFT | \
0396 COM_USB << MAX77843_MUIC_CONTROL1_COMP2SW_SHIFT))
0397 #define MAX77843_MUIC_CONTROL1_SW_AUDIO \
0398 ((COM_AUDIO << MAX77843_MUIC_CONTROL1_COMP1SW_SHIFT | \
0399 COM_AUDIO << MAX77843_MUIC_CONTROL1_COMP2SW_SHIFT))
0400 #define MAX77843_MUIC_CONTROL1_SW_UART \
0401 ((COM_UART << MAX77843_MUIC_CONTROL1_COMP1SW_SHIFT | \
0402 COM_UART << MAX77843_MUIC_CONTROL1_COMP2SW_SHIFT))
0403 #define MAX77843_MUIC_CONTROL1_SW_AUX_USB \
0404 ((COM_AUX_USB << MAX77843_MUIC_CONTROL1_COMP1SW_SHIFT | \
0405 COM_AUX_USB << MAX77843_MUIC_CONTROL1_COMP2SW_SHIFT))
0406 #define MAX77843_MUIC_CONTROL1_SW_AUX_UART \
0407 ((COM_AUX_UART << MAX77843_MUIC_CONTROL1_COMP1SW_SHIFT | \
0408 COM_AUX_UART << MAX77843_MUIC_CONTROL1_COMP2SW_SHIFT))
0409
0410 #define MAX77843_DISABLE 0
0411 #define MAX77843_ENABLE 1
0412
0413 #define CONTROL4_AUTO_DISABLE \
0414 ((MAX77843_DISABLE << MAX77843_MUIC_CONTROL4_USBAUTO_SHIFT) | \
0415 (MAX77843_DISABLE << MAX77843_MUIC_CONTROL4_FCTAUTO_SHIFT))
0416 #define CONTROL4_AUTO_ENABLE \
0417 ((MAX77843_ENABLE << MAX77843_MUIC_CONTROL4_USBAUTO_SHIFT) | \
0418 (MAX77843_ENABLE << MAX77843_MUIC_CONTROL4_FCTAUTO_SHIFT))
0419
0420
0421 #define SAFEOUTCTRL_SAFEOUT1_SHIFT 0
0422 #define SAFEOUTCTRL_SAFEOUT2_SHIFT 2
0423 #define SAFEOUTCTRL_ENSAFEOUT1_SHIFT 6
0424 #define SAFEOUTCTRL_ENSAFEOUT2_SHIFT 7
0425
0426 #define MAX77843_REG_SAFEOUTCTRL_ENSAFEOUT1 \
0427 BIT(SAFEOUTCTRL_ENSAFEOUT1_SHIFT)
0428 #define MAX77843_REG_SAFEOUTCTRL_ENSAFEOUT2 \
0429 BIT(SAFEOUTCTRL_ENSAFEOUT2_SHIFT)
0430 #define MAX77843_REG_SAFEOUTCTRL_SAFEOUT1_MASK \
0431 (0x3 << SAFEOUTCTRL_SAFEOUT1_SHIFT)
0432 #define MAX77843_REG_SAFEOUTCTRL_SAFEOUT2_MASK \
0433 (0x3 << SAFEOUTCTRL_SAFEOUT2_SHIFT)
0434
0435 #endif