]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - sound/soc/codecs/tlv320aic31xx.h
ASoC: tlv320aic31xx: Add headphone/headset detection
[linux.git] / sound / soc / codecs / tlv320aic31xx.h
index 0b587585b38bbae23b7b016354533f7818f420ce..9985ceed97ae7bbbf45830d39bd5ea0ea944b593 100644 (file)
@@ -20,6 +20,9 @@
 #define AIC31XX_MINIDSP_BIT            BIT(2)
 #define DAC31XX_BIT                    BIT(3)
 
+#define AIC31XX_JACK_MASK (SND_JACK_HEADPHONE | \
+                          SND_JACK_HEADSET)
+
 enum aic31xx_type {
        AIC3100 = 0,
        AIC3110 = AIC31XX_STEREO_CLASS_D_BIT,
@@ -173,6 +176,13 @@ struct aic31xx_pdata {
 #define AIC31XX_HPRDRVPWRSTATUS_MASK   BIT(1)
 #define AIC31XX_SPRDRVPWRSTATUS_MASK   BIT(0)
 
+/* AIC31XX_OFFLAG */
+#define AIC31XX_DAC_OF_LEFT            BIT(7)
+#define AIC31XX_DAC_OF_RIGHT           BIT(6)
+#define AIC31XX_DAC_OF_SHIFTER         BIT(5)
+#define AIC31XX_ADC_OF                 BIT(3)
+#define AIC31XX_ADC_OF_SHIFTER         BIT(1)
+
 /* AIC31XX_INTRDACFLAG */
 #define AIC31XX_HPLSCDETECT            BIT(7)
 #define AIC31XX_HPRSCDETECT            BIT(6)
@@ -191,12 +201,36 @@ struct aic31xx_pdata {
 #define AIC31XX_SC                     BIT(3)
 #define AIC31XX_ENGINE                 BIT(2)
 
+/* AIC31XX_GPIO1 */
+#define AIC31XX_GPIO1_FUNC_MASK                GENMASK(5, 2)
+#define AIC31XX_GPIO1_FUNC_SHIFT       2
+#define AIC31XX_GPIO1_DISABLED         0x00
+#define AIC31XX_GPIO1_INPUT            0x01
+#define AIC31XX_GPIO1_GPI              0x02
+#define AIC31XX_GPIO1_GPO              0x03
+#define AIC31XX_GPIO1_CLKOUT           0x04
+#define AIC31XX_GPIO1_INT1             0x05
+#define AIC31XX_GPIO1_INT2             0x06
+#define AIC31XX_GPIO1_ADC_WCLK         0x07
+#define AIC31XX_GPIO1_SBCLK            0x08
+#define AIC31XX_GPIO1_SWCLK            0x09
+#define AIC31XX_GPIO1_ADC_MOD_CLK      0x10
+#define AIC31XX_GPIO1_SDOUT            0x11
+
 /* AIC31XX_DACSETUP */
 #define AIC31XX_SOFTSTEP_MASK          GENMASK(1, 0)
 
 /* AIC31XX_DACMUTE */
 #define AIC31XX_DACMUTE_MASK           GENMASK(3, 2)
 
+/* AIC31XX_HSDETECT */
+#define AIC31XX_HSD_ENABLE             BIT(7)
+#define AIC31XX_HSD_TYPE_MASK          GENMASK(6, 5)
+#define AIC31XX_HSD_TYPE_SHIFT         5
+#define AIC31XX_HSD_NONE               0x00
+#define AIC31XX_HSD_HP                 0x01
+#define AIC31XX_HSD_HS                 0x03
+
 /* AIC31XX_MICBIAS */
 #define AIC31XX_MICBIAS_MASK           GENMASK(1, 0)
 #define AIC31XX_MICBIAS_SHIFT          0