Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /*
0003  * Common variables for the Maxim MAX77843 driver
0004  *
0005  * Copyright (C) 2015 Samsung Electronics
0006  * Author: Jaewon Kim <jaewon02.kim@samsung.com>
0007  * Author: Beomho Seo <beomho.seo@samsung.com>
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 /* Topsys, Haptic and LED registers */
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 /* Charger registers */
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 /* Fuel gauge registers */
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 /* MUIC registers */
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     /* Topsys: SYSTEM */
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     /* Charger: CHG_INT */
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     /* MUIC: INT1 */
0158     MAX77843_MUIC_IRQ_INT1_ADC,
0159     MAX77843_MUIC_IRQ_INT1_ADCERROR,
0160     MAX77843_MUIC_IRQ_INT1_ADC1K,
0161 
0162     /* MUIC: INT2 */
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     /* MUIC: INT3 */
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 /* MAX77843 interrupts */
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 /* MAX77843 MAINCTRL1 register */
0189 #define MAINCTRL1_BIASEN_SHIFT          7
0190 #define MAX77843_MAINCTRL1_BIASEN_MASK      BIT(MAINCTRL1_BIASEN_SHIFT)
0191 
0192 /* MAX77843 MCONFIG register */
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 /* Max77843 charger insterrupts */
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 /* MAX77843 CHG_INT_OK register */
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 /* MAX77843 CHG_DETAILS_00 register */
0220 #define MAX77843_CHG_BAT_DTLS           BIT(0)
0221 
0222 /* MAX77843 CHG_DETAILS_01 register */
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 /* MAX77843 CHG_CNFG_00 register */
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 /* MAX77843 CHG_CNFG_01 register */
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 /* MAX77843 CHG_CNFG_02 register */
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 /* MAX77843 CHG_CNFG_03 register */
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 /* MAX77843 CHG_CNFG_06 register */
0276 #define MAX77843_CHG_WRITE_CAP_BLOCK        0x10
0277 #define MAX77843_CHG_WRITE_CAP_UNBLOCK      0x0C
0278 
0279 /* MAX77843_CHG_CNFG_09_register */
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 /* MAX77843 INTSRCMASK register */
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 /* MAX77843 STATUS register*/
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 /* MAX77843 CONTROL register */
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 /* MAX77843 switch port */
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 /* MAX77843 SAFEOUT LDO Control register */
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 /* __MAX77843_H__ */