ASoC: Implement DC servo completion IRQ handling for wm_hubs devices
[firefly-linux-kernel-4.4.55.git] / sound / soc / codecs / wm_hubs.h
index f8a5e976b5e6e3fcd755a224e54c36e3f2415841..676b1252ab910559a07bc3738051a67e60e765c8 100644 (file)
@@ -14,6 +14,9 @@
 #ifndef _WM_HUBS_H
 #define _WM_HUBS_H
 
+#include <linux/completion.h>
+#include <linux/interrupt.h>
+
 struct snd_soc_codec;
 
 extern const unsigned int wm_hubs_spkmix_tlv[];
@@ -23,9 +26,14 @@ struct wm_hubs_data {
        int dcs_codes;
        int dcs_readback_mode;
        int hp_startup_mode;
+       int series_startup;
+       int no_series_update;
 
        bool class_w;
        u16 class_w_dcs;
+
+       bool dcs_done_irq;
+       struct completion dcs_done;
 };
 
 extern int wm_hubs_add_analogue_controls(struct snd_soc_codec *);
@@ -36,4 +44,6 @@ extern int wm_hubs_handle_analogue_pdata(struct snd_soc_codec *,
                                         int jd_scthr, int jd_thr,
                                         int micbias1_lvl, int micbias2_lvl);
 
+extern irqreturn_t wm_hubs_dcs_done(int irq, void *data);
+
 #endif