Skip to content

Commit bafcbfe

Browse files
Peter Ujfalusibroonie
authored andcommitted
ASoC: tlv320aic31xx: Make the register values human readable
The datasheet uses decimal numbers for the register addresses, convert the register values from hexadecimal to decimal and introduce macro for the register definitions. This way it is easier to look up registers in the documentation. Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Jyri Sarha <[email protected]> Signed-off-by: Mark Brown <[email protected]>
1 parent 515511a commit bafcbfe

File tree

1 file changed

+68
-66
lines changed

1 file changed

+68
-66
lines changed

sound/soc/codecs/tlv320aic31xx.h

Lines changed: 68 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -38,141 +38,143 @@ struct aic31xx_pdata {
3838
int micbias_vg;
3939
};
4040

41+
#define AIC31XX_REG(page, reg) ((page * 128) + reg)
42+
4143
/* Page Control Register */
42-
#define AIC31XX_PAGECTL 0x00
44+
#define AIC31XX_PAGECTL AIC31XX_REG(0, 0)
4345

4446
/* Page 0 Registers */
4547
/* Software reset register */
46-
#define AIC31XX_RESET 0x01
48+
#define AIC31XX_RESET AIC31XX_REG(0, 1)
4749
/* OT FLAG register */
48-
#define AIC31XX_OT_FLAG 0x03
50+
#define AIC31XX_OT_FLAG AIC31XX_REG(0, 3)
4951
/* Clock clock Gen muxing, Multiplexers*/
50-
#define AIC31XX_CLKMUX 0x04
52+
#define AIC31XX_CLKMUX AIC31XX_REG(0, 4)
5153
/* PLL P and R-VAL register */
52-
#define AIC31XX_PLLPR 0x05
54+
#define AIC31XX_PLLPR AIC31XX_REG(0, 5)
5355
/* PLL J-VAL register */
54-
#define AIC31XX_PLLJ 0x06
56+
#define AIC31XX_PLLJ AIC31XX_REG(0, 6)
5557
/* PLL D-VAL MSB register */
56-
#define AIC31XX_PLLDMSB 0x07
58+
#define AIC31XX_PLLDMSB AIC31XX_REG(0, 7)
5759
/* PLL D-VAL LSB register */
58-
#define AIC31XX_PLLDLSB 0x08
60+
#define AIC31XX_PLLDLSB AIC31XX_REG(0, 8)
5961
/* DAC NDAC_VAL register*/
60-
#define AIC31XX_NDAC 0x0B
62+
#define AIC31XX_NDAC AIC31XX_REG(0, 11)
6163
/* DAC MDAC_VAL register */
62-
#define AIC31XX_MDAC 0x0C
64+
#define AIC31XX_MDAC AIC31XX_REG(0, 12)
6365
/* DAC OSR setting register 1, MSB value */
64-
#define AIC31XX_DOSRMSB 0x0D
66+
#define AIC31XX_DOSRMSB AIC31XX_REG(0, 13)
6567
/* DAC OSR setting register 2, LSB value */
66-
#define AIC31XX_DOSRLSB 0x0E
67-
#define AIC31XX_MINI_DSP_INPOL 0x10
68+
#define AIC31XX_DOSRLSB AIC31XX_REG(0, 14)
69+
#define AIC31XX_MINI_DSP_INPOL AIC31XX_REG(0, 16)
6870
/* Clock setting register 8, PLL */
69-
#define AIC31XX_NADC 0x12
71+
#define AIC31XX_NADC AIC31XX_REG(0, 18)
7072
/* Clock setting register 9, PLL */
71-
#define AIC31XX_MADC 0x13
73+
#define AIC31XX_MADC AIC31XX_REG(0, 19)
7274
/* ADC Oversampling (AOSR) Register */
73-
#define AIC31XX_AOSR 0x14
75+
#define AIC31XX_AOSR AIC31XX_REG(0, 20)
7476
/* Clock setting register 9, Multiplexers */
75-
#define AIC31XX_CLKOUTMUX 0x19
77+
#define AIC31XX_CLKOUTMUX AIC31XX_REG(0, 25)
7678
/* Clock setting register 10, CLOCKOUT M divider value */
77-
#define AIC31XX_CLKOUTMVAL 0x1A
79+
#define AIC31XX_CLKOUTMVAL AIC31XX_REG(0, 26)
7880
/* Audio Interface Setting Register 1 */
79-
#define AIC31XX_IFACE1 0x1B
81+
#define AIC31XX_IFACE1 AIC31XX_REG(0, 27)
8082
/* Audio Data Slot Offset Programming */
81-
#define AIC31XX_DATA_OFFSET 0x1C
83+
#define AIC31XX_DATA_OFFSET AIC31XX_REG(0, 28)
8284
/* Audio Interface Setting Register 2 */
83-
#define AIC31XX_IFACE2 0x1D
85+
#define AIC31XX_IFACE2 AIC31XX_REG(0, 29)
8486
/* Clock setting register 11, BCLK N Divider */
85-
#define AIC31XX_BCLKN 0x1E
87+
#define AIC31XX_BCLKN AIC31XX_REG(0, 30)
8688
/* Audio Interface Setting Register 3, Secondary Audio Interface */
87-
#define AIC31XX_IFACESEC1 0x1F
89+
#define AIC31XX_IFACESEC1 AIC31XX_REG(0, 31)
8890
/* Audio Interface Setting Register 4 */
89-
#define AIC31XX_IFACESEC2 0x20
91+
#define AIC31XX_IFACESEC2 AIC31XX_REG(0, 32)
9092
/* Audio Interface Setting Register 5 */
91-
#define AIC31XX_IFACESEC3 0x21
93+
#define AIC31XX_IFACESEC3 AIC31XX_REG(0, 33)
9294
/* I2C Bus Condition */
93-
#define AIC31XX_I2C 0x22
95+
#define AIC31XX_I2C AIC31XX_REG(0, 34)
9496
/* ADC FLAG */
95-
#define AIC31XX_ADCFLAG 0x24
97+
#define AIC31XX_ADCFLAG AIC31XX_REG(0, 36)
9698
/* DAC Flag Registers */
97-
#define AIC31XX_DACFLAG1 0x25
98-
#define AIC31XX_DACFLAG2 0x26
99+
#define AIC31XX_DACFLAG1 AIC31XX_REG(0, 37)
100+
#define AIC31XX_DACFLAG2 AIC31XX_REG(0, 38)
99101
/* Sticky Interrupt flag (overflow) */
100-
#define AIC31XX_OFFLAG 0x27
102+
#define AIC31XX_OFFLAG AIC31XX_REG(0, 39)
101103
/* Sticy DAC Interrupt flags */
102-
#define AIC31XX_INTRDACFLAG 0x2C
104+
#define AIC31XX_INTRDACFLAG AIC31XX_REG(0, 44)
103105
/* Sticy ADC Interrupt flags */
104-
#define AIC31XX_INTRADCFLAG 0x2D
106+
#define AIC31XX_INTRADCFLAG AIC31XX_REG(0, 45)
105107
/* DAC Interrupt flags 2 */
106-
#define AIC31XX_INTRDACFLAG2 0x2E
108+
#define AIC31XX_INTRDACFLAG2 AIC31XX_REG(0, 46)
107109
/* ADC Interrupt flags 2 */
108-
#define AIC31XX_INTRADCFLAG2 0x2F
110+
#define AIC31XX_INTRADCFLAG2 AIC31XX_REG(0, 47)
109111
/* INT1 interrupt control */
110-
#define AIC31XX_INT1CTRL 0x30
112+
#define AIC31XX_INT1CTRL AIC31XX_REG(0, 48)
111113
/* INT2 interrupt control */
112-
#define AIC31XX_INT2CTRL 0x31
114+
#define AIC31XX_INT2CTRL AIC31XX_REG(0, 49)
113115
/* GPIO1 control */
114-
#define AIC31XX_GPIO1 0x33
116+
#define AIC31XX_GPIO1 AIC31XX_REG(0, 50)
115117

116-
#define AIC31XX_DACPRB 0x3C
118+
#define AIC31XX_DACPRB AIC31XX_REG(0, 60)
117119
/* ADC Instruction Set Register */
118-
#define AIC31XX_ADCPRB 0x3D
120+
#define AIC31XX_ADCPRB AIC31XX_REG(0, 61)
119121
/* DAC channel setup register */
120-
#define AIC31XX_DACSETUP 0x3F
122+
#define AIC31XX_DACSETUP AIC31XX_REG(0, 63)
121123
/* DAC Mute and volume control register */
122-
#define AIC31XX_DACMUTE 0x40
124+
#define AIC31XX_DACMUTE AIC31XX_REG(0, 64)
123125
/* Left DAC channel digital volume control */
124-
#define AIC31XX_LDACVOL 0x41
126+
#define AIC31XX_LDACVOL AIC31XX_REG(0, 65)
125127
/* Right DAC channel digital volume control */
126-
#define AIC31XX_RDACVOL 0x42
128+
#define AIC31XX_RDACVOL AIC31XX_REG(0, 66)
127129
/* Headset detection */
128-
#define AIC31XX_HSDETECT 0x43
130+
#define AIC31XX_HSDETECT AIC31XX_REG(0, 67)
129131
/* ADC Digital Mic */
130-
#define AIC31XX_ADCSETUP 0x51
132+
#define AIC31XX_ADCSETUP AIC31XX_REG(0, 81)
131133
/* ADC Digital Volume Control Fine Adjust */
132-
#define AIC31XX_ADCFGA 0x52
134+
#define AIC31XX_ADCFGA AIC31XX_REG(0, 82)
133135
/* ADC Digital Volume Control Coarse Adjust */
134-
#define AIC31XX_ADCVOL 0x53
136+
#define AIC31XX_ADCVOL AIC31XX_REG(0, 83)
135137

136138

137139
/* Page 1 Registers */
138140
/* Headphone drivers */
139-
#define AIC31XX_HPDRIVER 0x9F
141+
#define AIC31XX_HPDRIVER AIC31XX_REG(1, 31)
140142
/* Class-D Speakear Amplifier */
141-
#define AIC31XX_SPKAMP 0xA0
143+
#define AIC31XX_SPKAMP AIC31XX_REG(1, 32)
142144
/* HP Output Drivers POP Removal Settings */
143-
#define AIC31XX_HPPOP 0xA1
145+
#define AIC31XX_HPPOP AIC31XX_REG(1, 33)
144146
/* Output Driver PGA Ramp-Down Period Control */
145-
#define AIC31XX_SPPGARAMP 0xA2
147+
#define AIC31XX_SPPGARAMP AIC31XX_REG(1, 34)
146148
/* DAC_L and DAC_R Output Mixer Routing */
147-
#define AIC31XX_DACMIXERROUTE 0xA3
149+
#define AIC31XX_DACMIXERROUTE AIC31XX_REG(1, 35)
148150
/* Left Analog Vol to HPL */
149-
#define AIC31XX_LANALOGHPL 0xA4
151+
#define AIC31XX_LANALOGHPL AIC31XX_REG(1, 36)
150152
/* Right Analog Vol to HPR */
151-
#define AIC31XX_RANALOGHPR 0xA5
153+
#define AIC31XX_RANALOGHPR AIC31XX_REG(1, 37)
152154
/* Left Analog Vol to SPL */
153-
#define AIC31XX_LANALOGSPL 0xA6
155+
#define AIC31XX_LANALOGSPL AIC31XX_REG(1, 38)
154156
/* Right Analog Vol to SPR */
155-
#define AIC31XX_RANALOGSPR 0xA7
157+
#define AIC31XX_RANALOGSPR AIC31XX_REG(1, 39)
156158
/* HPL Driver */
157-
#define AIC31XX_HPLGAIN 0xA8
159+
#define AIC31XX_HPLGAIN AIC31XX_REG(1, 40)
158160
/* HPR Driver */
159-
#define AIC31XX_HPRGAIN 0xA9
161+
#define AIC31XX_HPRGAIN AIC31XX_REG(1, 41)
160162
/* SPL Driver */
161-
#define AIC31XX_SPLGAIN 0xAA
163+
#define AIC31XX_SPLGAIN AIC31XX_REG(1, 42)
162164
/* SPR Driver */
163-
#define AIC31XX_SPRGAIN 0xAB
165+
#define AIC31XX_SPRGAIN AIC31XX_REG(1, 43)
164166
/* HP Driver Control */
165-
#define AIC31XX_HPCONTROL 0xAC
167+
#define AIC31XX_HPCONTROL AIC31XX_REG(1, 44)
166168
/* MIC Bias Control */
167-
#define AIC31XX_MICBIAS 0xAE
169+
#define AIC31XX_MICBIAS AIC31XX_REG(1, 46)
168170
/* MIC PGA*/
169-
#define AIC31XX_MICPGA 0xAF
171+
#define AIC31XX_MICPGA AIC31XX_REG(1, 47)
170172
/* Delta-Sigma Mono ADC Channel Fine-Gain Input Selection for P-Terminal */
171-
#define AIC31XX_MICPGAPI 0xB0
173+
#define AIC31XX_MICPGAPI AIC31XX_REG(1, 48)
172174
/* ADC Input Selection for M-Terminal */
173-
#define AIC31XX_MICPGAMI 0xB1
175+
#define AIC31XX_MICPGAMI AIC31XX_REG(1, 49)
174176
/* Input CM Settings */
175-
#define AIC31XX_MICPGACM 0xB2
177+
#define AIC31XX_MICPGACM AIC31XX_REG(1, 50)
176178

177179
/* Bits, masks and shifts */
178180

0 commit comments

Comments
 (0)