ASoC: da7219: Improve pop/click performance for sensitive HPs
[sfrench/cifs-2.6.git] / sound / soc / codecs / da7219.h
index ff2a2f02ce4049059218b35cc3beb0bddaf6e685..6baba7455fa12a2759f8e103d75fa834d0eb0fd2 100644 (file)
 #define DA7219_PLL_SRM_STATE_MASK      (0xF << 0)
 #define DA7219_PLL_SRM_STATUS_SHIFT    4
 #define DA7219_PLL_SRM_STATUS_MASK     (0xF << 4)
+#define DA7219_PLL_SRM_STS_MCLK                (0x1 << 4)
 #define DA7219_PLL_SRM_STS_SRM_LOCK    (0x1 << 7)
 
 /* DA7219_DIG_ROUTING_DAI = 0x2A */
 /* DA7219_GAIN_RAMP_CTRL = 0x92 */
 #define DA7219_GAIN_RAMP_RATE_SHIFT    0
 #define DA7219_GAIN_RAMP_RATE_MASK     (0x3 << 0)
+#define DA7219_GAIN_RAMP_RATE_X8       (0x0 << 0)
+#define DA7219_GAIN_RAMP_RATE_NOMINAL  (0x1 << 0)
 #define DA7219_GAIN_RAMP_RATE_MAX      4
 
 /* DA7219_PC_COUNT = 0x94 */
 /* SRM */
 #define DA7219_SRM_CHECK_RETRIES       8
 
+/* System Controller */
+#define DA7219_SYS_STAT_CHECK_RETRIES  6
+#define DA7219_SYS_STAT_CHECK_DELAY    50
+
+/* Power up/down Delays */
+#define DA7219_SETTLING_DELAY  40
+#define DA7219_MIN_GAIN_DELAY  30
+
 enum da7219_clk_src {
        DA7219_CLKSRC_MCLK = 0,
        DA7219_CLKSRC_MCLK_SQR,
@@ -796,6 +807,7 @@ struct da7219_priv {
        struct da7219_aad_priv *aad;
        struct da7219_pdata *pdata;
 
+       bool wakeup_source;
        struct regulator_bulk_data supplies[DA7219_NUM_SUPPLIES];
        struct regmap *regmap;
        struct mutex lock;
@@ -806,6 +818,7 @@ struct da7219_priv {
 
        bool master;
        bool alc_en;
+       u8 gain_ramp_ctrl;
 };
 
 #endif /* __DA7219_H */