Commit 2ccfad1c authored by Lee Jones's avatar Lee Jones
Browse files

Merge tags 'ib-mfd-pinctrl-soundwire-v6.6' and 'ib-mfd-regulator-v6.6' into ibs-for-mfd-merged

Immutable branch between MFD, Pinctrl and soundwire due for the v6.6 merge window

Immutable branch between MFD and Regulator due for the v6.6 merge window
parents d5282a53 c0146735
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -81,16 +81,23 @@ static int tps65086_probe(struct i2c_client *client)
		return PTR_ERR(tps->regmap);
	}

	ret = regmap_read(tps->regmap, TPS65086_DEVICEID, &version);
	/* Store device ID to load regulator configuration that fit to IC variant */
	ret = regmap_read(tps->regmap, TPS65086_DEVICEID1, &tps->chip_id);
	if (ret) {
		dev_err(tps->dev, "Failed to read revision register\n");
		dev_err(tps->dev, "Failed to read revision register 1\n");
		return ret;
	}

	ret = regmap_read(tps->regmap, TPS65086_DEVICEID2, &version);
	if (ret) {
		dev_err(tps->dev, "Failed to read revision register 2\n");
		return ret;
	}

	dev_info(tps->dev, "Device: TPS65086%01lX, OTP: %c, Rev: %ld\n",
		 (version & TPS65086_DEVICEID_PART_MASK),
		 (char)((version & TPS65086_DEVICEID_OTP_MASK) >> 4) + 'A',
		 (version & TPS65086_DEVICEID_REV_MASK) >> 6);
		 (version & TPS65086_DEVICEID2_PART_MASK),
		 (char)((version & TPS65086_DEVICEID2_OTP_MASK) >> 4) + 'A',
		 (version & TPS65086_DEVICEID2_REV_MASK) >> 6);

	if (tps->irq > 0) {
		ret = regmap_add_irq_chip(tps->regmap, tps->irq, IRQF_ONESHOT, 0,
+14 −6
Original line number Diff line number Diff line
@@ -13,7 +13,8 @@
#include <linux/regmap.h>

/* List of registers for TPS65086 */
#define TPS65086_DEVICEID		0x01
#define TPS65086_DEVICEID1		0x00
#define TPS65086_DEVICEID2		0x01
#define TPS65086_IRQ		0x02
#define TPS65086_IRQ_MASK		0x03
#define TPS65086_PMICSTAT		0x04
@@ -75,10 +76,16 @@
#define TPS65086_IRQ_SHUTDN_MASK	BIT(3)
#define TPS65086_IRQ_FAULT_MASK		BIT(7)

/* DEVICEID Register field definitions */
#define TPS65086_DEVICEID_PART_MASK	GENMASK(3, 0)
#define TPS65086_DEVICEID_OTP_MASK	GENMASK(5, 4)
#define TPS65086_DEVICEID_REV_MASK	GENMASK(7, 6)
/* DEVICEID1 Register field definitions */
#define TPS6508640_ID			0x00
#define TPS65086401_ID			0x01
#define TPS6508641_ID			0x10
#define TPS65086470_ID			0x70

/* DEVICEID2 Register field definitions */
#define TPS65086_DEVICEID2_PART_MASK	GENMASK(3, 0)
#define TPS65086_DEVICEID2_OTP_MASK	GENMASK(5, 4)
#define TPS65086_DEVICEID2_REV_MASK	GENMASK(7, 6)

/* VID Masks */
#define BUCK_VID_MASK			GENMASK(7, 1)
@@ -100,6 +107,7 @@ enum tps65086_irqs {
struct tps65086 {
	struct device *dev;
	struct regmap *regmap;
	unsigned int chip_id;

	/* IRQ Data */
	int irq;