Merge tag 'char-misc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
[firefly-linux-kernel-4.4.55.git] / include / linux / mfd / axp20x.h
index dfabd6db7ddf7c1cba523a022aa5dcf008671652..c2aa853fb412c1b1b3a7c714842ffd494b7cc606 100644 (file)
@@ -14,6 +14,7 @@
 enum {
        AXP202_ID = 0,
        AXP209_ID,
+       AXP221_ID,
        AXP288_ID,
        NR_AXP20X_VARIANTS,
 };
@@ -45,6 +46,28 @@ enum {
 #define AXP20X_V_LTF_DISCHRG           0x3c
 #define AXP20X_V_HTF_DISCHRG           0x3d
 
+#define AXP22X_PWR_OUT_CTRL1           0x10
+#define AXP22X_PWR_OUT_CTRL2           0x12
+#define AXP22X_PWR_OUT_CTRL3           0x13
+#define AXP22X_DLDO1_V_OUT             0x15
+#define AXP22X_DLDO2_V_OUT             0x16
+#define AXP22X_DLDO3_V_OUT             0x17
+#define AXP22X_DLDO4_V_OUT             0x18
+#define AXP22X_ELDO1_V_OUT             0x19
+#define AXP22X_ELDO2_V_OUT             0x1a
+#define AXP22X_ELDO3_V_OUT             0x1b
+#define AXP22X_DC5LDO_V_OUT            0x1c
+#define AXP22X_DCDC1_V_OUT             0x21
+#define AXP22X_DCDC2_V_OUT             0x22
+#define AXP22X_DCDC3_V_OUT             0x23
+#define AXP22X_DCDC4_V_OUT             0x24
+#define AXP22X_DCDC5_V_OUT             0x25
+#define AXP22X_DCDC23_V_RAMP_CTRL      0x27
+#define AXP22X_ALDO1_V_OUT             0x28
+#define AXP22X_ALDO2_V_OUT             0x29
+#define AXP22X_ALDO3_V_OUT             0x2a
+#define AXP22X_CHRG_CTRL3              0x35
+
 /* Interrupt */
 #define AXP20X_IRQ1_EN                 0x40
 #define AXP20X_IRQ2_EN                 0x41
@@ -100,6 +123,9 @@ enum {
 #define AXP20X_VBUS_MON                        0x8b
 #define AXP20X_OVER_TMP                        0x8f
 
+#define AXP22X_PWREN_CTRL1             0x8c
+#define AXP22X_PWREN_CTRL2             0x8d
+
 /* GPIO */
 #define AXP20X_GPIO0_CTRL              0x90
 #define AXP20X_LDO5_V_OUT              0x91
@@ -108,6 +134,11 @@ enum {
 #define AXP20X_GPIO20_SS               0x94
 #define AXP20X_GPIO3_CTRL              0x95
 
+#define AXP22X_LDO_IO0_V_OUT           0x91
+#define AXP22X_LDO_IO1_V_OUT           0x93
+#define AXP22X_GPIO_STATE              0x94
+#define AXP22X_GPIO_PULL_DOWN          0x95
+
 /* Battery */
 #define AXP20X_CHRG_CC_31_24           0xb0
 #define AXP20X_CHRG_CC_23_16           0xb1
@@ -120,6 +151,9 @@ enum {
 #define AXP20X_CC_CTRL                 0xb8
 #define AXP20X_FG_RES                  0xb9
 
+/* AXP22X specific registers */
+#define AXP22X_BATLOW_THRES1           0xe6
+
 /* AXP288 specific registers */
 #define AXP288_PMIC_ADC_H               0x56
 #define AXP288_PMIC_ADC_L               0x57
@@ -158,6 +192,30 @@ enum {
        AXP20X_REG_ID_MAX,
 };
 
+enum {
+       AXP22X_DCDC1 = 0,
+       AXP22X_DCDC2,
+       AXP22X_DCDC3,
+       AXP22X_DCDC4,
+       AXP22X_DCDC5,
+       AXP22X_DC1SW,
+       AXP22X_DC5LDO,
+       AXP22X_ALDO1,
+       AXP22X_ALDO2,
+       AXP22X_ALDO3,
+       AXP22X_ELDO1,
+       AXP22X_ELDO2,
+       AXP22X_ELDO3,
+       AXP22X_DLDO1,
+       AXP22X_DLDO2,
+       AXP22X_DLDO3,
+       AXP22X_DLDO4,
+       AXP22X_RTC_LDO,
+       AXP22X_LDO_IO0,
+       AXP22X_LDO_IO1,
+       AXP22X_REG_ID_MAX,
+};
+
 /* IRQs */
 enum {
        AXP20X_IRQ_ACIN_OVER_V = 1,
@@ -199,6 +257,34 @@ enum {
        AXP20X_IRQ_GPIO0_INPUT,
 };
 
+enum axp22x_irqs {
+       AXP22X_IRQ_ACIN_OVER_V = 1,
+       AXP22X_IRQ_ACIN_PLUGIN,
+       AXP22X_IRQ_ACIN_REMOVAL,
+       AXP22X_IRQ_VBUS_OVER_V,
+       AXP22X_IRQ_VBUS_PLUGIN,
+       AXP22X_IRQ_VBUS_REMOVAL,
+       AXP22X_IRQ_VBUS_V_LOW,
+       AXP22X_IRQ_BATT_PLUGIN,
+       AXP22X_IRQ_BATT_REMOVAL,
+       AXP22X_IRQ_BATT_ENT_ACT_MODE,
+       AXP22X_IRQ_BATT_EXIT_ACT_MODE,
+       AXP22X_IRQ_CHARG,
+       AXP22X_IRQ_CHARG_DONE,
+       AXP22X_IRQ_BATT_TEMP_HIGH,
+       AXP22X_IRQ_BATT_TEMP_LOW,
+       AXP22X_IRQ_DIE_TEMP_HIGH,
+       AXP22X_IRQ_PEK_SHORT,
+       AXP22X_IRQ_PEK_LONG,
+       AXP22X_IRQ_LOW_PWR_LVL1,
+       AXP22X_IRQ_LOW_PWR_LVL2,
+       AXP22X_IRQ_TIMER,
+       AXP22X_IRQ_PEK_RIS_EDGE,
+       AXP22X_IRQ_PEK_FAL_EDGE,
+       AXP22X_IRQ_GPIO1_INPUT,
+       AXP22X_IRQ_GPIO0_INPUT,
+};
+
 enum axp288_irqs {
        AXP288_IRQ_VBUS_FALL     = 2,
        AXP288_IRQ_VBUS_RISE,
@@ -275,4 +361,16 @@ struct axp20x_fg_pdata {
        int thermistor_curve[MAX_THERM_CURVE_SIZE][2];
 };
 
+struct axp20x_chrg_pdata {
+       int max_cc;
+       int max_cv;
+       int def_cc;
+       int def_cv;
+};
+
+struct axp288_extcon_pdata {
+       /* GPIO pin control to switch D+/D- lines b/w PMIC and SOC */
+       struct gpio_desc *gpio_mux_cntl;
+};
+
 #endif /* __LINUX_MFD_AXP20X_H */