Skip to content

Commit d1360cc

Browse files
committed
Merge remote-tracking branch 'mfd/ib-mfd-for-iio-power-6.12' into togreg
2 parents dfc58f4 + 2e1a57d commit d1360cc

File tree

2 files changed

+50
-1
lines changed

2 files changed

+50
-1
lines changed

drivers/mfd/axp20x.c

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,13 +209,23 @@ static const struct regmap_access_table axp313a_volatile_table = {
209209
};
210210

211211
static const struct regmap_range axp717_writeable_ranges[] = {
212+
regmap_reg_range(AXP717_PMU_FAULT, AXP717_MODULE_EN_CONTROL_1),
213+
regmap_reg_range(AXP717_MIN_SYS_V_CONTROL, AXP717_BOOST_CONTROL),
214+
regmap_reg_range(AXP717_VSYS_V_POWEROFF, AXP717_VSYS_V_POWEROFF),
212215
regmap_reg_range(AXP717_IRQ0_EN, AXP717_IRQ4_EN),
213216
regmap_reg_range(AXP717_IRQ0_STATE, AXP717_IRQ4_STATE),
217+
regmap_reg_range(AXP717_ICC_CHG_SET, AXP717_CV_CHG_SET),
214218
regmap_reg_range(AXP717_DCDC_OUTPUT_CONTROL, AXP717_CPUSLDO_CONTROL),
219+
regmap_reg_range(AXP717_ADC_CH_EN_CONTROL, AXP717_ADC_CH_EN_CONTROL),
220+
regmap_reg_range(AXP717_ADC_DATA_SEL, AXP717_ADC_DATA_SEL),
215221
};
216222

217223
static const struct regmap_range axp717_volatile_ranges[] = {
224+
regmap_reg_range(AXP717_ON_INDICATE, AXP717_PMU_FAULT),
218225
regmap_reg_range(AXP717_IRQ0_STATE, AXP717_IRQ4_STATE),
226+
regmap_reg_range(AXP717_BATT_PERCENT_DATA, AXP717_BATT_PERCENT_DATA),
227+
regmap_reg_range(AXP717_BATT_V_H, AXP717_BATT_CHRG_I_L),
228+
regmap_reg_range(AXP717_ADC_DATA_H, AXP717_ADC_DATA_L),
219229
};
220230

221231
static const struct regmap_access_table axp717_writeable_table = {
@@ -308,6 +318,12 @@ static const struct resource axp22x_usb_power_supply_resources[] = {
308318
DEFINE_RES_IRQ_NAMED(AXP22X_IRQ_VBUS_REMOVAL, "VBUS_REMOVAL"),
309319
};
310320

321+
static const struct resource axp717_usb_power_supply_resources[] = {
322+
DEFINE_RES_IRQ_NAMED(AXP717_IRQ_VBUS_OVER_V, "VBUS_OVER_V"),
323+
DEFINE_RES_IRQ_NAMED(AXP717_IRQ_VBUS_PLUGIN, "VBUS_PLUGIN"),
324+
DEFINE_RES_IRQ_NAMED(AXP717_IRQ_VBUS_REMOVAL, "VBUS_REMOVAL"),
325+
};
326+
311327
/* AXP803 and AXP813/AXP818 share the same interrupts */
312328
static const struct resource axp803_usb_power_supply_resources[] = {
313329
DEFINE_RES_IRQ_NAMED(AXP803_IRQ_VBUS_PLUGIN, "VBUS_PLUGIN"),
@@ -422,7 +438,7 @@ static const struct regmap_config axp717_regmap_config = {
422438
.val_bits = 8,
423439
.wr_table = &axp717_writeable_table,
424440
.volatile_table = &axp717_volatile_table,
425-
.max_register = AXP717_CPUSLDO_CONTROL,
441+
.max_register = AXP717_ADC_DATA_L,
426442
.cache_type = REGCACHE_MAPLE,
427443
};
428444

@@ -1024,6 +1040,13 @@ static struct mfd_cell axp313a_cells[] = {
10241040
static struct mfd_cell axp717_cells[] = {
10251041
MFD_CELL_NAME("axp20x-regulator"),
10261042
MFD_CELL_RES("axp20x-pek", axp717_pek_resources),
1043+
MFD_CELL_OF("axp717-adc",
1044+
NULL, NULL, 0, 0, "x-powers,axp717-adc"),
1045+
MFD_CELL_OF("axp20x-usb-power-supply",
1046+
axp717_usb_power_supply_resources, NULL, 0, 0,
1047+
"x-powers,axp717-usb-power-supply"),
1048+
MFD_CELL_OF("axp20x-battery-power-supply",
1049+
NULL, NULL, 0, 0, "x-powers,axp717-battery-power-supply"),
10271050
};
10281051

10291052
static const struct resource axp288_adc_resources[] = {

include/linux/mfd/axp20x.h

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,16 @@ enum axp20x_variants {
115115
#define AXP313A_IRQ_STATE 0x21
116116

117117
#define AXP717_ON_INDICATE 0x00
118+
#define AXP717_PMU_STATUS_2 0x01
119+
#define AXP717_BC_DETECT 0x05
120+
#define AXP717_PMU_FAULT 0x08
121+
#define AXP717_MODULE_EN_CONTROL_1 0x0b
122+
#define AXP717_MIN_SYS_V_CONTROL 0x15
123+
#define AXP717_INPUT_VOL_LIMIT_CTRL 0x16
124+
#define AXP717_INPUT_CUR_LIMIT_CTRL 0x17
125+
#define AXP717_MODULE_EN_CONTROL_2 0x19
126+
#define AXP717_BOOST_CONTROL 0x1e
127+
#define AXP717_VSYS_V_POWEROFF 0x24
118128
#define AXP717_IRQ0_EN 0x40
119129
#define AXP717_IRQ1_EN 0x41
120130
#define AXP717_IRQ2_EN 0x42
@@ -125,6 +135,9 @@ enum axp20x_variants {
125135
#define AXP717_IRQ2_STATE 0x4a
126136
#define AXP717_IRQ3_STATE 0x4b
127137
#define AXP717_IRQ4_STATE 0x4c
138+
#define AXP717_ICC_CHG_SET 0x62
139+
#define AXP717_ITERM_CHG_SET 0x63
140+
#define AXP717_CV_CHG_SET 0x64
128141
#define AXP717_DCDC_OUTPUT_CONTROL 0x80
129142
#define AXP717_DCDC1_CONTROL 0x83
130143
#define AXP717_DCDC2_CONTROL 0x84
@@ -145,6 +158,19 @@ enum axp20x_variants {
145158
#define AXP717_CLDO3_CONTROL 0x9d
146159
#define AXP717_CLDO4_CONTROL 0x9e
147160
#define AXP717_CPUSLDO_CONTROL 0x9f
161+
#define AXP717_BATT_PERCENT_DATA 0xa4
162+
#define AXP717_ADC_CH_EN_CONTROL 0xc0
163+
#define AXP717_BATT_V_H 0xc4
164+
#define AXP717_BATT_V_L 0xc5
165+
#define AXP717_VBUS_V_H 0xc6
166+
#define AXP717_VBUS_V_L 0xc7
167+
#define AXP717_VSYS_V_H 0xc8
168+
#define AXP717_VSYS_V_L 0xc9
169+
#define AXP717_BATT_CHRG_I_H 0xca
170+
#define AXP717_BATT_CHRG_I_L 0xcb
171+
#define AXP717_ADC_DATA_SEL 0xcd
172+
#define AXP717_ADC_DATA_H 0xce
173+
#define AXP717_ADC_DATA_L 0xcf
148174

149175
#define AXP806_STARTUP_SRC 0x00
150176
#define AXP806_CHIP_ID 0x03

0 commit comments

Comments
 (0)