1// Copyright 2017 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#pragma once
6
7// Register offsets for the A113G chip. Taken from the A113G datasheet.
8
9#define A113_PDM_PHYS_BASE 0xff632000
10
11#define PDM_CTRL 0x00
12#define PDM_HCIC_CTRL1 0x01
13#define PDM_HCIC_CTRL2 0x02
14#define PDM_F1_CTRL 0x03
15#define PDM_F2_CTRL 0x04
16#define PDM_F3_CTRL 0x05
17#define PDM_HPF_CTRL 0x06
18#define PDM_CHAN_CTRL 0x07
19#define PDM_CHAN_CTRL1 0x08
20#define PDM_COEFF_ADDR 0x09
21#define PDM_COEFF_DATA 0x0A
22#define PDM_CLKG_CTRL 0x0B
23#define PDM_STS 0x0C
24
25#define A113_EE_AUDIO_PHYS_BASE 0xff642000
26
27#define EE_AUDIO_CLK_GATE_EN 0x000
28#define EE_AUDIO_MCLK_A_CTRL 0x001
29#define EE_AUDIO_MCLK_B_CTRL 0x002
30#define EE_AUDIO_MCLK_C_CTRL 0x003
31#define EE_AUDIO_MCLK_D_CTRL 0x004
32#define EE_AUDIO_MCLK_E_CTRL 0x005
33#define EE_AUDIO_MCLK_F_CTRL 0x006
34#define EE_AUDIO_MST_A_SCLK_CTRL0 0x010
35#define EE_AUDIO_MST_A_SCLK_CTRL1 0x011
36#define EE_AUDIO_MST_B_SCLK_CTRL0 0x012
37#define EE_AUDIO_MST_B_SCLK_CTRL1 0x013
38#define EE_AUDIO_MST_C_SCLK_CTRL0 0x014
39#define EE_AUDIO_MST_C_SCLK_CTRL1 0x015
40#define EE_AUDIO_MST_D_SCLK_CTRL0 0x016
41#define EE_AUDIO_MST_D_SCLK_CTRL1 0x017
42#define EE_AUDIO_MST_E_SCLK_CTRL0 0x018
43#define EE_AUDIO_MST_E_SCLK_CTRL1 0x019
44#define EE_AUDIO_MST_F_SCLK_CTRL0 0x01a
45#define EE_AUDIO_MST_F_SCLK_CTRL1 0x01b
46#define EE_AUDIO_CLK_TDMIN_A_CTRL 0x020
47#define EE_AUDIO_CLK_TDMIN_B_CTRL 0x021
48#define EE_AUDIO_CLK_TDMIN_C_CTRL 0x022
49#define EE_AUDIO_CLK_TDMIN_LB_CTRL 0x023
50#define EE_AUDIO_CLK_TDMOUT_A_CTRL 0x024
51#define EE_AUDIO_CLK_TDMOUT_B_CTRL 0x025
52#define EE_AUDIO_CLK_TDMOUT_C_CTRL 0x026
53#define EE_AUDIO_CLK_SPDIFIN_CTRL 0x027
54#define EE_AUDIO_CLK_SPDIFOUT_CTRL 0x028
55#define EE_AUDIO_CLK_RESAMPLE_CTRL 0x029
56#define EE_AUDIO_CLK_LOCKER_CTRL 0x02a
57#define EE_AUDIO_CLK_PDMIN_CTRL0 0x02b
58#define EE_AUDIO_CLK_PDMIN_CTRL1 0x02c
59#define EE_AUDIO_TODDR_A_CTRL0 0x040
60#define EE_AUDIO_TODDR_A_CTRL1 0x041
61#define EE_AUDIO_TODDR_A_START_ADDR 0x042
62#define EE_AUDIO_TODDR_A_FINISH_ADDR 0x043
63#define EE_AUDIO_TODDR_A_INT_ADDR 0x044
64#define EE_AUDIO_TODDR_A_STATUS1 0x045
65#define EE_AUDIO_TODDR_A_STATUS2 0x046
66#define EE_AUDIO_TODDR_A_START_ADDRB 0x047
67#define EE_AUDIO_TODDR_A_FINISH_ADDRB 0x048
68#define EE_AUDIO_TODDR_B_CTRL0 0x050
69#define EE_AUDIO_TODDR_B_CTRL1 0x051
70#define EE_AUDIO_TODDR_B_START_ADDR 0x052
71#define EE_AUDIO_TODDR_B_FINISH_ADDR 0x053
72#define EE_AUDIO_TODDR_B_INT_ADDR 0x054
73#define EE_AUDIO_TODDR_B_STATUS1 0x055
74#define EE_AUDIO_TODDR_B_STATUS2 0x056
75#define EE_AUDIO_TODDR_B_START_ADDRB 0x057
76#define EE_AUDIO_TODDR_B_FINISH_ADDRB 0x058
77#define EE_AUDIO_TODDR_C_CTRL0 0x060
78#define EE_AUDIO_TODDR_C_CTRL1 0x061
79#define EE_AUDIO_TODDR_C_START_ADDR 0x062
80#define EE_AUDIO_TODDR_C_FINISH_ADDR 0x063
81#define EE_AUDIO_TODDR_C_INT_ADDR 0x064
82#define EE_AUDIO_TODDR_C_STATUS1 0x065
83#define EE_AUDIO_TODDR_C_STATUS2 0x066
84#define EE_AUDIO_TODDR_C_START_ADDRB 0x067
85#define EE_AUDIO_TODDR_C_FINISH_ADDRB 0x068
86#define EE_AUDIO_FRDDR_A_CTRL0 0x070
87#define EE_AUDIO_FRDDR_A_CTRL1 0x071
88#define EE_AUDIO_FRDDR_A_START_ADDR 0x072
89#define EE_AUDIO_FRDDR_A_FINISH_ADDR 0x073
90#define EE_AUDIO_FRDDR_A_INT_ADDR 0x074
91#define EE_AUDIO_FRDDR_A_STATUS1 0x075
92#define EE_AUDIO_FRDDR_A_STATUS2 0x076
93#define EE_AUDIO_FRDDR_A_START_ADDRB 0x077
94#define EE_AUDIO_FRDDR_A_FINISH_ADDRB 0x078
95#define EE_AUDIO_FRDDR_B_CTRL0 0x080
96#define EE_AUDIO_FRDDR_B_CTRL1 0x081
97#define EE_AUDIO_FRDDR_B_START_ADDR 0x082
98#define EE_AUDIO_FRDDR_B_FINISH_ADDR 0x083
99#define EE_AUDIO_FRDDR_B_INT_ADDR 0x084
100#define EE_AUDIO_FRDDR_B_STATUS1 0x085
101#define EE_AUDIO_FRDDR_B_STATUS2 0x086
102#define EE_AUDIO_FRDDR_B_START_ADDRB 0x087
103#define EE_AUDIO_FRDDR_B_FINISH_ADDRB 0x088
104#define EE_AUDIO_FRDDR_C_CTRL0 0x090
105#define EE_AUDIO_FRDDR_C_CTRL1 0x091
106#define EE_AUDIO_FRDDR_C_START_ADDR 0x092
107#define EE_AUDIO_FRDDR_C_FINISH_ADDR 0x093
108#define EE_AUDIO_FRDDR_C_INT_ADDR 0x094
109#define EE_AUDIO_FRDDR_C_STATUS1 0x095
110#define EE_AUDIO_FRDDR_C_STATUS2 0x096
111#define EE_AUDIO_FRDDR_C_START_ADDRB 0x097
112#define EE_AUDIO_FRDDR_C_FINISH_ADDRB 0x098
113#define EE_AUDIO_ARB_CTRL 0x0a0
114#define EE_AUDIO_LB_CTRL0 0x0b0
115#define EE_AUDIO_LB_CTRL1 0x0b1
116#define EE_AUDIO_TDMIN_A_CTRL 0x0c0
117#define EE_AUDIO_TDMIN_A_SWAP 0x0c1
118#define EE_AUDIO_TDMIN_A_MASK0 0x0c2
119#define EE_AUDIO_TDMIN_A_MASK1 0x0c3
120#define EE_AUDIO_TDMIN_A_MASK2 0x0c4
121#define EE_AUDIO_TDMIN_A_MASK3 0x0c5
122#define EE_AUDIO_TDMIN_A_STAT 0x0c6
123#define EE_AUDIO_TDMIN_A_MUTE_VAL 0x0c7
124#define EE_AUDIO_TDMIN_A_MUTE0 0x0c8
125#define EE_AUDIO_TDMIN_A_MUTE1 0x0c9
126#define EE_AUDIO_TDMIN_A_MUTE2 0x0ca
127#define EE_AUDIO_TDMIN_A_MUTE3 0x0cb
128#define EE_AUDIO_TDMIN_B_CTRL 0x0d0
129#define EE_AUDIO_TDMIN_B_SWAP 0x0d1
130#define EE_AUDIO_TDMIN_B_MASK0 0x0d2
131#define EE_AUDIO_TDMIN_B_MASK1 0x0d3
132#define EE_AUDIO_TDMIN_B_MASK2 0x0d4
133#define EE_AUDIO_TDMIN_B_MASK3 0x0d5
134#define EE_AUDIO_TDMIN_B_STAT 0x0d6
135#define EE_AUDIO_TDMIN_B_MUTE_VAL 0x0d7
136#define EE_AUDIO_TDMIN_B_MUTE0 0x0d8
137#define EE_AUDIO_TDMIN_B_MUTE1 0x0d9
138#define EE_AUDIO_TDMIN_B_MUTE2 0x0da
139#define EE_AUDIO_TDMIN_B_MUTE3 0x0db
140#define EE_AUDIO_TDMIN_C_CTRL 0x0e0
141#define EE_AUDIO_TDMIN_C_SWAP 0x0e1
142#define EE_AUDIO_TDMIN_C_MASK0 0x0e2
143#define EE_AUDIO_TDMIN_C_MASK1 0x0e3
144#define EE_AUDIO_TDMIN_C_MASK2 0x0e4
145#define EE_AUDIO_TDMIN_C_MASK3 0x0e5
146#define EE_AUDIO_TDMIN_C_STAT 0x0e6
147#define EE_AUDIO_TDMIN_C_MUTE_VAL 0x0e7
148#define EE_AUDIO_TDMIN_C_MUTE0 0x0e8
149#define EE_AUDIO_TDMIN_C_MUTE1 0x0e9
150#define EE_AUDIO_TDMIN_C_MUTE2 0x0ea
151#define EE_AUDIO_TDMIN_C_MUTE3 0x0eb
152#define EE_AUDIO_TDMIN_LB_CTRL 0x0f0
153#define EE_AUDIO_TDMIN_LB_SWAP 0x0f1
154#define EE_AUDIO_TDMIN_LB_MASK0 0x0f2
155#define EE_AUDIO_TDMIN_LB_MASK1 0x0f3
156#define EE_AUDIO_TDMIN_LB_MASK2 0x0f4
157#define EE_AUDIO_TDMIN_LB_MASK3 0x0f5
158#define EE_AUDIO_TDMIN_LB_STAT 0x0f6
159#define EE_AUDIO_TDMIN_LB_MUTE_VAL 0x0f7
160#define EE_AUDIO_TDMIN_LB_MUTE0 0x0f8
161#define EE_AUDIO_TDMIN_LB_MUTE1 0x0f9
162#define EE_AUDIO_TDMIN_LB_MUTE2 0x0fa
163#define EE_AUDIO_TDMIN_LB_MUTE3 0x0fb
164#define EE_AUDIO_SPDIFIN_CTRL0 0x100
165#define EE_AUDIO_SPDIFIN_CTRL1 0x101
166#define EE_AUDIO_SPDIFIN_CTRL2 0x102
167#define EE_AUDIO_SPDIFIN_CTRL3 0x103
168#define EE_AUDIO_SPDIFIN_CTRL4 0x104
169#define EE_AUDIO_SPDIFIN_CTRL5 0x105
170#define EE_AUDIO_SPDIFIN_CTRL6 0x106
171#define EE_AUDIO_SPDIFIN_STAT0 0x107
172#define EE_AUDIO_SPDIFIN_STAT1 0x108
173#define EE_AUDIO_SPDIFIN_STAT2 0x109
174#define EE_AUDIO_SPDIFIN_MUTE_VAL 0x10a
175#define EE_AUDIO_RESAMPLE_CTRL0 0x110
176#define EE_AUDIO_RESAMPLE_CTRL1 0x111
177#define EE_AUDIO_RESAMPLE_CTRL2 0x112
178#define EE_AUDIO_RESAMPLE_CTRL3 0x113
179#define EE_AUDIO_RESAMPLE_COEF0 0x114
180#define EE_AUDIO_RESAMPLE_COEF1 0x115
181#define EE_AUDIO_RESAMPLE_COEF2 0x116
182#define EE_AUDIO_RESAMPLE_COEF3 0x117
183#define EE_AUDIO_RESAMPLE_COEF4 0x118
184#define EE_AUDIO_RESAMPLE_STATUS1 0x119
185#define EE_AUDIO_SPDIFOUT_STAT 0x120
186#define EE_AUDIO_SPDIFOUT_GAIN0 0x121
187#define EE_AUDIO_SPDIFOUT_GAIN1 0x122
188#define EE_AUDIO_SPDIFOUT_CTRL0 0x123
189#define EE_AUDIO_SPDIFOUT_CTRL1 0x124
190#define EE_AUDIO_SPDIFOUT_PREAMB 0x125
191#define EE_AUDIO_SPDIFOUT_SWAP 0x126
192#define EE_AUDIO_SPDIFOUT_CHSTS0 0x127
193#define EE_AUDIO_SPDIFOUT_CHSTS1 0x128
194#define EE_AUDIO_SPDIFOUT_CHSTS2 0x129
195#define EE_AUDIO_SPDIFOUT_CHSTS3 0x12a
196#define EE_AUDIO_SPDIFOUT_CHSTS4 0x12b
197#define EE_AUDIO_SPDIFOUT_CHSTS5 0x12c
198#define EE_AUDIO_SPDIFOUT_CHSTS6 0x12d
199#define EE_AUDIO_SPDIFOUT_CHSTS7 0x12e
200#define EE_AUDIO_SPDIFOUT_CHSTS8 0x12f
201#define EE_AUDIO_SPDIFOUT_CHSTS9 0x130
202#define EE_AUDIO_SPDIFOUT_CHSTSA 0x131
203#define EE_AUDIO_SPDIFOUT_CHSTSB 0x132
204#define EE_AUDIO_SPDIFOUT_MUTE_VAL 0x133
205#define EE_AUDIO_TDMOUT_A_CTRL0 0x140
206#define EE_AUDIO_TDMOUT_A_CTRL1 0x141
207#define EE_AUDIO_TDMOUT_A_SWAP 0x142
208#define EE_AUDIO_TDMOUT_A_MASK0 0x143
209#define EE_AUDIO_TDMOUT_A_MASK1 0x144
210#define EE_AUDIO_TDMOUT_A_MASK2 0x145
211#define EE_AUDIO_TDMOUT_A_MASK3 0x146
212#define EE_AUDIO_TDMOUT_A_STAT 0x147
213#define EE_AUDIO_TDMOUT_A_GAIN0 0x148
214#define EE_AUDIO_TDMOUT_A_GAIN1 0x149
215#define EE_AUDIO_TDMOUT_A_MUTE_VAL 0x14a
216#define EE_AUDIO_TDMOUT_A_MUTE0 0x14b
217#define EE_AUDIO_TDMOUT_A_MUTE1 0x14c
218#define EE_AUDIO_TDMOUT_A_MUTE2 0x14d
219#define EE_AUDIO_TDMOUT_A_MUTE3 0x14e
220#define EE_AUDIO_TDMOUT_A_MASK_VAL 0x14f
221#define EE_AUDIO_TDMOUT_B_CTRL0 0x150
222#define EE_AUDIO_TDMOUT_B_CTRL1 0x151
223#define EE_AUDIO_TDMOUT_B_SWAP 0x152
224#define EE_AUDIO_TDMOUT_B_MASK0 0x153
225#define EE_AUDIO_TDMOUT_B_MASK1 0x154
226#define EE_AUDIO_TDMOUT_B_MASK2 0x155
227#define EE_AUDIO_TDMOUT_B_MASK3 0x156
228#define EE_AUDIO_TDMOUT_B_STAT 0x157
229#define EE_AUDIO_TDMOUT_B_GAIN0 0x158
230#define EE_AUDIO_TDMOUT_B_GAIN1 0x159
231#define EE_AUDIO_TDMOUT_B_MUTE_VAL 0x15a
232#define EE_AUDIO_TDMOUT_B_MUTE0 0x15b
233#define EE_AUDIO_TDMOUT_B_MUTE1 0x15c
234#define EE_AUDIO_TDMOUT_B_MUTE2 0x15d
235#define EE_AUDIO_TDMOUT_B_MUTE3 0x15e
236#define EE_AUDIO_TDMOUT_B_MASK_VAL 0x15f
237#define EE_AUDIO_TDMOUT_C_CTRL0 0x160
238#define EE_AUDIO_TDMOUT_C_CTRL1 0x161
239#define EE_AUDIO_TDMOUT_C_SWAP 0x162
240#define EE_AUDIO_TDMOUT_C_MASK0 0x163
241#define EE_AUDIO_TDMOUT_C_MASK1 0x164
242#define EE_AUDIO_TDMOUT_C_MASK2 0x165
243#define EE_AUDIO_TDMOUT_C_MASK3 0x166
244#define EE_AUDIO_TDMOUT_C_STAT 0x167
245#define EE_AUDIO_TDMOUT_C_GAIN0 0x168
246#define EE_AUDIO_TDMOUT_C_GAIN1 0x169
247#define EE_AUDIO_TDMOUT_C_MUTE_VAL 0x16a
248#define EE_AUDIO_TDMOUT_C_MUTE0 0x16b
249#define EE_AUDIO_TDMOUT_C_MUTE1 0x16c
250#define EE_AUDIO_TDMOUT_C_MUTE2 0x16d
251#define EE_AUDIO_TDMOUT_C_MUTE3 0x16e
252#define EE_AUDIO_TDMOUT_C_MASK_VAL 0x16f
253#define EE_AUDIO_POW_DET_CTRL0 0x180
254#define EE_AUDIO_POW_DET_TH_HI 0x181
255#define EE_AUDIO_POW_DET_TH_LO 0x182
256#define EE_AUDIO_POW_DET_VALUE 0x183
257#define EE_AUDIO_SECURITY_CTRL 0x193
258