Пример #1
0
static int twl4030ldo_get_voltage(struct regulator_dev *rdev)
{
	struct twlreg_info	*info = rdev_get_drvdata(rdev);
	int			vsel = twl4030reg_read(info, VREG_DEDICATED);

	if (vsel < 0)
		return vsel;

	vsel &= info->table_len - 1;
	return LDO_MV(info->table[vsel]) * 1000;
}
Пример #2
0
static int twl4030reg_disable(struct regulator_dev *rdev)
{
	struct twlreg_info	*info = rdev_get_drvdata(rdev);
	int			grp;

	grp = twl4030reg_read(info, VREG_GRP);
	if (grp < 0)
		return grp;

	grp &= ~P1_GRP;
	return twl4030reg_write(info, VREG_GRP, grp);
}
Пример #3
0
static int twl4030reg_enable(struct regulator_dev *rdev)
{
	struct twlreg_info	*info = rdev_get_drvdata(rdev);
	int			grp, status;
	unsigned 		message;

	grp = twl4030reg_read(info, VREG_GRP);
	if (grp < 0)
		return grp;

	grp |= P1_GRP;
	status =  twl4030reg_write(info, VREG_GRP, grp);
	if (status < 0)
		return status;

	message = MSG_SINGULAR(DEV_GRP_P1, info->id, RES_STATE_ACTIVE);

	return twl4030_send_pb_msg(message);
}
Пример #4
0
static int twl4030reg_grp(struct regulator_dev *rdev)
{
	return twl4030reg_read(rdev_get_drvdata(rdev), VREG_GRP);
}