mfd: 88pm860x: Move gpadc init into touch
The initilization of GPADC is moved from core driver to touch driver with DT support. Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:

committed by
Samuel Ortiz

parent
2e57d56747
commit
fe1d38e80d
@@ -558,53 +558,6 @@ static struct irq_domain_ops pm860x_irq_domain_ops = {
|
||||
.xlate = irq_domain_xlate_onetwocell,
|
||||
};
|
||||
|
||||
static int __devinit device_gpadc_init(struct pm860x_chip *chip,
|
||||
struct pm860x_platform_data *pdata)
|
||||
{
|
||||
struct i2c_client *i2c = (chip->id == CHIP_PM8607) ? chip->client \
|
||||
: chip->companion;
|
||||
int data;
|
||||
int ret;
|
||||
|
||||
/* initialize GPADC without activating it */
|
||||
|
||||
if (!pdata || !pdata->touch)
|
||||
return -EINVAL;
|
||||
|
||||
/* set GPADC MISC1 register */
|
||||
data = 0;
|
||||
data |= (pdata->touch->gpadc_prebias << 1) & PM8607_GPADC_PREBIAS_MASK;
|
||||
data |= (pdata->touch->slot_cycle << 3) & PM8607_GPADC_SLOT_CYCLE_MASK;
|
||||
data |= (pdata->touch->off_scale << 5) & PM8607_GPADC_OFF_SCALE_MASK;
|
||||
data |= (pdata->touch->sw_cal << 7) & PM8607_GPADC_SW_CAL_MASK;
|
||||
if (data) {
|
||||
ret = pm860x_reg_write(i2c, PM8607_GPADC_MISC1, data);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
}
|
||||
/* set tsi prebias time */
|
||||
if (pdata->touch->tsi_prebias) {
|
||||
data = pdata->touch->tsi_prebias;
|
||||
ret = pm860x_reg_write(i2c, PM8607_TSI_PREBIAS, data);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
}
|
||||
/* set prebias & prechg time of pen detect */
|
||||
data = 0;
|
||||
data |= pdata->touch->pen_prebias & PM8607_PD_PREBIAS_MASK;
|
||||
data |= (pdata->touch->pen_prechg << 5) & PM8607_PD_PRECHG_MASK;
|
||||
if (data) {
|
||||
ret = pm860x_reg_write(i2c, PM8607_PD_PREBIAS, data);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = pm860x_set_bits(i2c, PM8607_GPADC_MISC1,
|
||||
PM8607_GPADC_EN, PM8607_GPADC_EN);
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int __devinit device_irq_init(struct pm860x_chip *chip,
|
||||
struct pm860x_platform_data *pdata)
|
||||
{
|
||||
@@ -1053,10 +1006,6 @@ static void __devinit device_8607_init(struct pm860x_chip *chip,
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = device_gpadc_init(chip, pdata);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
|
||||
ret = device_irq_init(chip, pdata);
|
||||
if (ret < 0)
|
||||
goto out;
|
||||
|
Reference in New Issue
Block a user