|
@@ -72,15 +72,33 @@ enum max14577_muic_reg {
|
|
MAX14577_MUIC_REG_END,
|
|
MAX14577_MUIC_REG_END,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * Combined charger types for max14577 and max77836.
|
|
|
|
+ *
|
|
|
|
+ * On max14577 three lower bits map to STATUS2/CHGTYP field.
|
|
|
|
+ * However the max77836 has different two last values of STATUS2/CHGTYP.
|
|
|
|
+ * To indicate the difference enum has two additional values for max77836.
|
|
|
|
+ * These values are just a register value bitwise OR with 0x8.
|
|
|
|
+ */
|
|
enum max14577_muic_charger_type {
|
|
enum max14577_muic_charger_type {
|
|
- MAX14577_CHARGER_TYPE_NONE = 0,
|
|
|
|
- MAX14577_CHARGER_TYPE_USB,
|
|
|
|
- MAX14577_CHARGER_TYPE_DOWNSTREAM_PORT,
|
|
|
|
- MAX14577_CHARGER_TYPE_DEDICATED_CHG,
|
|
|
|
- MAX14577_CHARGER_TYPE_SPECIAL_500MA,
|
|
|
|
- MAX14577_CHARGER_TYPE_SPECIAL_1A,
|
|
|
|
- MAX14577_CHARGER_TYPE_RESERVED,
|
|
|
|
- MAX14577_CHARGER_TYPE_DEAD_BATTERY = 7,
|
|
|
|
|
|
+ MAX14577_CHARGER_TYPE_NONE = 0x0,
|
|
|
|
+ MAX14577_CHARGER_TYPE_USB = 0x1,
|
|
|
|
+ MAX14577_CHARGER_TYPE_DOWNSTREAM_PORT = 0x2,
|
|
|
|
+ MAX14577_CHARGER_TYPE_DEDICATED_CHG = 0x3,
|
|
|
|
+ MAX14577_CHARGER_TYPE_SPECIAL_500MA = 0x4,
|
|
|
|
+ /* Special 1A or 2A charger */
|
|
|
|
+ MAX14577_CHARGER_TYPE_SPECIAL_1A = 0x5,
|
|
|
|
+ /* max14577: reserved, used on max77836 */
|
|
|
|
+ MAX14577_CHARGER_TYPE_RESERVED = 0x6,
|
|
|
|
+ /* max14577: dead-battery charing with maximum current 100mA */
|
|
|
|
+ MAX14577_CHARGER_TYPE_DEAD_BATTERY = 0x7,
|
|
|
|
+ /*
|
|
|
|
+ * max77836: special charger (bias on D+/D-),
|
|
|
|
+ * matches register value of 0x6
|
|
|
|
+ */
|
|
|
|
+ MAX77836_CHARGER_TYPE_SPECIAL_BIAS = 0xe,
|
|
|
|
+ /* max77836: reserved, register value 0x7 */
|
|
|
|
+ MAX77836_CHARGER_TYPE_RESERVED = 0xf,
|
|
};
|
|
};
|
|
|
|
|
|
/* MAX14577 interrupts */
|
|
/* MAX14577 interrupts */
|
|
@@ -121,13 +139,15 @@ enum max14577_muic_charger_type {
|
|
#define STATUS2_CHGTYP_SHIFT 0
|
|
#define STATUS2_CHGTYP_SHIFT 0
|
|
#define STATUS2_CHGDETRUN_SHIFT 3
|
|
#define STATUS2_CHGDETRUN_SHIFT 3
|
|
#define STATUS2_DCDTMR_SHIFT 4
|
|
#define STATUS2_DCDTMR_SHIFT 4
|
|
-#define STATUS2_DBCHG_SHIFT 5
|
|
|
|
|
|
+#define MAX14577_STATUS2_DBCHG_SHIFT 5
|
|
|
|
+#define MAX77836_STATUS2_DXOVP_SHIFT 5
|
|
#define STATUS2_VBVOLT_SHIFT 6
|
|
#define STATUS2_VBVOLT_SHIFT 6
|
|
#define MAX77836_STATUS2_VIDRM_SHIFT 7
|
|
#define MAX77836_STATUS2_VIDRM_SHIFT 7
|
|
#define STATUS2_CHGTYP_MASK (0x7 << STATUS2_CHGTYP_SHIFT)
|
|
#define STATUS2_CHGTYP_MASK (0x7 << STATUS2_CHGTYP_SHIFT)
|
|
#define STATUS2_CHGDETRUN_MASK BIT(STATUS2_CHGDETRUN_SHIFT)
|
|
#define STATUS2_CHGDETRUN_MASK BIT(STATUS2_CHGDETRUN_SHIFT)
|
|
#define STATUS2_DCDTMR_MASK BIT(STATUS2_DCDTMR_SHIFT)
|
|
#define STATUS2_DCDTMR_MASK BIT(STATUS2_DCDTMR_SHIFT)
|
|
-#define STATUS2_DBCHG_MASK BIT(STATUS2_DBCHG_SHIFT)
|
|
|
|
|
|
+#define MAX14577_STATUS2_DBCHG_MASK BIT(MAX14577_STATUS2_DBCHG_SHIFT)
|
|
|
|
+#define MAX77836_STATUS2_DXOVP_MASK BIT(MAX77836_STATUS2_DXOVP_SHIFT)
|
|
#define STATUS2_VBVOLT_MASK BIT(STATUS2_VBVOLT_SHIFT)
|
|
#define STATUS2_VBVOLT_MASK BIT(STATUS2_VBVOLT_SHIFT)
|
|
#define MAX77836_STATUS2_VIDRM_MASK BIT(MAX77836_STATUS2_VIDRM_SHIFT)
|
|
#define MAX77836_STATUS2_VIDRM_MASK BIT(MAX77836_STATUS2_VIDRM_SHIFT)
|
|
|
|
|
|
@@ -177,9 +197,11 @@ enum max14577_muic_charger_type {
|
|
#define CTRL3_JIGSET_SHIFT 0
|
|
#define CTRL3_JIGSET_SHIFT 0
|
|
#define CTRL3_BOOTSET_SHIFT 2
|
|
#define CTRL3_BOOTSET_SHIFT 2
|
|
#define CTRL3_ADCDBSET_SHIFT 4
|
|
#define CTRL3_ADCDBSET_SHIFT 4
|
|
|
|
+#define CTRL3_WBTH_SHIFT 6
|
|
#define CTRL3_JIGSET_MASK (0x3 << CTRL3_JIGSET_SHIFT)
|
|
#define CTRL3_JIGSET_MASK (0x3 << CTRL3_JIGSET_SHIFT)
|
|
#define CTRL3_BOOTSET_MASK (0x3 << CTRL3_BOOTSET_SHIFT)
|
|
#define CTRL3_BOOTSET_MASK (0x3 << CTRL3_BOOTSET_SHIFT)
|
|
#define CTRL3_ADCDBSET_MASK (0x3 << CTRL3_ADCDBSET_SHIFT)
|
|
#define CTRL3_ADCDBSET_MASK (0x3 << CTRL3_ADCDBSET_SHIFT)
|
|
|
|
+#define CTRL3_WBTH_MASK (0x3 << CTRL3_WBTH_SHIFT)
|
|
|
|
|
|
/* Slave addr = 0x4A: Charger */
|
|
/* Slave addr = 0x4A: Charger */
|
|
enum max14577_charger_reg {
|
|
enum max14577_charger_reg {
|
|
@@ -210,16 +232,20 @@ enum max14577_charger_reg {
|
|
#define CDETCTRL1_CHGTYPMAN_SHIFT 1
|
|
#define CDETCTRL1_CHGTYPMAN_SHIFT 1
|
|
#define CDETCTRL1_DCDEN_SHIFT 2
|
|
#define CDETCTRL1_DCDEN_SHIFT 2
|
|
#define CDETCTRL1_DCD2SCT_SHIFT 3
|
|
#define CDETCTRL1_DCD2SCT_SHIFT 3
|
|
-#define CDETCTRL1_DCHKTM_SHIFT 4
|
|
|
|
-#define CDETCTRL1_DBEXIT_SHIFT 5
|
|
|
|
|
|
+#define MAX14577_CDETCTRL1_DCHKTM_SHIFT 4
|
|
|
|
+#define MAX77836_CDETCTRL1_CDLY_SHIFT 4
|
|
|
|
+#define MAX14577_CDETCTRL1_DBEXIT_SHIFT 5
|
|
|
|
+#define MAX77836_CDETCTRL1_DCDCPL_SHIFT 5
|
|
#define CDETCTRL1_DBIDLE_SHIFT 6
|
|
#define CDETCTRL1_DBIDLE_SHIFT 6
|
|
#define CDETCTRL1_CDPDET_SHIFT 7
|
|
#define CDETCTRL1_CDPDET_SHIFT 7
|
|
#define CDETCTRL1_CHGDETEN_MASK BIT(CDETCTRL1_CHGDETEN_SHIFT)
|
|
#define CDETCTRL1_CHGDETEN_MASK BIT(CDETCTRL1_CHGDETEN_SHIFT)
|
|
#define CDETCTRL1_CHGTYPMAN_MASK BIT(CDETCTRL1_CHGTYPMAN_SHIFT)
|
|
#define CDETCTRL1_CHGTYPMAN_MASK BIT(CDETCTRL1_CHGTYPMAN_SHIFT)
|
|
#define CDETCTRL1_DCDEN_MASK BIT(CDETCTRL1_DCDEN_SHIFT)
|
|
#define CDETCTRL1_DCDEN_MASK BIT(CDETCTRL1_DCDEN_SHIFT)
|
|
#define CDETCTRL1_DCD2SCT_MASK BIT(CDETCTRL1_DCD2SCT_SHIFT)
|
|
#define CDETCTRL1_DCD2SCT_MASK BIT(CDETCTRL1_DCD2SCT_SHIFT)
|
|
-#define CDETCTRL1_DCHKTM_MASK BIT(CDETCTRL1_DCHKTM_SHIFT)
|
|
|
|
-#define CDETCTRL1_DBEXIT_MASK BIT(CDETCTRL1_DBEXIT_SHIFT)
|
|
|
|
|
|
+#define MAX14577_CDETCTRL1_DCHKTM_MASK BIT(MAX14577_CDETCTRL1_DCHKTM_SHIFT)
|
|
|
|
+#define MAX77836_CDETCTRL1_CDDLY_MASK BIT(MAX77836_CDETCTRL1_CDDLY_SHIFT)
|
|
|
|
+#define MAX14577_CDETCTRL1_DBEXIT_MASK BIT(MAX14577_CDETCTRL1_DBEXIT_SHIFT)
|
|
|
|
+#define MAX77836_CDETCTRL1_DCDCPL_MASK BIT(MAX77836_CDETCTRL1_DCDCPL_SHIFT)
|
|
#define CDETCTRL1_DBIDLE_MASK BIT(CDETCTRL1_DBIDLE_SHIFT)
|
|
#define CDETCTRL1_DBIDLE_MASK BIT(CDETCTRL1_DBIDLE_SHIFT)
|
|
#define CDETCTRL1_CDPDET_MASK BIT(CDETCTRL1_CDPDET_SHIFT)
|
|
#define CDETCTRL1_CDPDET_MASK BIT(CDETCTRL1_CDPDET_SHIFT)
|
|
|
|
|