]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/linux/mfd/twl6040.h
Merge branch 'core' of git://amd64.org/linux/rric into perf/core
[karo-tx-linux.git] / include / linux / mfd / twl6040.h
index 4c806f6d663e0d0f9cbc03d221577f4e7190dea9..2463c2619596fab1667b1ca1c5365c5963bf29ea 100644 (file)
 #define TWL6040_REG_ACCCTL             0x2D
 #define TWL6040_REG_STATUS             0x2E
 
-#define TWL6040_CACHEREGNUM            (TWL6040_REG_STATUS + 1)
-
-#define TWL6040_VIOREGNUM              18
-#define TWL6040_VDDREGNUM              21
-
 /* INTID (0x03) fields */
 
 #define TWL6040_THINT                  0x01
 #define TWL6040_LPLLFIN                        0x08
 #define TWL6040_HPLLSEL                        0x10
 
-/* HSLCTL (0x10) fields */
-
-#define TWL6040_HSDACMODEL             0x02
-#define TWL6040_HSDRVMODEL             0x08
-
-/* HSRCTL (0x11) fields */
+/* HSLCTL/R (0x10/0x11) fields */
 
-#define TWL6040_HSDACMODER             0x02
-#define TWL6040_HSDRVMODER             0x08
+#define TWL6040_HSDACENA               (1 << 0)
+#define TWL6040_HSDACMODE              (1 << 1)
+#define TWL6040_HSDRVMODE              (1 << 3)
 
-/* VIBCTLL (0x18) fields */
+/* VIBCTLL/R (0x18/0x1A) fields */
 
-#define TWL6040_VIBENAL                        0x01
-#define TWL6040_VIBCTRLL               0x04
-#define TWL6040_VIBCTRLLP              0x08
-#define TWL6040_VIBCTRLLN              0x10
+#define TWL6040_VIBENA                 (1 << 0)
+#define TWL6040_VIBSEL                 (1 << 1)
+#define TWL6040_VIBCTRL                        (1 << 2)
+#define TWL6040_VIBCTRL_P              (1 << 3)
+#define TWL6040_VIBCTRL_N              (1 << 4)
 
-/* VIBDATL (0x19) fields */
+/* VIBDATL/R (0x19/0x1B) fields */
 
 #define TWL6040_VIBDAT_MAX             0x64
 
-/* VIBCTLR (0x1A) fields */
-
-#define TWL6040_VIBENAR                        0x01
-#define TWL6040_VIBCTRLR               0x04
-#define TWL6040_VIBCTRLRP              0x08
-#define TWL6040_VIBCTRLRN              0x10
-
 /* GPOCTL (0x1E) fields */
 
 #define TWL6040_GPO1                   0x01
@@ -200,6 +185,7 @@ struct twl6040 {
        int audpwron;
        int power_count;
        int rev;
+       u8 vibra_ctrl_cache[2];
 
        int pll;
        unsigned int sysclk;
@@ -224,5 +210,13 @@ int twl6040_get_pll(struct twl6040 *twl6040);
 unsigned int twl6040_get_sysclk(struct twl6040 *twl6040);
 int twl6040_irq_init(struct twl6040 *twl6040);
 void twl6040_irq_exit(struct twl6040 *twl6040);
+/* Get the combined status of the vibra control register */
+int twl6040_get_vibralr_status(struct twl6040 *twl6040);
+
+static inline int twl6040_get_revid(struct twl6040 *twl6040)
+{
+       return twl6040->rev;
+}
+
 
 #endif  /* End of __TWL6040_CODEC_H__ */