mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-31 16:38:12 +00:00
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: Per-Daniel Olsson <perdo@axis.com> Signed-off-by: Rickard x Andersson <rickaran@axis.com> Link: https://lore.kernel.org/r/20220429072211.24957-2-rickaran@axis.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
e721b16139
commit
62139f52b7
2 changed files with 18 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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__ */
|
||||
|
|
Loading…
Reference in a new issue