Unverified Commit 62139f52 authored by Per-Daniel Olsson's avatar Per-Daniel Olsson Committed by Mark Brown
Browse files

regulator: pca9450: Make I2C Level Translator configurable



Make the I2C Level Translator included in PCA9450 configurable from
devicetree. The reset state is off. By setting nxp,i2c-lt-enable, the
I2C Level Translator will be enabled while in STANDBY or RUN state.

Signed-off-by: default avatarPer-Daniel Olsson <perdo@axis.com>
Signed-off-by: default avatarRickard x Andersson <rickaran@axis.com>
Link: https://lore.kernel.org/r/20220429072211.24957-2-rickaran@axis.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent e721b161
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -810,6 +810,17 @@ static int pca9450_i2c_probe(struct i2c_client *i2c,
		return ret;
	}

	if (of_property_read_bool(i2c->dev.of_node, "nxp,i2c-lt-enable")) {
		/* Enable I2C Level Translator */
		ret = regmap_update_bits(pca9450->regmap, PCA9450_REG_CONFIG2,
					 I2C_LT_MASK, I2C_LT_ON_STANDBY_RUN);
		if (ret) {
			dev_err(&i2c->dev,
				"Failed to enable I2C level translator\n");
			return ret;
		}
	}

	/*
	 * The driver uses the LDO5CTRL_H register to control the LDO5 regulator.
	 * This is only valid if the SD_VSEL input of the PMIC is high. Let's
+7 −0
Original line number Diff line number Diff line
@@ -226,4 +226,11 @@ enum {
#define WDOG_B_CFG_COLD_LDO12		0x80
#define WDOG_B_CFG_COLD			0xC0

/* PCA9450_REG_CONFIG2 bits */
#define I2C_LT_MASK			0x03
#define I2C_LT_FORCE_DISABLE		0x00
#define I2C_LT_ON_STANDBY_RUN		0x01
#define I2C_LT_ON_RUN			0x02
#define I2C_LT_FORCE_ENABLE		0x03

#endif /* __LINUX_REG_PCA9450_H__ */