linux/sound/soc/codecs/wm8994.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * wm8994.h  --  WM8994 Soc Audio driver
 */

#ifndef _WM8994_H
#define _WM8994_H

#include <linux/clk.h>
#include <sound/soc.h>
#include <linux/firmware.h>
#include <linux/completion.h>
#include <linux/workqueue.h>
#include <linux/mutex.h>

#include "wm_hubs.h"

enum {};

/* Sources for AIF1/2 SYSCLK - use with set_dai_sysclk() */
#define WM8994_SYSCLK_MCLK1
#define WM8994_SYSCLK_MCLK2
#define WM8994_SYSCLK_FLL1
#define WM8994_SYSCLK_FLL2

/* OPCLK is also configured with set_dai_sysclk, specify division*10 as rate. */
#define WM8994_SYSCLK_OPCLK

#define WM8994_FLL1
#define WM8994_FLL2

#define WM8994_FLL_SRC_MCLK1
#define WM8994_FLL_SRC_MCLK2
#define WM8994_FLL_SRC_LRCLK
#define WM8994_FLL_SRC_BCLK
#define WM8994_FLL_SRC_INTERNAL

enum wm8994_vmid_mode {};

wm1811_micdet_cb;
wm1811_mic_id_cb;

int wm8994_mic_detect(struct snd_soc_component *component, struct snd_soc_jack *jack,
		      int micbias);
int wm8958_mic_detect(struct snd_soc_component *component, struct snd_soc_jack *jack,
		      wm1811_micdet_cb det_cb, void *det_cb_data,
		      wm1811_mic_id_cb id_cb, void *id_cb_data);

int wm8994_vmid_mode(struct snd_soc_component *component, enum wm8994_vmid_mode mode);

int wm8958_aif_ev(struct snd_soc_dapm_widget *w,
		  struct snd_kcontrol *kcontrol, int event);

void wm8958_dsp2_init(struct snd_soc_component *component);

struct wm8994_micdet {};

/* codec private data */
struct wm8994_fll_config {};

#define WM8994_NUM_DRC
#define WM8994_NUM_EQ

struct wm8994;

struct wm8994_priv {};

#endif