mfd: axp20x: Add missing registers, and mark more registers volatile
authorBruno Prémont <bonbons@linux-vserver.org>
Sat, 8 Aug 2015 15:58:40 +0000 (17:58 +0200)
committerLee Jones <lee.jones@linaro.org>
Wed, 12 Aug 2015 08:59:11 +0000 (09:59 +0100)
Add an extra set of registers which is necessary tu support the PMICs
battery charger function, and mark registers which contain status bits,
gpio status, and adc readings as volatile.

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/axp20x.c
include/linux/mfd/axp20x.h

index b369cfce866c3ea2722233265051e514b1f58ba2..d9f2f967d6537d428220d8fb79cbd458bcf5cb26 100644 (file)
@@ -61,10 +61,16 @@ static const struct regmap_access_table axp152_volatile_table = {
 static const struct regmap_range axp20x_writeable_ranges[] = {
        regmap_reg_range(AXP20X_DATACACHE(0), AXP20X_IRQ5_STATE),
        regmap_reg_range(AXP20X_DCDC_MODE, AXP20X_FG_RES),
+       regmap_reg_range(AXP20X_RDC_H, AXP20X_OCV(AXP20X_OCV_MAX)),
 };
 
 static const struct regmap_range axp20x_volatile_ranges[] = {
+       regmap_reg_range(AXP20X_PWR_INPUT_STATUS, AXP20X_USB_OTG_STATUS),
+       regmap_reg_range(AXP20X_CHRG_CTRL1, AXP20X_CHRG_CTRL2),
        regmap_reg_range(AXP20X_IRQ1_EN, AXP20X_IRQ5_STATE),
+       regmap_reg_range(AXP20X_ACIN_V_ADC_H, AXP20X_IPSOUT_V_HIGH_L),
+       regmap_reg_range(AXP20X_GPIO20_SS, AXP20X_GPIO3_CTRL),
+       regmap_reg_range(AXP20X_FG_RES, AXP20X_RDC_L),
 };
 
 static const struct regmap_access_table axp20x_writeable_table = {
@@ -195,7 +201,7 @@ static const struct regmap_config axp20x_regmap_config = {
        .val_bits       = 8,
        .wr_table       = &axp20x_writeable_table,
        .volatile_table = &axp20x_volatile_table,
-       .max_register   = AXP20X_FG_RES,
+       .max_register   = AXP20X_OCV(AXP20X_OCV_MAX),
        .cache_type     = REGCACHE_RBTREE,
 };
 
index 52203d5f7984ab67f77604a1508fcecdd40e4c8b..cc8ad1e1a307bd1cf4eda99ed109dd9e53f178bf 100644 (file)
@@ -190,6 +190,12 @@ enum {
 #define AXP20X_CC_CTRL                 0xb8
 #define AXP20X_FG_RES                  0xb9
 
+/* OCV */
+#define AXP20X_RDC_H                   0xba
+#define AXP20X_RDC_L                   0xbb
+#define AXP20X_OCV(m)                  (0xc0 + (m))
+#define AXP20X_OCV_MAX                 0xf
+
 /* AXP22X specific registers */
 #define AXP22X_BATLOW_THRES1           0xe6