sound/soc/codecs/wm5100.h
Source file repositories/reference/linux-study-clean/sound/soc/codecs/wm5100.h
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/codecs/wm5100.h- Extension
.h- Size
- 289053 bytes
- Lines
- 5312
- 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
sound/soc.hlinux/regmap.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef WM5100_ASOC_H
#define WM5100_ASOC_H
#include <sound/soc.h>
#include <linux/regmap.h>
int wm5100_detect(struct snd_soc_component *component, struct snd_soc_jack *jack);
#define WM5100_CLK_AIF1 1
#define WM5100_CLK_AIF2 2
#define WM5100_CLK_AIF3 3
#define WM5100_CLK_SYSCLK 4
#define WM5100_CLK_ASYNCCLK 5
#define WM5100_CLK_32KHZ 6
#define WM5100_CLK_OPCLK 7
#define WM5100_CLKSRC_MCLK1 0
#define WM5100_CLKSRC_MCLK2 1
#define WM5100_CLKSRC_SYSCLK 2
#define WM5100_CLKSRC_FLL1 4
#define WM5100_CLKSRC_FLL2 5
#define WM5100_CLKSRC_AIF1BCLK 8
#define WM5100_CLKSRC_AIF2BCLK 9
#define WM5100_CLKSRC_AIF3BCLK 10
#define WM5100_CLKSRC_ASYNCCLK 0x100
#define WM5100_FLL1 1
#define WM5100_FLL2 2
#define WM5100_FLL_SRC_MCLK1 0x0
#define WM5100_FLL_SRC_MCLK2 0x1
#define WM5100_FLL_SRC_FLL1 0x4
#define WM5100_FLL_SRC_FLL2 0x5
#define WM5100_FLL_SRC_AIF1BCLK 0x8
#define WM5100_FLL_SRC_AIF2BCLK 0x9
#define WM5100_FLL_SRC_AIF3BCLK 0xa
/*
* Register values.
*/
#define WM5100_SOFTWARE_RESET 0x00
#define WM5100_DEVICE_REVISION 0x01
#define WM5100_CTRL_IF_1 0x10
#define WM5100_TONE_GENERATOR_1 0x20
#define WM5100_PWM_DRIVE_1 0x30
#define WM5100_PWM_DRIVE_2 0x31
#define WM5100_PWM_DRIVE_3 0x32
#define WM5100_CLOCKING_1 0x100
#define WM5100_CLOCKING_3 0x101
#define WM5100_CLOCKING_4 0x102
#define WM5100_CLOCKING_5 0x103
#define WM5100_CLOCKING_6 0x104
#define WM5100_CLOCKING_7 0x107
#define WM5100_CLOCKING_8 0x108
#define WM5100_ASRC_ENABLE 0x120
#define WM5100_ASRC_STATUS 0x121
#define WM5100_ASRC_RATE1 0x122
#define WM5100_ISRC_1_CTRL_1 0x141
#define WM5100_ISRC_1_CTRL_2 0x142
#define WM5100_ISRC_2_CTRL1 0x143
#define WM5100_ISRC_2_CTRL_2 0x144
#define WM5100_FLL1_CONTROL_1 0x182
#define WM5100_FLL1_CONTROL_2 0x183
#define WM5100_FLL1_CONTROL_3 0x184
#define WM5100_FLL1_CONTROL_5 0x186
#define WM5100_FLL1_CONTROL_6 0x187
#define WM5100_FLL1_EFS_1 0x188
#define WM5100_FLL2_CONTROL_1 0x1A2
#define WM5100_FLL2_CONTROL_2 0x1A3
#define WM5100_FLL2_CONTROL_3 0x1A4
#define WM5100_FLL2_CONTROL_5 0x1A6
#define WM5100_FLL2_CONTROL_6 0x1A7
#define WM5100_FLL2_EFS_1 0x1A8
#define WM5100_MIC_CHARGE_PUMP_1 0x200
#define WM5100_MIC_CHARGE_PUMP_2 0x201
#define WM5100_HP_CHARGE_PUMP_1 0x202
#define WM5100_LDO1_CONTROL 0x211
#define WM5100_MIC_BIAS_CTRL_1 0x215
#define WM5100_MIC_BIAS_CTRL_2 0x216
#define WM5100_MIC_BIAS_CTRL_3 0x217
#define WM5100_ACCESSORY_DETECT_MODE_1 0x280
#define WM5100_HEADPHONE_DETECT_1 0x288
#define WM5100_HEADPHONE_DETECT_2 0x289
#define WM5100_MIC_DETECT_1 0x290
#define WM5100_MIC_DETECT_2 0x291
#define WM5100_MIC_DETECT_3 0x292
#define WM5100_MISC_CONTROL 0x2BB
#define WM5100_INPUT_ENABLES 0x301
#define WM5100_INPUT_ENABLES_STATUS 0x302
#define WM5100_IN1L_CONTROL 0x310
Annotation
- Immediate include surface: `sound/soc.h`, `linux/regmap.h`.
- 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.