sound/soc/codecs/wm8994.h
Source file repositories/reference/linux-study-clean/sound/soc/codecs/wm8994.h
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/codecs/wm8994.h- Extension
.h- Size
- 3936 bytes
- Lines
- 174
- Domain
- Driver Families
- Bucket
- sound/soc
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/clk.hsound/soc.hlinux/firmware.hlinux/completion.hlinux/workqueue.hlinux/mutex.hwm_hubs.h
Detected Declarations
struct wm8994_micdetstruct wm8994_fll_configstruct wm8994struct wm8994_privenum wm8994_vmid_mode
Annotated Snippet
struct wm8994_micdet {
struct snd_soc_jack *jack;
bool detecting;
};
/* codec private data */
struct wm8994_fll_config {
int src;
int in;
int out;
};
#define WM8994_NUM_DRC 3
#define WM8994_NUM_EQ 3
struct wm8994;
struct wm8994_priv {
struct wm_hubs_data hubs;
struct wm8994 *wm8994;
struct clk_bulk_data mclk[WM8994_NUM_MCLK];
int sysclk[2];
int sysclk_rate[2];
int mclk_rate[2];
int aifclk[2];
int aifdiv[2];
int channels[2];
struct wm8994_fll_config fll[2], fll_suspend[2];
struct completion fll_locked[2];
bool fll_locked_irq;
bool fll_byp;
bool clk_has_run;
int vmid_refcount;
int active_refcount;
enum wm8994_vmid_mode vmid_mode;
int dac_rates[2];
int lrclk_shared[2];
int mbc_ena[3];
int hpf1_ena[3];
int hpf2_ena[3];
int vss_ena[3];
int enh_eq_ena[3];
/* Platform dependent DRC configuration */
const char **drc_texts;
int drc_cfg[WM8994_NUM_DRC];
struct soc_enum drc_enum;
/* Platform dependent ReTune mobile configuration */
int num_retune_mobile_texts;
const char **retune_mobile_texts;
int retune_mobile_cfg[WM8994_NUM_EQ];
struct soc_enum retune_mobile_enum;
/* Platform dependent MBC configuration */
int mbc_cfg;
const char **mbc_texts;
struct soc_enum mbc_enum;
/* Platform dependent VSS configuration */
int vss_cfg;
const char **vss_texts;
struct soc_enum vss_enum;
/* Platform dependent VSS HPF configuration */
int vss_hpf_cfg;
const char **vss_hpf_texts;
struct soc_enum vss_hpf_enum;
/* Platform dependent enhanced EQ configuration */
int enh_eq_cfg;
const char **enh_eq_texts;
struct soc_enum enh_eq_enum;
struct mutex accdet_lock;
struct wm8994_micdet micdet[2];
struct delayed_work mic_work;
struct delayed_work open_circuit_work;
struct delayed_work mic_complete_work;
u16 mic_status;
bool mic_detecting;
bool jack_mic;
int btn_mask;
bool jackdet;
int jackdet_mode;
struct delayed_work jackdet_bootstrap;
Annotation
- Immediate include surface: `linux/clk.h`, `sound/soc.h`, `linux/firmware.h`, `linux/completion.h`, `linux/workqueue.h`, `linux/mutex.h`, `wm_hubs.h`.
- Detected declarations: `struct wm8994_micdet`, `struct wm8994_fll_config`, `struct wm8994`, `struct wm8994_priv`, `enum wm8994_vmid_mode`.
- Atlas domain: Driver Families / sound/soc.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.