Linux Audio

Check our new training course

Real-Time Linux with PREEMPT_RT training

Feb 18-20, 2025
Register
Loading...
v6.13.7
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/*
  3 * wm8940.h -- WM8940 Soc Audio driver
 
 
 
 
  4 */
  5
  6#ifndef _WM8940_H
  7#define _WM8940_H
  8
  9struct wm8940_setup_data {
 10	/* Vref to analogue output resistance */
 11#define WM8940_VROI_1K 0
 12#define WM8940_VROI_30K 1
 13	unsigned int vroi:1;
 14};
 15
 16/* WM8940 register space */
 17#define WM8940_SOFTRESET	0x00
 18#define WM8940_POWER1		0x01
 19#define WM8940_POWER2		0x02
 20#define WM8940_POWER3		0x03
 21#define WM8940_IFACE		0x04
 22#define WM8940_COMPANDINGCTL	0x05
 23#define WM8940_CLOCK		0x06
 24#define WM8940_ADDCNTRL		0x07
 25#define WM8940_GPIO		0x08
 26#define WM8940_CTLINT		0x09
 27#define WM8940_DAC		0x0A
 28#define WM8940_DACVOL		0x0B
 29
 30#define WM8940_ADC		0x0E
 31#define WM8940_ADCVOL		0x0F
 32#define WM8940_NOTCH1		0x10
 33#define WM8940_NOTCH2		0x11
 34#define WM8940_NOTCH3		0x12
 35#define WM8940_NOTCH4		0x13
 36#define WM8940_NOTCH5		0x14
 37#define WM8940_NOTCH6		0x15
 38#define WM8940_NOTCH7		0x16
 39#define WM8940_NOTCH8		0x17
 40#define WM8940_DACLIM1		0x18
 41#define WM8940_DACLIM2		0x19
 42
 43#define WM8940_ALC1		0x20
 44#define WM8940_ALC2		0x21
 45#define WM8940_ALC3		0x22
 46#define WM8940_NOISEGATE	0x23
 47#define WM8940_PLLN		0x24
 48#define WM8940_PLLK1		0x25
 49#define WM8940_PLLK2		0x26
 50#define WM8940_PLLK3		0x27
 51
 52#define WM8940_ALC4		0x2A
 53
 54#define WM8940_INPUTCTL		0x2C
 55#define WM8940_PGAGAIN		0x2D
 56
 57#define WM8940_ADCBOOST		0x2F
 58
 59#define WM8940_OUTPUTCTL	0x31
 60#define WM8940_SPKMIX		0x32
 61
 62#define WM8940_SPKVOL		0x36
 63
 64#define WM8940_MONOMIX		0x38
 65
 66#define WM8940_CACHEREGNUM  0x57
 67
 68
 69/* Clock divider Id's */
 70#define WM8940_BCLKDIV 0
 71#define WM8940_MCLKDIV 1
 72#define WM8940_OPCLKDIV 2
 73
 74/* MCLK clock dividers */
 75#define WM8940_MCLKDIV_1	0
 76#define WM8940_MCLKDIV_1_5	1
 77#define WM8940_MCLKDIV_2	2
 78#define WM8940_MCLKDIV_3	3
 79#define WM8940_MCLKDIV_4	4
 80#define WM8940_MCLKDIV_6	5
 81#define WM8940_MCLKDIV_8	6
 82#define WM8940_MCLKDIV_12	7
 83
 84/* BCLK clock dividers */
 85#define WM8940_BCLKDIV_1 0
 86#define WM8940_BCLKDIV_2 1
 87#define WM8940_BCLKDIV_4 2
 88#define WM8940_BCLKDIV_8 3
 89#define WM8940_BCLKDIV_16 4
 90#define WM8940_BCLKDIV_32 5
 91
 92/* PLL Out Dividers */
 93#define WM8940_OPCLKDIV_1 0
 94#define WM8940_OPCLKDIV_2 1
 95#define WM8940_OPCLKDIV_3 2
 96#define WM8940_OPCLKDIV_4 3
 97
 98/* Chip ID */
 99#define WM8940_CHIP_ID 0x8940
100
101#endif /* _WM8940_H */
102
v4.10.11
 
  1/*
  2 * wm8940.h -- WM8940 Soc Audio driver
  3 *
  4 * This program is free software; you can redistribute it and/or modify
  5 * it under the terms of the GNU General Public License version 2 as
  6 * published by the Free Software Foundation.
  7 */
  8
  9#ifndef _WM8940_H
 10#define _WM8940_H
 11
 12struct wm8940_setup_data {
 13	/* Vref to analogue output resistance */
 14#define WM8940_VROI_1K 0
 15#define WM8940_VROI_30K 1
 16	unsigned int vroi:1;
 17};
 18
 19/* WM8940 register space */
 20#define WM8940_SOFTRESET	0x00
 21#define WM8940_POWER1		0x01
 22#define WM8940_POWER2		0x02
 23#define WM8940_POWER3		0x03
 24#define WM8940_IFACE		0x04
 25#define WM8940_COMPANDINGCTL	0x05
 26#define WM8940_CLOCK		0x06
 27#define WM8940_ADDCNTRL		0x07
 28#define WM8940_GPIO		0x08
 29#define WM8940_CTLINT		0x09
 30#define WM8940_DAC		0x0A
 31#define WM8940_DACVOL		0x0B
 32
 33#define WM8940_ADC		0x0E
 34#define WM8940_ADCVOL		0x0F
 35#define WM8940_NOTCH1		0x10
 36#define WM8940_NOTCH2		0x11
 37#define WM8940_NOTCH3		0x12
 38#define WM8940_NOTCH4		0x13
 39#define WM8940_NOTCH5		0x14
 40#define WM8940_NOTCH6		0x15
 41#define WM8940_NOTCH7		0x16
 42#define WM8940_NOTCH8		0x17
 43#define WM8940_DACLIM1		0x18
 44#define WM8940_DACLIM2		0x19
 45
 46#define WM8940_ALC1		0x20
 47#define WM8940_ALC2		0x21
 48#define WM8940_ALC3		0x22
 49#define WM8940_NOISEGATE	0x23
 50#define WM8940_PLLN		0x24
 51#define WM8940_PLLK1		0x25
 52#define WM8940_PLLK2		0x26
 53#define WM8940_PLLK3		0x27
 54
 55#define WM8940_ALC4		0x2A
 56
 57#define WM8940_INPUTCTL		0x2C
 58#define WM8940_PGAGAIN		0x2D
 59
 60#define WM8940_ADCBOOST		0x2F
 61
 62#define WM8940_OUTPUTCTL	0x31
 63#define WM8940_SPKMIX		0x32
 64
 65#define WM8940_SPKVOL		0x36
 66
 67#define WM8940_MONOMIX		0x38
 68
 69#define WM8940_CACHEREGNUM  0x57
 70
 71
 72/* Clock divider Id's */
 73#define WM8940_BCLKDIV 0
 74#define WM8940_MCLKDIV 1
 75#define WM8940_OPCLKDIV 2
 76
 77/* MCLK clock dividers */
 78#define WM8940_MCLKDIV_1	0
 79#define WM8940_MCLKDIV_1_5	1
 80#define WM8940_MCLKDIV_2	2
 81#define WM8940_MCLKDIV_3	3
 82#define WM8940_MCLKDIV_4	4
 83#define WM8940_MCLKDIV_6	5
 84#define WM8940_MCLKDIV_8	6
 85#define WM8940_MCLKDIV_12	7
 86
 87/* BCLK clock dividers */
 88#define WM8940_BCLKDIV_1 0
 89#define WM8940_BCLKDIV_2 1
 90#define WM8940_BCLKDIV_4 2
 91#define WM8940_BCLKDIV_8 3
 92#define WM8940_BCLKDIV_16 4
 93#define WM8940_BCLKDIV_32 5
 94
 95/* PLL Out Dividers */
 96#define WM8940_OPCLKDIV_1 0
 97#define WM8940_OPCLKDIV_2 1
 98#define WM8940_OPCLKDIV_3 2
 99#define WM8940_OPCLKDIV_4 3
 
 
 
100
101#endif /* _WM8940_H */
102