From 716ca530e1c4515d8683c9d5be3d56b301758b66 Mon Sep 17 00:00:00 2001 From: James <> Date: Wed, 4 Nov 2015 11:49:21 +0000 Subject: trunk-47381 --- .../103-mfd-axp20x-add-missing-registers.patch | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 target/linux/sunxi/patches-4.1/103-mfd-axp20x-add-missing-registers.patch (limited to 'target/linux/sunxi/patches-4.1/103-mfd-axp20x-add-missing-registers.patch') diff --git a/target/linux/sunxi/patches-4.1/103-mfd-axp20x-add-missing-registers.patch b/target/linux/sunxi/patches-4.1/103-mfd-axp20x-add-missing-registers.patch new file mode 100644 index 0000000..a458579 --- /dev/null +++ b/target/linux/sunxi/patches-4.1/103-mfd-axp20x-add-missing-registers.patch @@ -0,0 +1,71 @@ +From 5469e15c9a0025e8822762ab9acfc3ee50e55c2c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bruno=20Pr=C3=A9mont?= +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 +Signed-off-by: Bruno Prémont +Signed-off-by: Hans de Goede +Acked-by: Lee Jones +Acked-by: Maxime Ripard +--- +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 + -- cgit v1.2.3