Commit e0d967f2 authored by Sebastian Reichel's avatar Sebastian Reichel
Browse files

Merge tag 'tags/ib-mfd-for-iio-power-v6.12' into psy-next



Immutable branch between MFD, IIO and power-supply providing the
register definitions needed for AXP717 support in the axp20x
axp20x_battery and axp20x_usb_power drivers.

Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
parents 57dfd445 2e1a57d5
Loading
Loading
Loading
Loading
+24 −1
Original line number Diff line number Diff line
@@ -209,13 +209,23 @@ static const struct regmap_access_table axp313a_volatile_table = {
};

static const struct regmap_range axp717_writeable_ranges[] = {
	regmap_reg_range(AXP717_PMU_FAULT, AXP717_MODULE_EN_CONTROL_1),
	regmap_reg_range(AXP717_MIN_SYS_V_CONTROL, AXP717_BOOST_CONTROL),
	regmap_reg_range(AXP717_VSYS_V_POWEROFF, AXP717_VSYS_V_POWEROFF),
	regmap_reg_range(AXP717_IRQ0_EN, AXP717_IRQ4_EN),
	regmap_reg_range(AXP717_IRQ0_STATE, AXP717_IRQ4_STATE),
	regmap_reg_range(AXP717_ICC_CHG_SET, AXP717_CV_CHG_SET),
	regmap_reg_range(AXP717_DCDC_OUTPUT_CONTROL, AXP717_CPUSLDO_CONTROL),
	regmap_reg_range(AXP717_ADC_CH_EN_CONTROL, AXP717_ADC_CH_EN_CONTROL),
	regmap_reg_range(AXP717_ADC_DATA_SEL, AXP717_ADC_DATA_SEL),
};

static const struct regmap_range axp717_volatile_ranges[] = {
	regmap_reg_range(AXP717_ON_INDICATE, AXP717_PMU_FAULT),
	regmap_reg_range(AXP717_IRQ0_STATE, AXP717_IRQ4_STATE),
	regmap_reg_range(AXP717_BATT_PERCENT_DATA, AXP717_BATT_PERCENT_DATA),
	regmap_reg_range(AXP717_BATT_V_H, AXP717_BATT_CHRG_I_L),
	regmap_reg_range(AXP717_ADC_DATA_H, AXP717_ADC_DATA_L),
};

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

static const struct resource axp717_usb_power_supply_resources[] = {
	DEFINE_RES_IRQ_NAMED(AXP717_IRQ_VBUS_OVER_V, "VBUS_OVER_V"),
	DEFINE_RES_IRQ_NAMED(AXP717_IRQ_VBUS_PLUGIN, "VBUS_PLUGIN"),
	DEFINE_RES_IRQ_NAMED(AXP717_IRQ_VBUS_REMOVAL, "VBUS_REMOVAL"),
};

/* AXP803 and AXP813/AXP818 share the same interrupts */
static const struct resource axp803_usb_power_supply_resources[] = {
	DEFINE_RES_IRQ_NAMED(AXP803_IRQ_VBUS_PLUGIN, "VBUS_PLUGIN"),
@@ -422,7 +438,7 @@ static const struct regmap_config axp717_regmap_config = {
	.val_bits = 8,
	.wr_table = &axp717_writeable_table,
	.volatile_table = &axp717_volatile_table,
	.max_register = AXP717_CPUSLDO_CONTROL,
	.max_register = AXP717_ADC_DATA_L,
	.cache_type = REGCACHE_MAPLE,
};

@@ -1024,6 +1040,13 @@ static struct mfd_cell axp313a_cells[] = {
static struct mfd_cell axp717_cells[] = {
	MFD_CELL_NAME("axp20x-regulator"),
	MFD_CELL_RES("axp20x-pek", axp717_pek_resources),
	MFD_CELL_OF("axp717-adc",
		    NULL, NULL, 0, 0, "x-powers,axp717-adc"),
	MFD_CELL_OF("axp20x-usb-power-supply",
		    axp717_usb_power_supply_resources, NULL, 0, 0,
		    "x-powers,axp717-usb-power-supply"),
	MFD_CELL_OF("axp20x-battery-power-supply",
		    NULL, NULL, 0, 0, "x-powers,axp717-battery-power-supply"),
};

static const struct resource axp288_adc_resources[] = {
+26 −0
Original line number Diff line number Diff line
@@ -115,6 +115,16 @@ enum axp20x_variants {
#define AXP313A_IRQ_STATE		0x21

#define AXP717_ON_INDICATE		0x00
#define AXP717_PMU_STATUS_2		0x01
#define AXP717_BC_DETECT		0x05
#define AXP717_PMU_FAULT		0x08
#define AXP717_MODULE_EN_CONTROL_1	0x0b
#define AXP717_MIN_SYS_V_CONTROL	0x15
#define AXP717_INPUT_VOL_LIMIT_CTRL	0x16
#define AXP717_INPUT_CUR_LIMIT_CTRL	0x17
#define AXP717_MODULE_EN_CONTROL_2	0x19
#define AXP717_BOOST_CONTROL		0x1e
#define AXP717_VSYS_V_POWEROFF		0x24
#define AXP717_IRQ0_EN			0x40
#define AXP717_IRQ1_EN			0x41
#define AXP717_IRQ2_EN			0x42
@@ -125,6 +135,9 @@ enum axp20x_variants {
#define AXP717_IRQ2_STATE		0x4a
#define AXP717_IRQ3_STATE		0x4b
#define AXP717_IRQ4_STATE		0x4c
#define AXP717_ICC_CHG_SET		0x62
#define AXP717_ITERM_CHG_SET		0x63
#define AXP717_CV_CHG_SET		0x64
#define AXP717_DCDC_OUTPUT_CONTROL	0x80
#define AXP717_DCDC1_CONTROL		0x83
#define AXP717_DCDC2_CONTROL		0x84
@@ -145,6 +158,19 @@ enum axp20x_variants {
#define AXP717_CLDO3_CONTROL		0x9d
#define AXP717_CLDO4_CONTROL		0x9e
#define AXP717_CPUSLDO_CONTROL		0x9f
#define AXP717_BATT_PERCENT_DATA	0xa4
#define AXP717_ADC_CH_EN_CONTROL	0xc0
#define AXP717_BATT_V_H			0xc4
#define AXP717_BATT_V_L			0xc5
#define AXP717_VBUS_V_H			0xc6
#define AXP717_VBUS_V_L			0xc7
#define AXP717_VSYS_V_H			0xc8
#define AXP717_VSYS_V_L			0xc9
#define AXP717_BATT_CHRG_I_H		0xca
#define AXP717_BATT_CHRG_I_L		0xcb
#define AXP717_ADC_DATA_SEL		0xcd
#define AXP717_ADC_DATA_H		0xce
#define AXP717_ADC_DATA_L		0xcf

#define AXP806_STARTUP_SRC		0x00
#define AXP806_CHIP_ID			0x03