]> Pileus Git - ~andy/linux/blobdiff - drivers/mfd/mc13783-core.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
[~andy/linux] / drivers / mfd / mc13783-core.c
index fecf38a4f02543a601083bbfdd3a972f1da05963..6df34989c1f65077452c996ba6c9b7d2664b460f 100644 (file)
  */
 #include <linux/slab.h>
 #include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/mutex.h>
+#include <linux/interrupt.h>
 #include <linux/spi/spi.h>
 #include <linux/mfd/core.h>
-#include <linux/mfd/mc13783-private.h>
+#include <linux/mfd/mc13783.h>
+
+struct mc13783 {
+       struct spi_device *spidev;
+       struct mutex lock;
+       int irq;
+       int flags;
+
+       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
+#define MC13783_REG_ADC_0                      43
+#define MC13783_REG_ADC_1                      44
+#define MC13783_REG_ADC_2                      45
 
 #define MC13783_IRQSTAT0       0
 #define MC13783_IRQSTAT0_ADCDONEI      (1 << 0)
@@ -226,6 +248,12 @@ int mc13783_reg_rmw(struct mc13783 *mc13783, unsigned int offset,
 }
 EXPORT_SYMBOL(mc13783_reg_rmw);
 
+int mc13783_get_flags(struct mc13783 *mc13783)
+{
+       return mc13783->flags;
+}
+EXPORT_SYMBOL(mc13783_get_flags);
+
 int mc13783_irq_mask(struct mc13783 *mc13783, int irq)
 {
        int ret;