Skip to contentSkip to conversation

mfd: axp20x: Add a few missing defines for AXP288 specific registers

PATCH Applied Hans de Goede 3 participants 8 messages Dec 16, 2016 – Jan 4, 2017

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v3 1/2 mfd: axp20x: Add a few missing defines for AXP288 specific registers

Add defines for the AXP288_POWER_REASON and AXP288_RT_BATT_V_H and AXP288_RT_BATT_V_L and AXP288_BC_* registers. While at it also move the AXP288_TS_ADC_H-AXP288_GP_ADC_L defines, which for some reason where in a different place, together with the rest of the AXP288 specific defines.

---
Changes v2:
-New patch in v2 of this set
Changes v3:
-Also add defines for the AXP288_BC_* registers

---
 include/linux/mfd/axp20x.h | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
include/linux/mfd/axp20x.h +11 -5
index fe93e00..5edf421 100644
@@ -229,9 +229,20 @@ enum {
 #define AXP22X_BATLOW_THRES1		0xe6
 
 /* AXP288 specific registers */
+#define AXP288_POWER_REASON		0x02
+#define AXP288_BC_GLOBAL		0x2c
+#define AXP288_BC_VBUS_CNTL		0x2d
+#define AXP288_BC_USB_STAT		0x2e
+#define AXP288_BC_DET_STAT		0x2f
 #define AXP288_PMIC_ADC_H               0x56
 #define AXP288_PMIC_ADC_L               0x57
+#define AXP288_TS_ADC_H			0x58
+#define AXP288_TS_ADC_L			0x59
+#define AXP288_GP_ADC_H			0x5a
+#define AXP288_GP_ADC_L			0x5b
 #define AXP288_ADC_TS_PIN_CTRL          0x84
+#define AXP288_RT_BATT_V_H		0xa0
+#define AXP288_RT_BATT_V_L		0xa1
 
 /* Fuel Gauge */
 #define AXP288_FG_RDC1_REG          0xba
@@ -508,11 +519,6 @@ enum axp809_irqs {
 	AXP809_IRQ_GPIO0_INPUT,
 };
 
-#define AXP288_TS_ADC_H		0x58
-#define AXP288_TS_ADC_L		0x59
-#define AXP288_GP_ADC_H		0x5a
-#define AXP288_GP_ADC_L		0x5b
-
 struct axp20x_dev {
 	struct device			*dev;
 	int				irq;
Signature · 1 line
2.9.3
#1 lore raw

PATCH v3 2/2 mfd: axp20x: Fix axp288 volatile ranges

The axp288 pmic has a lot more volatile registers then we were listing in axp288_volatile_ranges, fix this.

---
Changes in v2:
-Add the following extra regs to axp288_volatile_ranges: AXP288_POWER_REASON,
AXP20X_TIMER_CTRL, AXP288_RT_BATT_V_H, AXP288_RT_BATT_V_L
Changes in v3:
-Also add: AXP288_BC_GLOBAL, AXP288_BC_DET_STATUS

---
 drivers/mfd/axp20x.c | 7 +++++++
 1 file changed, 7 insertions(+)
drivers/mfd/axp20x.c +7 -0
index a294121..c51d2df 100644
@@ -117,7 +117,14 @@ static const struct regmap_range axp288_writeable_ranges[] = {
 };
 
 static const struct regmap_range axp288_volatile_ranges[] = {
+	regmap_reg_range(AXP20X_PWR_INPUT_STATUS, AXP288_POWER_REASON),
+	regmap_reg_range(AXP288_BC_GLOBAL, AXP288_BC_GLOBAL),
+	regmap_reg_range(AXP288_BC_DET_STAT, AXP288_BC_DET_STAT),
 	regmap_reg_range(AXP20X_IRQ1_EN, AXP20X_IPSOUT_V_HIGH_L),
+	regmap_reg_range(AXP20X_TIMER_CTRL, AXP20X_TIMER_CTRL),
+	regmap_reg_range(AXP22X_GPIO_STATE, AXP22X_GPIO_STATE),
+	regmap_reg_range(AXP288_RT_BATT_V_H, AXP288_RT_BATT_V_L),
+	regmap_reg_range(AXP20X_FG_RES, AXP288_FG_CC_CAP_REG),
 };
 
 static const struct regmap_access_table axp288_writeable_table = {
Signature · 1 line
2.9.3
Acked-by on v3 2/2
#2 lore raw

Re: [PATCH v3 2/2] mfd: axp20x: Fix axp288 volatile ranges

Quoted 4 lines · Hans de Goede

The axp288 pmic has a lot more volatile registers then we were listing in axp288_volatile_ranges, fix this.

FYI, if you're going to add support for the battery charger detection module later, you would need to add the remaining AXP288_BC_* registers to the writable table.

#3 lore raw

Re: [PATCH v3 2/2] mfd: axp20x: Fix axp288 volatile ranges

Hi,

Quoted 7 lines · Chen-Yu Tsai
Quoted 4 lines · Hans de Goede

The axp288 pmic has a lot more volatile registers then we were listing in axp288_volatile_ranges, fix this.

Thank you.

Quoted 2 lines

FYI, if you're going to add support for the battery charger detection module later,

That driver is already in mainline, but like the other axp288 drivers it needs some love to actual successfully probe and work, I've a set of patches for ready for this, since I've been successfully testing them the last few days I guess I might as well send them now, so expect some patches for this soon :)

you would need to add the remaining AXP288_BC_* registers

Quoted 1 line

to the writable table.

The writeable table contains:

	regmap_reg_range(AXP20X_DATACACHE(0), AXP20X_IRQ6_STATE),

Which already includes all of the BC registers.

Regards,

Hans

Applied
#4 lore raw

Re: [PATCH v3 2/2] mfd: axp20x: Fix axp288 volatile ranges

In reply to Hans de Goede
Quoted 10 lines · Hans de Goede

The axp288 pmic has a lot more volatile registers then we were listing in axp288_volatile_ranges, fix this.

---
Changes in v2:
-Add the following extra regs to axp288_volatile_ranges: AXP288_POWER_REASON,
AXP20X_TIMER_CTRL, AXP288_RT_BATT_V_H, AXP288_RT_BATT_V_L
Changes in v3:
-Also add: AXP288_BC_GLOBAL, AXP288_BC_DET_STATUS

Quoted 3 lines
---
 drivers/mfd/axp20x.c | 7 +++++++
 1 file changed, 7 insertions(+)

Applied, thanks.

Quoted 19 lines
drivers/mfd/axp20x.c +7 -0
index a294121..c51d2df 100644
@@ -117,7 +117,14 @@ static const struct regmap_range axp288_writeable_ranges[] = {
 };
 
 static const struct regmap_range axp288_volatile_ranges[] = {
+	regmap_reg_range(AXP20X_PWR_INPUT_STATUS, AXP288_POWER_REASON),
+	regmap_reg_range(AXP288_BC_GLOBAL, AXP288_BC_GLOBAL),
+	regmap_reg_range(AXP288_BC_DET_STAT, AXP288_BC_DET_STAT),
 	regmap_reg_range(AXP20X_IRQ1_EN, AXP20X_IPSOUT_V_HIGH_L),
+	regmap_reg_range(AXP20X_TIMER_CTRL, AXP20X_TIMER_CTRL),
+	regmap_reg_range(AXP22X_GPIO_STATE, AXP22X_GPIO_STATE),
+	regmap_reg_range(AXP288_RT_BATT_V_H, AXP288_RT_BATT_V_L),
+	regmap_reg_range(AXP20X_FG_RES, AXP288_FG_CC_CAP_REG),
 };
 
 static const struct regmap_access_table axp288_writeable_table = {
Signature · 4 lines
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
Applied
#6 lore raw
In reply to Hans de Goede
Quoted 7 lines · Hans de Goede

Add defines for the AXP288_POWER_REASON and AXP288_RT_BATT_V_H and AXP288_RT_BATT_V_L and AXP288_BC_* registers. While at it also move the AXP288_TS_ADC_H-AXP288_GP_ADC_L defines, which for some reason where in a different place, together with the rest of the AXP288 specific defines.

Quoted 8 lines

---
Changes v2:
-New patch in v2 of this set
Changes v3:
-Also add defines for the AXP288_BC_* registers

---
 include/linux/mfd/axp20x.h | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

Applied, thanks.

Quoted 37 lines
include/linux/mfd/axp20x.h +11 -5
index fe93e00..5edf421 100644
@@ -229,9 +229,20 @@ enum {
 #define AXP22X_BATLOW_THRES1		0xe6
 
 /* AXP288 specific registers */
+#define AXP288_POWER_REASON		0x02
+#define AXP288_BC_GLOBAL		0x2c
+#define AXP288_BC_VBUS_CNTL		0x2d
+#define AXP288_BC_USB_STAT		0x2e
+#define AXP288_BC_DET_STAT		0x2f
 #define AXP288_PMIC_ADC_H               0x56
 #define AXP288_PMIC_ADC_L               0x57
+#define AXP288_TS_ADC_H			0x58
+#define AXP288_TS_ADC_L			0x59
+#define AXP288_GP_ADC_H			0x5a
+#define AXP288_GP_ADC_L			0x5b
 #define AXP288_ADC_TS_PIN_CTRL          0x84
+#define AXP288_RT_BATT_V_H		0xa0
+#define AXP288_RT_BATT_V_L		0xa1
 
 /* Fuel Gauge */
 #define AXP288_FG_RDC1_REG          0xba
@@ -508,11 +519,6 @@ enum axp809_irqs {
 	AXP809_IRQ_GPIO0_INPUT,
 };
 
-#define AXP288_TS_ADC_H		0x58
-#define AXP288_TS_ADC_L		0x59
-#define AXP288_GP_ADC_H		0x5a
-#define AXP288_GP_ADC_L		0x5b
-
 struct axp20x_dev {
 	struct device			*dev;
 	int				irq;
Signature · 4 lines
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
Applied
#7 lore raw
In reply to Hans de Goede
Quoted 7 lines · Hans de Goede

Add defines for the AXP288_POWER_REASON and AXP288_RT_BATT_V_H and AXP288_RT_BATT_V_L and AXP288_BC_* registers. While at it also move the AXP288_TS_ADC_H-AXP288_GP_ADC_L defines, which for some reason where in a different place, together with the rest of the AXP288 specific defines.

Quoted 8 lines

---
Changes v2:
-New patch in v2 of this set
Changes v3:
-Also add defines for the AXP288_BC_* registers

---
 include/linux/mfd/axp20x.h | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

Applied, thanks.

Quoted 37 lines
include/linux/mfd/axp20x.h +11 -5
index fe93e00..5edf421 100644
@@ -229,9 +229,20 @@ enum {
 #define AXP22X_BATLOW_THRES1		0xe6
 
 /* AXP288 specific registers */
+#define AXP288_POWER_REASON		0x02
+#define AXP288_BC_GLOBAL		0x2c
+#define AXP288_BC_VBUS_CNTL		0x2d
+#define AXP288_BC_USB_STAT		0x2e
+#define AXP288_BC_DET_STAT		0x2f
 #define AXP288_PMIC_ADC_H               0x56
 #define AXP288_PMIC_ADC_L               0x57
+#define AXP288_TS_ADC_H			0x58
+#define AXP288_TS_ADC_L			0x59
+#define AXP288_GP_ADC_H			0x5a
+#define AXP288_GP_ADC_L			0x5b
 #define AXP288_ADC_TS_PIN_CTRL          0x84
+#define AXP288_RT_BATT_V_H		0xa0
+#define AXP288_RT_BATT_V_L		0xa1
 
 /* Fuel Gauge */
 #define AXP288_FG_RDC1_REG          0xba
@@ -508,11 +519,6 @@ enum axp809_irqs {
 	AXP809_IRQ_GPIO0_INPUT,
 };
 
-#define AXP288_TS_ADC_H		0x58
-#define AXP288_TS_ADC_L		0x59
-#define AXP288_GP_ADC_H		0x5a
-#define AXP288_GP_ADC_L		0x5b
-
 struct axp20x_dev {
 	struct device			*dev;
 	int				irq;
Signature · 4 lines
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog