sound/soc/codecs/rt5645.h
Source file repositories/reference/linux-study-clean/sound/soc/codecs/rt5645.h
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/codecs/rt5645.h- Extension
.h- Size
- 77404 bytes
- Lines
- 2214
- 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 __RT5645_H__
#define __RT5645_H__
/* Info */
#define RT5645_RESET 0x00
#define RT5645_VENDOR_ID 0xfd
#define RT5645_VENDOR_ID1 0xfe
#define RT5645_VENDOR_ID2 0xff
/* I/O - Output */
#define RT5645_SPK_VOL 0x01
#define RT5645_HP_VOL 0x02
#define RT5645_LOUT1 0x03
#define RT5645_LOUT_CTRL 0x05
/* I/O - Input */
#define RT5645_IN1_CTRL1 0x0a
#define RT5645_IN1_CTRL2 0x0b
#define RT5645_IN1_CTRL3 0x0c
#define RT5645_IN2_CTRL 0x0d
#define RT5645_INL1_INR1_VOL 0x0f
#define RT5645_SPK_FUNC_LIM 0x14
#define RT5645_ADJ_HPF_CTRL 0x16
/* I/O - ADC/DAC/DMIC */
#define RT5645_DAC1_DIG_VOL 0x19
#define RT5645_DAC2_DIG_VOL 0x1a
#define RT5645_DAC_CTRL 0x1b
#define RT5645_STO1_ADC_DIG_VOL 0x1c
#define RT5645_MONO_ADC_DIG_VOL 0x1d
#define RT5645_ADC_BST_VOL1 0x1e
#define RT5645_ADC_BST_VOL2 0x20
/* Mixer - D-D */
#define RT5645_STO1_ADC_MIXER 0x27
#define RT5645_MONO_ADC_MIXER 0x28
#define RT5645_AD_DA_MIXER 0x29
#define RT5645_STO_DAC_MIXER 0x2a
#define RT5645_MONO_DAC_MIXER 0x2b
#define RT5645_DIG_MIXER 0x2c
#define RT5650_A_DAC_SOUR 0x2d
#define RT5645_DIG_INF1_DATA 0x2f
/* Mixer - PDM */
#define RT5645_PDM_OUT_CTRL 0x31
/* Mixer - ADC */
#define RT5645_REC_L1_MIXER 0x3b
#define RT5645_REC_L2_MIXER 0x3c
#define RT5645_REC_R1_MIXER 0x3d
#define RT5645_REC_R2_MIXER 0x3e
/* Mixer - DAC */
#define RT5645_HPMIXL_CTRL 0x3f
#define RT5645_HPOMIXL_CTRL 0x40
#define RT5645_HPMIXR_CTRL 0x41
#define RT5645_HPOMIXR_CTRL 0x42
#define RT5645_HPO_MIXER 0x45
#define RT5645_SPK_L_MIXER 0x46
#define RT5645_SPK_R_MIXER 0x47
#define RT5645_SPO_MIXER 0x48
#define RT5645_SPO_CLSD_RATIO 0x4a
#define RT5645_OUT_L_GAIN1 0x4d
#define RT5645_OUT_L_GAIN2 0x4e
#define RT5645_OUT_L1_MIXER 0x4f
#define RT5645_OUT_R_GAIN1 0x50
#define RT5645_OUT_R_GAIN2 0x51
#define RT5645_OUT_R1_MIXER 0x52
#define RT5645_LOUT_MIXER 0x53
/* Haptic */
#define RT5645_HAPTIC_CTRL1 0x56
#define RT5645_HAPTIC_CTRL2 0x57
#define RT5645_HAPTIC_CTRL3 0x58
#define RT5645_HAPTIC_CTRL4 0x59
#define RT5645_HAPTIC_CTRL5 0x5a
#define RT5645_HAPTIC_CTRL6 0x5b
#define RT5645_HAPTIC_CTRL7 0x5c
#define RT5645_HAPTIC_CTRL8 0x5d
#define RT5645_HAPTIC_CTRL9 0x5e
#define RT5645_HAPTIC_CTRL10 0x5f
/* Power */
#define RT5645_PWR_DIG1 0x61
#define RT5645_PWR_DIG2 0x62
#define RT5645_PWR_ANLG1 0x63
#define RT5645_PWR_ANLG2 0x64
#define RT5645_PWR_MIXER 0x65
#define RT5645_PWR_VOL 0x66
/* Private Register Control */
#define RT5645_PRIV_INDEX 0x6a
#define RT5645_PRIV_DATA 0x6c
/* Format - ADC/DAC */
#define RT5645_I2S1_SDP 0x70
#define RT5645_I2S2_SDP 0x71
#define RT5645_ADDA_CLK1 0x73
#define RT5645_ADDA_CLK2 0x74
#define RT5645_DMIC_CTRL1 0x75
#define RT5645_DMIC_CTRL2 0x76
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.