Exemplo n.º 1
0
static int bh6173_ldo_enable(struct regulator_dev *rdev)
{

	if (!rdev)
		return -EINVAL;		//NAGSM_Android_SEL_Kernel_Aakash_20101021

	struct bh6173_data *bh6173 = rdev_get_drvdata(rdev);

	
	int ldo = bh6173_get_ldo(rdev);
	u8 value;   

	DBG("func =%s called for regulator = %d\n",__func__,ldo);

	//NAGSM_Android_SEL_Kernel_Aakash_20101019
	if((ldo < BH6173_LDO1) || (ldo > BH6173_LDO3))
	{
		printk("ERROR: Invalid argument passed\n");
		return -EINVAL;
	}
	//NAGSM_Android_SEL_Kernel_Aakash_20101019

	bh6173_i2c_read(bh6173_client, BH6173GUL_Register_REGCNT,&value);

	if (ldo == BH6173_LDO1)
		value |= BH6173GUL_REGCNT_LDO1;
	if (ldo == BH6173_LDO2)
		value |= BH6173GUL_REGCNT_LDO2;
	if (ldo == BH6173_LDO3)
		value |= BH6173GUL_REGCNT_LDO3;
		

	return bh6173_i2c_write(bh6173_client, BH6173GUL_Register_REGCNT, value);
 
}
Exemplo n.º 2
0
static int bh6173_write_reg(struct bh6173_data *bh6173, u8 value, u8 reg)
{
	DBG("func =%s called for reg= %x, data=%x\n",__func__,reg,value);

#ifndef CONFIG_CPU_FREQ
	mutex_lock(&bh6173->mutex);
#endif

	bh6173_i2c_write(bh6173->client, reg, value);
#ifndef CONFIG_CPU_FREQ
	mutex_unlock(&bh6173->mutex);
#endif
	return 0;
}