diff --git a/drivers/mfd/mc13783-core.c b/drivers/mfd/mc13783-core.c index 6df34989c1f65077452c996ba6c9b7d2664b460f..2506e6888507da3b83e99d3addbc6da25ca42408 100644 --- a/drivers/mfd/mc13783-core.c +++ b/drivers/mfd/mc13783-core.c @@ -22,14 +22,10 @@ struct mc13783 { struct spi_device *spidev; struct mutex lock; int irq; - int flags; + int adcflags; irq_handler_t irqhandler[MC13783_NUM_IRQ]; void *irqdata[MC13783_NUM_IRQ]; - - /* XXX these should go as platformdata to the regulator subdevice */ - struct mc13783_regulator_init_data *regulators; - int num_regulators; }; #define MC13783_REG_REVISION 7 @@ -250,7 +246,10 @@ EXPORT_SYMBOL(mc13783_reg_rmw); int mc13783_get_flags(struct mc13783 *mc13783) { - return mc13783->flags; + struct mc13783_platform_data *pdata = + dev_get_platdata(&mc13783->spidev->dev); + + return pdata->flags; } EXPORT_SYMBOL(mc13783_get_flags); @@ -493,7 +492,7 @@ static irqreturn_t mc13783_handler_adcdone(int irq, void *data) return IRQ_HANDLED; } -#define MC13783_ADC_WORKING (1 << 16) +#define MC13783_ADC_WORKING (1 << 0) int mc13783_adc_do_conversion(struct mc13783 *mc13783, unsigned int mode, unsigned int channel, unsigned int *sample) @@ -509,12 +508,12 @@ int mc13783_adc_do_conversion(struct mc13783 *mc13783, unsigned int mode, mc13783_lock(mc13783); - if (mc13783->flags & MC13783_ADC_WORKING) { + if (mc13783->adcflags & MC13783_ADC_WORKING) { ret = -EBUSY; goto out; } - mc13783->flags |= MC13783_ADC_WORKING; + mc13783->adcflags |= MC13783_ADC_WORKING; mc13783_reg_read(mc13783, MC13783_ADC0, &old_adc0); @@ -578,7 +577,7 @@ int mc13783_adc_do_conversion(struct mc13783 *mc13783, unsigned int mode, /* restore TSMOD */ mc13783_reg_write(mc13783, MC13783_REG_ADC_0, old_adc0); - mc13783->flags &= ~MC13783_ADC_WORKING; + mc13783->adcflags &= ~MC13783_ADC_WORKING; out: mc13783_unlock(mc13783); @@ -675,14 +674,6 @@ static int mc13783_probe(struct spi_device *spi) return ret; } - /* This should go away (BEGIN) */ - if (pdata) { - mc13783->flags = pdata->flags; - mc13783->regulators = pdata->regulators; - mc13783->num_regulators = pdata->num_regulators; - } - /* This should go away (END) */ - mc13783_unlock(mc13783); if (pdata->flags & MC13783_USE_ADC)