struct regulator_init_data              *vio6025;
  };
  
 +struct twl_regulator_driver_data {
 +      int             (*set_voltage)(void *data, int target_uV);
 +      int             (*get_voltage)(void *data);
 +      void            *data;
 +      unsigned long   features;
 +};
 +
  /*----------------------------------------------------------------------*/
  
- int twl4030_sih_setup(int module);
+ int twl4030_sih_setup(struct device *dev, int module, int irq_base);
  
  /* Offsets to Power Registers */
  #define TWL4030_VDAC_DEV_GRP          0x3B
 
  #ifndef MFD_AB8500_H
  #define MFD_AB8500_H
  
 -#include <linux/device.h>
 +#include <linux/mutex.h>
 +
 +struct device;
 +
+ /*
+  * AB IC versions
+  *
+  * AB8500_VERSION_AB8500 should be 0xFF but will never be read as need a
+  * non-supported multi-byte I2C access via PRCMU. Set to 0x00 to ease the
+  * print of version string.
+  */
+ enum ab8500_version {
+       AB8500_VERSION_AB8500 = 0x0,
+       AB8500_VERSION_AB8505 = 0x1,
+       AB8500_VERSION_AB9540 = 0x2,
+       AB8500_VERSION_AB8540 = 0x3,
+       AB8500_VERSION_UNDEFINED,
+ };
+ 
+ /* AB8500 CIDs*/
+ #define AB8500_CUTEARLY       0x00
+ #define AB8500_CUT1P0 0x10
+ #define AB8500_CUT1P1 0x11
+ #define AB8500_CUT2P0 0x20
+ #define AB8500_CUT3P0 0x30
+ #define AB8500_CUT3P3 0x33
+ 
  /*
   * AB8500 bank addresses
   */