/******************************************************* * Function: aat28xx_ldo_set_level * Description: Set LDO vout level * Parameter * num: ldo number and it is 1-based value * level: voltage level *******************************************************/ int aat28xx_ldo_enable(struct device *dev, unsigned num, unsigned enable) { struct i2c_adapter *adap; struct i2c_client *client; struct aat28xx_driver_data *drvdata; int err = 0; dprintk("ldo_no[%d], on/off[%d]\n",num, enable); if (num > 0 && num <= AAT28XX_LDO_NUM) { if ((adap=dev_get_drvdata(dev)) && (client=i2c_get_adapdata(adap))) { drvdata = i2c_get_clientdata(client); if (enable) { if (drvdata->ldo_ref[num-1]++ == 0) { dprintk("ref count = 0, call aat28xx_set_ldos\n"); err = aat28xx_set_ldos(client, num, enable); } } else { if (--drvdata->ldo_ref[num-1] == 0) { dprintk("ref count = 0, call aat28xx_set_ldos\n"); err = aat28xx_set_ldos(client, num, enable); } } return err; } } return -ENODEV; }
/******************************************************* * Function: aat28xx_ldo_set_level * Description: Set LDO vout level * Parameter * num: ldo number and it is 1-based value * level: voltage level *******************************************************/ int aat28xx_ldo_enable(struct device *dev, unsigned num, unsigned enable) { struct i2c_adapter *adap; struct i2c_client *client; struct aat28xx_driver_data *drvdata; int err = 0; dprintk("ldo_no[%d], on/off[%d]\n",num, enable); if (num > 0 && num <= AAT28XX_LDO_NUM) { if ((adap=dev_get_drvdata(dev)) && (client=i2c_get_adapdata(adap))) { drvdata = i2c_get_clientdata(client); //LG_CHANGE [[email protected]] 2011-10-12 , LCD brightness [START] if (enable) { // LGE_CHAGNE [[email protected]] 2010-07-12, // should update the ref count only if success if (drvdata->ldo_ref[num-1] == 0) { dprintk("ref count = 0, call aat28xx_set_ldos\n"); err = aat28xx_set_ldos(client, num, enable); if (!err) drvdata->ldo_ref[num-1]++; } //LG_CHANGE [[email protected]] 2011-10-12 , LCD brightness [END] } else { if (--drvdata->ldo_ref[num-1] == 0) { dprintk("ref count = 0, call aat28xx_set_ldos\n"); err = aat28xx_set_ldos(client, num, enable); // LGE_CHAGNE [[email protected]] 2010-07-12, // should restore the ref count if failure if (err) drvdata->ldo_ref[num-1]++; } } return err; } } return -ENODEV; }