static int act8931_ldo_enable(struct regulator_dev *dev)
{
	struct act8931 *act8931 = rdev_get_drvdata(dev);
	int ldo = rdev_get_id(dev) - ACT8931_LDO1;
	u16 mask = 0x80;

	return act8931_set_bits(act8931, act8931_LDO_CONTR_REG(ldo), mask,
				0x80);
}
Beispiel #2
0
static int act8931_ldo_set_mode(struct regulator_dev *dev, unsigned int mode)
{
	struct act8931 *act8931 = rdev_get_drvdata(dev);
	int ldo = rdev_get_id(dev) -ACT8931_LDO1 ;
	u16 mask = 0x20;
	switch(mode)
	{
	case REGULATOR_MODE_NORMAL:
		return act8931_set_bits(act8931, act8931_LDO_CONTR_REG(ldo), mask, 0);		
	case REGULATOR_MODE_STANDBY:
		return act8931_set_bits(act8931, act8931_LDO_CONTR_REG(ldo), mask, mask);
	default:
		printk("error:pmu_act8931 only lowpower and nomal mode\n");
		return -EINVAL;
	}


}
Beispiel #3
0
static unsigned int act8931_ldo_get_mode(struct regulator_dev *dev)
{
	struct act8931 *act8931 = rdev_get_drvdata(dev);
	int ldo = rdev_get_id(dev) -ACT8931_LDO1 ;
	u16 mask = 0xcf;
	u16 val;
	val = act8931_reg_read(act8931, act8931_LDO_CONTR_REG(ldo));
	val=val|mask;
	if (val== mask)
		return REGULATOR_MODE_NORMAL;
	else
		return REGULATOR_MODE_STANDBY;

}
Beispiel #4
0
static int act8931_ldo_is_enabled(struct regulator_dev *dev)
{
	struct act8931 *act8931 = rdev_get_drvdata(dev);
	int ldo = rdev_get_id(dev) -ACT8931_LDO1;
	u16 val;
	u16 mask=0x80;
	val = act8931_reg_read(act8931, act8931_LDO_CONTR_REG(ldo));	 
	if (val < 0)
		return val;
	val=val&~0x7f;
	if (val & mask)
		return 1;
	else
		return 0; 	
}