sound/soc/codecs/wm8996.h
Source file repositories/reference/linux-study-clean/sound/soc/codecs/wm8996.h
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/codecs/wm8996.h- Extension
.h- Size
- 221377 bytes
- Lines
- 3718
- 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
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef _WM8996_H
#define _WM8996_H
#define WM8996_SYSCLK_MCLK1 1
#define WM8996_SYSCLK_MCLK2 2
#define WM8996_SYSCLK_FLL 3
#define WM8996_FLL_MCLK1 1
#define WM8996_FLL_MCLK2 2
#define WM8996_FLL_DACLRCLK1 3
#define WM8996_FLL_BCLK1 4
typedef void (*wm8996_polarity_fn)(struct snd_soc_component *component, int polarity);
int wm8996_detect(struct snd_soc_component *component, struct snd_soc_jack *jack,
wm8996_polarity_fn polarity_cb);
/*
* Register values.
*/
#define WM8996_SOFTWARE_RESET 0x00
#define WM8996_POWER_MANAGEMENT_1 0x01
#define WM8996_POWER_MANAGEMENT_2 0x02
#define WM8996_POWER_MANAGEMENT_3 0x03
#define WM8996_POWER_MANAGEMENT_4 0x04
#define WM8996_POWER_MANAGEMENT_5 0x05
#define WM8996_POWER_MANAGEMENT_6 0x06
#define WM8996_POWER_MANAGEMENT_7 0x07
#define WM8996_POWER_MANAGEMENT_8 0x08
#define WM8996_LEFT_LINE_INPUT_VOLUME 0x10
#define WM8996_RIGHT_LINE_INPUT_VOLUME 0x11
#define WM8996_LINE_INPUT_CONTROL 0x12
#define WM8996_DAC1_HPOUT1_VOLUME 0x15
#define WM8996_DAC2_HPOUT2_VOLUME 0x16
#define WM8996_DAC1_LEFT_VOLUME 0x18
#define WM8996_DAC1_RIGHT_VOLUME 0x19
#define WM8996_DAC2_LEFT_VOLUME 0x1A
#define WM8996_DAC2_RIGHT_VOLUME 0x1B
#define WM8996_OUTPUT1_LEFT_VOLUME 0x1C
#define WM8996_OUTPUT1_RIGHT_VOLUME 0x1D
#define WM8996_OUTPUT2_LEFT_VOLUME 0x1E
#define WM8996_OUTPUT2_RIGHT_VOLUME 0x1F
#define WM8996_MICBIAS_1 0x20
#define WM8996_MICBIAS_2 0x21
#define WM8996_LDO_1 0x28
#define WM8996_LDO_2 0x29
#define WM8996_ACCESSORY_DETECT_MODE_1 0x30
#define WM8996_ACCESSORY_DETECT_MODE_2 0x31
#define WM8996_HEADPHONE_DETECT_1 0x34
#define WM8996_HEADPHONE_DETECT_2 0x35
#define WM8996_MIC_DETECT_1 0x38
#define WM8996_MIC_DETECT_2 0x39
#define WM8996_MIC_DETECT_3 0x3A
#define WM8996_CHARGE_PUMP_1 0x40
#define WM8996_CHARGE_PUMP_2 0x41
#define WM8996_DC_SERVO_1 0x50
#define WM8996_DC_SERVO_2 0x51
#define WM8996_DC_SERVO_3 0x52
#define WM8996_DC_SERVO_5 0x54
#define WM8996_DC_SERVO_6 0x55
#define WM8996_DC_SERVO_7 0x56
#define WM8996_DC_SERVO_READBACK_0 0x57
#define WM8996_ANALOGUE_HP_1 0x60
#define WM8996_ANALOGUE_HP_2 0x61
#define WM8996_CHIP_REVISION 0x100
#define WM8996_CONTROL_INTERFACE_1 0x101
#define WM8996_WRITE_SEQUENCER_CTRL_1 0x110
#define WM8996_WRITE_SEQUENCER_CTRL_2 0x111
#define WM8996_AIF_CLOCKING_1 0x200
#define WM8996_AIF_CLOCKING_2 0x201
#define WM8996_CLOCKING_1 0x208
#define WM8996_CLOCKING_2 0x209
#define WM8996_AIF_RATE 0x210
#define WM8996_FLL_CONTROL_1 0x220
#define WM8996_FLL_CONTROL_2 0x221
#define WM8996_FLL_CONTROL_3 0x222
#define WM8996_FLL_CONTROL_4 0x223
#define WM8996_FLL_CONTROL_5 0x224
#define WM8996_FLL_CONTROL_6 0x225
#define WM8996_FLL_EFS_1 0x226
#define WM8996_FLL_EFS_2 0x227
#define WM8996_AIF1_CONTROL 0x300
#define WM8996_AIF1_BCLK 0x301
#define WM8996_AIF1_TX_LRCLK_1 0x302
#define WM8996_AIF1_TX_LRCLK_2 0x303
#define WM8996_AIF1_RX_LRCLK_1 0x304
#define WM8996_AIF1_RX_LRCLK_2 0x305
#define WM8996_AIF1TX_DATA_CONFIGURATION_1 0x306
#define WM8996_AIF1TX_DATA_CONFIGURATION_2 0x307
#define WM8996_AIF1RX_DATA_CONFIGURATION 0x308
Annotation
- 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.