mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-02 09:46:37 +03:00
power: regulator: tps65941: Enable FPWM bits
Depending on the phase selection (single or multi), the FPWM bits
configured forces the regulator to operate in PWM mode. In case of
multi-phase selection, the FPWM_MP bits enforce the regulator to also
operate in multi-phase. This fixes correct multi-phase operation.
While at this, correct incorrect macro alignment as well.
Fixes: 065a452ae6 ("power: regulator: tps65941: add regulator support")
Link: https://www.ti.com/lit/ds/symlink/tps6594-q1.pdf
Signed-off-by: Keerthy <j-keerthy@ti.com>
Signed-off-by: Takuma Fujiwara <t-fujiwara1@ti.com>
Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
committed by
Peng Fan
parent
ae8987f4e6
commit
1526438a93
@@ -63,13 +63,14 @@ static inline int tps65941_get_chip_id(struct udevice *dev)
|
||||
|
||||
static int tps65941_buck_enable(struct udevice *dev, int op, bool *enable)
|
||||
{
|
||||
int ret;
|
||||
int ret, idx;
|
||||
unsigned int adr;
|
||||
struct dm_regulator_uclass_plat *uc_pdata;
|
||||
|
||||
uc_pdata = dev_get_uclass_plat(dev);
|
||||
adr = uc_pdata->ctrl_reg;
|
||||
|
||||
idx = dev->driver_data;
|
||||
ret = pmic_reg_read(dev->parent, adr);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
@@ -84,10 +85,18 @@ static int tps65941_buck_enable(struct udevice *dev, int op, bool *enable)
|
||||
|
||||
return 0;
|
||||
} else if (op == PMIC_OP_SET) {
|
||||
if (*enable)
|
||||
if (*enable) {
|
||||
ret |= TPS65941_BUCK_MODE_MASK;
|
||||
else
|
||||
/* Enable FPWM */
|
||||
ret |= TPS65941_BUCK_FPWM_MASK;
|
||||
/* If Multiphase enable FPWM_MP */
|
||||
if (idx == TPS65941_BUCK_ID_12 ||
|
||||
idx == TPS65941_BUCK_ID_123 ||
|
||||
idx == TPS65941_BUCK_ID_1234)
|
||||
ret |= TPS65941_BUCK_FPWM_MP_MASK;
|
||||
} else {
|
||||
ret &= ~TPS65941_BUCK_MODE_MASK;
|
||||
}
|
||||
ret = pmic_reg_write(dev->parent, adr, ret);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@@ -19,7 +19,9 @@
|
||||
#define TPS65941_BUCK_VOLT_MASK 0xFF
|
||||
#define TPS65941_BUCK_VOLT_MAX_HEX 0xFF
|
||||
#define TPS65941_BUCK_VOLT_MAX 3340000
|
||||
#define TPS65941_BUCK_MODE_MASK 0x1
|
||||
#define TPS65941_BUCK_MODE_MASK 0x1
|
||||
#define TPS65941_BUCK_FPWM_MASK 0x2
|
||||
#define TPS65941_BUCK_FPWM_MP_MASK 0x4
|
||||
|
||||
#define TPS65941_LDO_VOLT_MASK 0x7E
|
||||
#define TPS65941_LDO_VOLT_MAX_HEX 0x3A
|
||||
|
||||
Reference in New Issue
Block a user