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.

Dependency Surface

Detected Declarations

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

Implementation Notes