u8 tstep_addr;
u8 fvsel_addr;
int sleep_id;
+ u8 pd_ctrl_addr;
+ int pd_ctrl_bits;
};
static const struct regs_info palmas_regs_info[] = {
.vsel_addr = PALMAS_LDO1_VOLTAGE,
.ctrl_addr = PALMAS_LDO1_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO1,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL1,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL1_LDO1,
},
{
.name = "LDO2",
.vsel_addr = PALMAS_LDO2_VOLTAGE,
.ctrl_addr = PALMAS_LDO2_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO2,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL1,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL1_LDO2,
},
{
.name = "LDO3",
.vsel_addr = PALMAS_LDO3_VOLTAGE,
.ctrl_addr = PALMAS_LDO3_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO3,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL1,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL1_LDO3,
},
{
.name = "LDO4",
.vsel_addr = PALMAS_LDO4_VOLTAGE,
.ctrl_addr = PALMAS_LDO4_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO4,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL1,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL1_LDO4,
},
{
.name = "LDO5",
.vsel_addr = PALMAS_LDO5_VOLTAGE,
.ctrl_addr = PALMAS_LDO5_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO5,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL1,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL1_LDO5,
},
{
.name = "LDO6",
.vsel_addr = PALMAS_LDO6_VOLTAGE,
.ctrl_addr = PALMAS_LDO6_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO6,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL1,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL1_LDO6,
},
{
.name = "LDO7",
.vsel_addr = PALMAS_LDO7_VOLTAGE,
.ctrl_addr = PALMAS_LDO7_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO7,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL1,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL1_LDO7,
},
{
.name = "LDO8",
.vsel_addr = PALMAS_LDO8_VOLTAGE,
.ctrl_addr = PALMAS_LDO8_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO8,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL1,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL1_LDO8,
},
{
.name = "LDO9",
.vsel_addr = PALMAS_LDO9_VOLTAGE,
.ctrl_addr = PALMAS_LDO9_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO9,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL2,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL2_LDO9,
},
{
.name = "LDO10",
.vsel_addr = PALMAS_LDO10_VOLTAGE,
.ctrl_addr = PALMAS_LDO10_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO10,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL2,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL2_LDO10,
},
{
.name = "LDO11",
.vsel_addr = PALMAS_LDO11_VOLTAGE,
.ctrl_addr = PALMAS_LDO11_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO11,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL2,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL2_LDO11,
},
{
.name = "LDO12",
.vsel_addr = PALMAS_LDO12_VOLTAGE,
.ctrl_addr = PALMAS_LDO12_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO12,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL2,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL2_LDO12,
},
{
.name = "LDO13",
.vsel_addr = PALMAS_LDO13_VOLTAGE,
.ctrl_addr = PALMAS_LDO13_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO13,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL2,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL2_LDO13,
},
{
.name = "LDO14",
.vsel_addr = PALMAS_LDO14_VOLTAGE,
.ctrl_addr = PALMAS_LDO14_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDO14,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL2,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL2_LDO14,
},
{
.name = "LDOLN",
.vsel_addr = PALMAS_LDOLN_VOLTAGE,
.ctrl_addr = PALMAS_LDOLN_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDOLN,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL2,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL2_LDOLN,
},
{
.name = "LDOUSB",
.vsel_addr = PALMAS_LDOUSB_VOLTAGE,
.ctrl_addr = PALMAS_LDOUSB_CTRL,
.sleep_id = PALMAS_EXTERNAL_REQSTR_ID_LDOUSB,
+ .pd_ctrl_addr = PALMAS_LDO_PD_CTRL2,
+ .pd_ctrl_bits = PALMAS_LDO_PD_CTRL2_LDOUSB,
},
{
.name = "REGEN1",
return ret;
}
}
+
+ if (reg_init->disable_pull_down) {
+ ret = palmas_update_bits(palmas, PALMAS_LDO_BASE,
+ palmas_regs_info[id].pd_ctrl_addr,
+ palmas_regs_info[id].pd_ctrl_bits, 0);
+ if (ret < 0) {
+ dev_err(palmas->dev,
+ "LDO_PD_CTRL 0x%02x update failed: %d\n",
+ palmas_regs_info[id].pd_ctrl_addr, ret);
+ return;
+ }
+ }
return 0;
}
of_property_read_bool(palmas_matches[idx].of_node,
"ti,warm-reset");
+ pdata->reg_init[idx]->disable_pull_down =
+ of_property_read_bool(palmas_matches[idx].of_node,
+ "ti,disable-pull-down");
+
ret = of_property_read_u32(palmas_matches[idx].of_node,
"ti,roof-floor", &prop);
/* EINVAL: Property not found */