sound/soc/codecs/wm8955.h
Source file repositories/reference/linux-study-clean/sound/soc/codecs/wm8955.h
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/codecs/wm8955.h- Extension
.h- Size
- 25085 bytes
- Lines
- 484
- 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.
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 _WM8955_H
#define _WM8955_H
#define WM8955_CLK_MCLK 1
/*
* Register values.
*/
#define WM8955_LOUT1_VOLUME 0x02
#define WM8955_ROUT1_VOLUME 0x03
#define WM8955_DAC_CONTROL 0x05
#define WM8955_AUDIO_INTERFACE 0x07
#define WM8955_SAMPLE_RATE 0x08
#define WM8955_LEFT_DAC_VOLUME 0x0A
#define WM8955_RIGHT_DAC_VOLUME 0x0B
#define WM8955_BASS_CONTROL 0x0C
#define WM8955_TREBLE_CONTROL 0x0D
#define WM8955_RESET 0x0F
#define WM8955_ADDITIONAL_CONTROL_1 0x17
#define WM8955_ADDITIONAL_CONTROL_2 0x18
#define WM8955_POWER_MANAGEMENT_1 0x19
#define WM8955_POWER_MANAGEMENT_2 0x1A
#define WM8955_ADDITIONAL_CONTROL_3 0x1B
#define WM8955_LEFT_OUT_MIX_1 0x22
#define WM8955_LEFT_OUT_MIX_2 0x23
#define WM8955_RIGHT_OUT_MIX_1 0x24
#define WM8955_RIGHT_OUT_MIX_2 0x25
#define WM8955_MONO_OUT_MIX_1 0x26
#define WM8955_MONO_OUT_MIX_2 0x27
#define WM8955_LOUT2_VOLUME 0x28
#define WM8955_ROUT2_VOLUME 0x29
#define WM8955_MONOOUT_VOLUME 0x2A
#define WM8955_CLOCKING_PLL 0x2B
#define WM8955_PLL_CONTROL_1 0x2C
#define WM8955_PLL_CONTROL_2 0x2D
#define WM8955_PLL_CONTROL_3 0x2E
#define WM8955_PLL_CONTROL_4 0x3B
#define WM8955_REGISTER_COUNT 29
#define WM8955_MAX_REGISTER 0x3B
/*
* Field Definitions.
*/
/*
* R2 (0x02) - LOUT1 volume
*/
#define WM8955_LO1VU 0x0100 /* LO1VU */
#define WM8955_LO1VU_MASK 0x0100 /* LO1VU */
#define WM8955_LO1VU_SHIFT 8 /* LO1VU */
#define WM8955_LO1VU_WIDTH 1 /* LO1VU */
#define WM8955_LO1ZC 0x0080 /* LO1ZC */
#define WM8955_LO1ZC_MASK 0x0080 /* LO1ZC */
#define WM8955_LO1ZC_SHIFT 7 /* LO1ZC */
#define WM8955_LO1ZC_WIDTH 1 /* LO1ZC */
#define WM8955_LOUTVOL_MASK 0x007F /* LOUTVOL - [6:0] */
#define WM8955_LOUTVOL_SHIFT 0 /* LOUTVOL - [6:0] */
#define WM8955_LOUTVOL_WIDTH 7 /* LOUTVOL - [6:0] */
/*
* R3 (0x03) - ROUT1 volume
*/
#define WM8955_RO1VU 0x0100 /* RO1VU */
#define WM8955_RO1VU_MASK 0x0100 /* RO1VU */
#define WM8955_RO1VU_SHIFT 8 /* RO1VU */
#define WM8955_RO1VU_WIDTH 1 /* RO1VU */
#define WM8955_RO1ZC 0x0080 /* RO1ZC */
#define WM8955_RO1ZC_MASK 0x0080 /* RO1ZC */
#define WM8955_RO1ZC_SHIFT 7 /* RO1ZC */
#define WM8955_RO1ZC_WIDTH 1 /* RO1ZC */
#define WM8955_ROUTVOL_MASK 0x007F /* ROUTVOL - [6:0] */
#define WM8955_ROUTVOL_SHIFT 0 /* ROUTVOL - [6:0] */
#define WM8955_ROUTVOL_WIDTH 7 /* ROUTVOL - [6:0] */
/*
* R5 (0x05) - DAC Control
*/
#define WM8955_DAT 0x0080 /* DAT */
#define WM8955_DAT_MASK 0x0080 /* DAT */
#define WM8955_DAT_SHIFT 7 /* DAT */
#define WM8955_DAT_WIDTH 1 /* DAT */
#define WM8955_DACMU 0x0008 /* DACMU */
#define WM8955_DACMU_MASK 0x0008 /* DACMU */
#define WM8955_DACMU_SHIFT 3 /* DACMU */
#define WM8955_DACMU_WIDTH 1 /* DACMU */
#define WM8955_DEEMPH_MASK 0x0006 /* DEEMPH - [2:1] */
#define WM8955_DEEMPH_SHIFT 1 /* DEEMPH - [2:1] */
#define WM8955_DEEMPH_WIDTH 2 /* DEEMPH - [2:1] */
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.