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.

Dependency Surface

Detected Declarations

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

Implementation Notes