You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.4 KiB
71 lines
2.4 KiB
From 5469e15c9a0025e8822762ab9acfc3ee50e55c2c Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Bruno=20Pr=C3=A9mont?= <bonbons@linux-vserver.org>
|
|
Date: Tue, 9 Jun 2015 08:30:48 +0200
|
|
Subject: [PATCH] mfd: axp20x: Add missing registers, and mark more registers
|
|
volatile
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
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.
|
|
|
|
Cc: Bruno Prémont <bonbons@linux-vserver.org>
|
|
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
|
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
Acked-by: Lee Jones <lee.jones@linaro.org>
|
|
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
|
|
---
|
|
Changes in v2:
|
|
-Add a AXP20X_OCV_MAX define
|
|
Changes in v3:
|
|
-Add Bruno's S-o-b
|
|
---
|
|
drivers/mfd/axp20x.c | 8 +++++++-
|
|
include/linux/mfd/axp20x.h | 6 ++++++
|
|
2 files changed, 13 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/mfd/axp20x.c
|
|
+++ b/drivers/mfd/axp20x.c
|
|
@@ -39,10 +39,16 @@ static const char * const axp20x_model_n
|
|
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(15)),
|
|
};
|
|
|
|
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 = {
|
|
@@ -159,7 +165,7 @@ static const struct regmap_config axp20x
|
|
.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,
|
|
};
|
|
|
|
--- a/include/linux/mfd/axp20x.h
|
|
+++ b/include/linux/mfd/axp20x.h
|
|
@@ -151,6 +151,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
|
|
|
|
|