blob: b20c65111a5b0e63bd00a5b7119777576ade12df [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001/*
2 * ASR Audio path definition of PM812
3 *
4 * Copyright (C) 2018 ASR Microelectronic Ltd.
5 *
6 * Author: Jackie Fan <yuanchunfan@asrmicro.com>
7 *
8 * This file contains proprietary information.
9 * No dissemination allowed without prior written permission from
10 * ASR Microelectronic Ltd.
11 *
12 * File Description:
13 *
14 * This file contains header for audio path definition of PM812
15 */
16
17#ifndef ACM_PM812_H
18#define ACM_PM812_H
19/*
20 * CODEC_PM812: Audio use SAI1
21 */
22#define SAI1_REG31_VALUE 0x49 //HiFi use SAI1: 44.1KHz,32fs
23
24/*
25 * CODEC_PM812: Voice use SAI2
26 */
27#define CODEC_PM812_VOICE_REG35 0x35
28#define CODEC_PM812_VOICE_MASTER 0x0d //16bits, one bit shift, master
29#define CODEC_PM812_VOICE_SLAVE 0x0c //16bits, one bit shift, slave
30
31
32#define CODEC_PM812_VOICE_REG36 0x36
33#define CODEC_PM812_VOICE_WB 0xa1 //16KHz,32fs
34#define CODEC_PM812_VOICE_NB 0x81 //8KHz,32fs
35
36//////////////////////////////////////////////////////////////////////////////////
37//////////////////////////////////////////////////////////////////////////////////
38/////////////////////////APH_PATH_ID_HIFIPLAYTOEARPHONE//////////////////////////
39ACMAPH_Register ACM_HiFiPlayToEarphone_Disable[]={
40 {ELBA, 0x29, 0x00},{ELBA, 0x90, 0x00},{ELBA, 0x30, 0x0},{ELBA, 0x31, SAI1_REG31_VALUE},{ELBA, 0x32, 0x0},{ELBA, 0x52, 0x00},{ELBA, 0x51, 0x15},
41 {ELBA, 0x50, 0},{ELBA, 0x55, 0x0}
42};
43ACMAPH_Register ACM_HiFiPlayToEarphone_Enable[]={
44 {ELBA, 0x90, 0x7e},{ELBA, 0x30, 0xf},{ELBA, 0x31, SAI1_REG31_VALUE},{ELBA, 0x32, 0x4},{ELBA, 0x52, 0x00},{ELBA, 0x51, 0x15},
45 {ELBA, 0x50, 0xf},{ELBA, 0x55, 0x20},{ELBA, 0x29, 0xb},{ELBA, 0x56, 0xb4}
46};
47
48/////////////////////////APH_PATH_ID_HIFIPLAYTOSPKR//////////////////////////
49ACMAPH_Register ACM_HiFiPlayToSPKR_Disable[]={
50 {ELBA, 0x20, 0},{ELBA, 0x21, 0},{ELBA, 0x53, 0x0},{ELBA, 0x30, 0},{ELBA, 0x31, 0},{ELBA, 0x32, 0},
51 {ELBA, 0x51, 0},{ELBA, 0x50, 0},{ELBA, 0x55, 0x0},{USTICA, 0x48, 0x0},{USTICA, 0x4a, 0x70},{USTICA, 0x4b, 0x0}
52};
53ACMAPH_Register ACM_HiFiPlayToSPKR_Enable[]={
54 {ELBA, 0x31, SAI1_REG31_VALUE},{ELBA, 0x30, 0xf},{ELBA, 0x32, 0x4},{ELBA, 0x51, 0x15},{ELBA, 0x55, 0x20},{ELBA, 0x58, 0xb7},
55 {ELBA, 0x50, 0xf},{ELBA, 0x53, 0x00},{ELBA, 0x21, 0x40},{ELBA, 0x20, 0xc1},{USTICA, 0x48, 0xe0},{USTICA, 0x4a, 0x70},{USTICA, 0x4b, 0x7}
56};
57
58/////////////////////////APH_PATH_ID_HIFIPLAYTOHP//////////////////////////
59ACMAPH_Register ACM_HiFiPlayToHP_Disable[]={
60 {ELBA, 0x90, 0},{ELBA, 0x26, 0},{ELBA, 0x30, 0},{ELBA, 0x31, 0},{ELBA, 0x32, 0},
61 {ELBA, 0x52, 0x00},{ELBA, 0x51, 0},{ELBA, 0x50, 0},{ELBA, 0x55, 0}
62};
63ACMAPH_Register ACM_HiFiPlayToHP_Enable[]={
64 {ELBA, 0x28, 0x0},{ELBA, 0x90, 0x7e},{ELBA, 0x30, 0xf},{ELBA, 0x31, SAI1_REG31_VALUE},{ELBA, 0x32, 0x4},{ELBA, 0x52, 0x00},{ELBA, 0x51, 0x15},
65 {ELBA, 0x50, 0xf},{ELBA, 0x55, 0x20},{ELBA, 0x56, 0x9b},{ELBA, 0x57, 0x9b},{ELBA, 0x26, 0x2b}
66};
67
68/////////////////////////APH_PATH_ID_HIFIRECORDFROMMIC1//////////////////////////
69ACMAPH_Register ACM_HiFiRecordFromMic1_Disable[]={
70 {ELBA, 0x51, 0},{ELBA, 0x16, 0},{ELBA, 0x10, 0x14},{ELBA, 0x11, 0},{ELBA, 0x92, 0},{ELBA, 0x94, 0x3},{ELBA, 0x30, 0},
71 {ELBA, 0x31, SAI1_REG31_VALUE},{ELBA, 0x32, 0x0},{ELBA, 0x50, 0},{ELBA, 0x3c, 0}
72};
73ACMAPH_Register ACM_HiFiRecordFromMic1_Enable[]={
74 {ELBA, 0x11, 0x00},{ELBA, 0x12, 0x14},{ELBA, 0x16, 0x1},{ELBA, 0x10, 0x14},{ELBA, 0x92, 0x56},{ELBA, 0x94, 0x3},{ELBA, 0x30, 0xf},{ELBA, 0x31, SAI1_REG31_VALUE},
75 {ELBA, 0x32, 0x04},{ELBA, 0x3c, 0},{ELBA, 0x50, 0xf},{ELBA, 0x51, 0x15},
76};
77ACMAPH_Register ACM_HiFiRecordFromMic1_Mute[]={
78 {ELBA, 0x11, 0x03},
79};
80ACMAPH_Register ACM_HiFiRecordFromMic1_UnMute[]={
81 {ELBA, 0x11, 0x00},
82};
83/////////////////////////APH_PATH_ID_HIFIRECORDFROMHSMIC//////////////////////////
84ACMAPH_Register ACM_HiFiRecordFromHsMic_Disable[]={
85 {ELBA, 0x51, 0},{ELBA, 0x16, 0},{ELBA, 0x10, 0x14},{ELBA, 0x11, 0},{ELBA, 0x92, 0},{ELBA, 0x94, 0x2},{ELBA, 0x30, 0},
86 {ELBA, 0x31, SAI1_REG31_VALUE},{ELBA, 0x32, 0x0},{ELBA, 0x50, 0},{ELBA, 0x3c, 0}
87};
88ACMAPH_Register ACM_HiFiRecordFromHsMic_Enable[]={
89 {ELBA, 0x11, 0x01},{ELBA, 0x12, 0x14},{ELBA, 0x16, 0x9},{ELBA, 0x10, 0x14},{ELBA, 0x92, 0x56},{ELBA, 0x94, 0x1},{ELBA, 0x30, 0xf},{ELBA, 0x31, SAI1_REG31_VALUE},
90 {ELBA, 0x32, 0x04},{ELBA, 0x3c, 0},{ELBA, 0x50, 0xf},{ELBA, 0x51, 0x15},
91};
92ACMAPH_Register ACM_HiFiRecordFromHsMic_Mute[]={
93 {ELBA, 0x11, 0x02},
94};
95ACMAPH_Register ACM_HiFiRecordFromHsMic_UnMute[]={
96 {ELBA, 0x11, 0x01},
97};
98//////////////////////////////////////////////////////////////////////////////////
99//////////////////////////////////////////////////////////////////////////////////
100/////////////////////////APH_PATH_ID_VOICEPLAYTOEARPHONE//////////////////////////
101
102ACMAPH_Register ACM_VoicePlayToEarphone_Disable[]={
103 {ELBA, 0x29, 0},{ELBA, 0x90, 0x7e},{ELBA, 0x35, 0},{ELBA, 0x36, 0},{ELBA, 0x37, 0},{ELBA, 0x38, 0},{ELBA, 0x39, 0},
104 {ELBA, 0x52, 0x22},{ELBA, 0x51, 0},{ELBA, 0x50, 0},{ELBA, 0x55, 0x0}
105};
106ACMAPH_Register ACM_VoicePlayToEarphone_Enable[]={
107 {ELBA, 0x90, 0x7e},{ELBA, 0x35, CODEC_PM812_VOICE_MASTER},{ELBA, 0x36, CODEC_PM812_VOICE_WB},{ELBA, 0x37, 0x2},{ELBA, 0x38, 0x00},{ELBA, 0x39, 0x10},{ELBA, 0x52, 0x22},
108 {ELBA, 0x51, 0x2a},{ELBA, 0x50, 0xf},{ELBA, 0x55, 0x20},{ELBA, 0x29, 0x0b},{ELBA, 0x56, 0xb7}
109};
110
111/////////////////////////APH_PATH_ID_VOICEPLAYTOSPKR//////////////////////////
112ACMAPH_Register ACM_VoicePlayToSPKR_Disable[]={
113 {ELBA, 0x53, 0},{ELBA, 0x20, 0},{ELBA, 0x21, 0},{ELBA, 0x90, 0x7e},{ELBA, 0x35, 0},{ELBA, 0x36, 0},{ELBA, 0x37, 0},
114 {ELBA, 0x51, 0},{ELBA, 0x50, 0},{ELBA, 0x55, 0x0},{USTICA, 0x48, 0},{USTICA, 0x4a, 0x70},{USTICA, 0x4b, 0}
115};
116ACMAPH_Register ACM_VoicePlayToSPKR_Enable[]={
117 {ELBA, 0x90, 0x7e},{ELBA, 0x35, CODEC_PM812_VOICE_MASTER},{ELBA, 0x36, CODEC_PM812_VOICE_WB},{ELBA, 0x37, 0x2},{ELBA, 0x38, 0x0},{ELBA, 0x39, 0x10},{ELBA, 0x53, 0x20},
118 {ELBA, 0x51, 0x2a},{ELBA, 0x50, 0xf},{ELBA, 0x55, 0x20},{ELBA, 0x21, 0x40},{ELBA, 0x20, 0xc1},{ELBA, 0x58, 0x97},{USTICA, 0x48, 0xe0},{USTICA, 0x4a, 0x70},{USTICA, 0x4b, 0x7}
119};
120
121/////////////////////////APH_PATH_ID_VOICEPLAYTOHP//////////////////////////
122ACMAPH_Register ACM_VoicePlayToHP_Disable[]={
123 {ELBA, 0x26, 0},{ELBA, 0x90, 0x7e},{ELBA, 0x35, 0},{ELBA, 0x36, 0},{ELBA, 0x37, 0},{ELBA, 0x38, 0},{ELBA, 0x39, 0},
124 {ELBA, 0x52, 0x22},{ELBA, 0x51, 0},{ELBA, 0x50, 0},{ELBA, 0x55, 0}
125};
126ACMAPH_Register ACM_VoicePlayToHP_Enable[]={
127 {ELBA, 0x28, 0x0},{ELBA, 0x90, 0x7e},{ELBA, 0x35, CODEC_PM812_VOICE_MASTER},{ELBA, 0x36, CODEC_PM812_VOICE_WB},{ELBA, 0x37, 0x2},{ELBA, 0x38, 0},{ELBA, 0x39, 0},{ELBA, 0x52, 0x22},
128 {ELBA, 0x50, 0xf},{ELBA, 0x55, 0x20},{ELBA, 0x26, 0x2b},{ELBA, 0x56, 0x9b},{ELBA, 0x57, 0x9b},{ELBA, 0x51, 0x2a},
129};
130
131/////////////////////////APH_PATH_ID_VOICERECORDFROMMIC1//////////////////////////
132ACMAPH_Register ACM_VoiceRecordFromMic1_Disable[]={
133 {ELBA, 0x12, 0},{ELBA, 0x51, 0},{ELBA, 0x16, 0},{ELBA, 0x92, 0},{ELBA, 0x94, 0x2},{ELBA, 0x10, 0x14},{ELBA, 0x11, 0},{ELBA, 0x3d, 0x1},
134 {ELBA, 0x50, 0},{ELBA, 0x35, 0},{ELBA, 0x36, 0},{ELBA, 0x37, 0}, {ELBA, 0x38, 0},
135};
136ACMAPH_Register ACM_VoiceRecordFromMic1_Enable[]={
137 {ELBA, 0x11, 0x00},{ELBA, 0x16, 0x1},{ELBA, 0x92, 0x56},{ELBA, 0x94, 0x1},{ELBA, 0x10, 0x14},{ELBA, 0x35, CODEC_PM812_VOICE_MASTER},{ELBA, 0x36, CODEC_PM812_VOICE_WB},
138 {ELBA, 0x37, 0x2},{ELBA, 0x38, 0},{ELBA, 0x3d, 0x1},{ELBA, 0x50, 0xf},{ELBA, 0x51, 0x2a}
139};
140ACMAPH_Register ACM_VoiceRecordFromMic1_Mute[]={
141 {ELBA, 0x11, 0x3},
142};
143ACMAPH_Register ACM_VoiceRecordFromMic1_UnMute[]={
144 {ELBA, 0x11, 0x00},
145};
146/////////////////////////APH_PATH_ID_VOICERECORDFROMHSMIC//////////////////////////
147ACMAPH_Register ACM_VoiceRecordFromHsMic_Disable[]={
148 {ELBA, 0x51, 0},{ELBA, 0x16, 0},{ELBA, 0x10, 0x14},{ELBA, 0x11, 0},{ELBA, 0x92, 0},{ELBA, 0x94, 0x2},{ELBA, 0x3d, 1},
149 {ELBA, 0x50, 0},{ELBA, 0x35, 0},{ELBA, 0x36, 0},{ELBA, 0x37, 0},{ELBA, 0x38, 0}
150};
151ACMAPH_Register ACM_VoiceRecordFromHsMic_Enable[]={
152 {ELBA, 0x11, 0x01},{ELBA, 0x16, 0x49},{ELBA, 0x10, 0x14},{ELBA, 0x92, 0x56},{ELBA, 0x94, 0x1},{ELBA, 0x35, CODEC_PM812_VOICE_MASTER},{ELBA, 0x36, CODEC_PM812_VOICE_WB},
153 {ELBA, 0x37, 0x02},{ELBA, 0x38, 0},{ELBA, 0x3d, 1},{ELBA, 0x50, 0xf},{ELBA, 0x51, 0x2a},{ELBA, 0x12, 0x0}
154};
155ACMAPH_Register ACM_VoiceRecordFromHsMic_Mute[]={
156 {ELBA, 0x11, 0x2},
157};
158ACMAPH_Register ACM_VoiceRecordFromHsMic_UnMute[]={
159 {ELBA, 0x11, 0x01},
160};
161
162//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
163static ACMAPH_Component ACM_Disable[APH_PATH_ID_CNT]={
164 {APH_PATH_ID_HIFIPLAYTOEARPHONE, ACM_HiFiPlayToEarphone_Disable, sizeof(ACM_HiFiPlayToEarphone_Disable)/sizeof(ACMAPH_Register)},
165 {APH_PATH_ID_HIFIPLAYTOSPKR, ACM_HiFiPlayToSPKR_Disable, sizeof(ACM_HiFiPlayToSPKR_Disable)/sizeof(ACMAPH_Register)},
166 {APH_PATH_ID_HIFIPLAYTOHP, ACM_HiFiPlayToHP_Disable, sizeof(ACM_HiFiPlayToHP_Disable)/sizeof(ACMAPH_Register)},
167 {APH_PATH_ID_HIFIRECORDFROMMIC1, ACM_HiFiRecordFromMic1_Disable, sizeof(ACM_HiFiRecordFromMic1_Disable)/sizeof(ACMAPH_Register)},
168 {APH_PATH_ID_HIFIRECORDFROMHSMIC, ACM_HiFiRecordFromHsMic_Disable, sizeof(ACM_HiFiRecordFromHsMic_Disable)/sizeof(ACMAPH_Register)},
169 {APH_PATH_ID_VOICEPLAYTOEARPHONE, ACM_VoicePlayToEarphone_Disable, sizeof(ACM_VoicePlayToEarphone_Disable)/sizeof(ACMAPH_Register)},
170 {APH_PATH_ID_VOICEPLAYTOSPKR, ACM_VoicePlayToSPKR_Disable, sizeof(ACM_VoicePlayToSPKR_Disable)/sizeof(ACMAPH_Register)},
171 {APH_PATH_ID_VOICEPLAYTOHP, ACM_VoicePlayToHP_Disable, sizeof(ACM_VoicePlayToHP_Disable)/sizeof(ACMAPH_Register)},
172 {APH_PATH_ID_VOICERECORDFROMMIC1, ACM_VoiceRecordFromMic1_Disable, sizeof(ACM_VoiceRecordFromMic1_Disable)/sizeof(ACMAPH_Register)},
173 {APH_PATH_ID_VOICERECORDFROMHSMIC, ACM_VoiceRecordFromHsMic_Disable, sizeof(ACM_VoiceRecordFromHsMic_Disable)/sizeof(ACMAPH_Register)},
174};
175
176static ACMAPH_Component ACM_Enable[APH_PATH_ID_CNT]={
177 {APH_PATH_ID_HIFIPLAYTOEARPHONE, ACM_HiFiPlayToEarphone_Enable, sizeof(ACM_HiFiPlayToEarphone_Enable)/sizeof(ACMAPH_Register)},
178 {APH_PATH_ID_HIFIPLAYTOSPKR, ACM_HiFiPlayToSPKR_Enable, sizeof(ACM_HiFiPlayToSPKR_Enable)/sizeof(ACMAPH_Register)},
179 {APH_PATH_ID_HIFIPLAYTOHP, ACM_HiFiPlayToHP_Enable, sizeof(ACM_HiFiPlayToHP_Enable)/sizeof(ACMAPH_Register)},
180 {APH_PATH_ID_HIFIRECORDFROMMIC1, ACM_HiFiRecordFromMic1_Enable, sizeof(ACM_HiFiRecordFromMic1_Enable)/sizeof(ACMAPH_Register)},
181 {APH_PATH_ID_HIFIRECORDFROMHSMIC, ACM_HiFiRecordFromHsMic_Enable, sizeof(ACM_HiFiRecordFromHsMic_Enable)/sizeof(ACMAPH_Register)},
182 {APH_PATH_ID_VOICEPLAYTOEARPHONE, ACM_VoicePlayToEarphone_Enable, sizeof(ACM_VoicePlayToEarphone_Enable)/sizeof(ACMAPH_Register)},
183 {APH_PATH_ID_VOICEPLAYTOSPKR, ACM_VoicePlayToSPKR_Enable, sizeof(ACM_VoicePlayToSPKR_Enable)/sizeof(ACMAPH_Register)},
184 {APH_PATH_ID_VOICEPLAYTOHP, ACM_VoicePlayToHP_Enable, sizeof(ACM_VoicePlayToHP_Enable)/sizeof(ACMAPH_Register)},
185 {APH_PATH_ID_VOICERECORDFROMMIC1, ACM_VoiceRecordFromMic1_Enable, sizeof(ACM_VoiceRecordFromMic1_Enable)/sizeof(ACMAPH_Register)},
186 {APH_PATH_ID_VOICERECORDFROMHSMIC, ACM_VoiceRecordFromHsMic_Enable, sizeof(ACM_VoiceRecordFromHsMic_Enable)/sizeof(ACMAPH_Register)},
187};
188
189static ACMAPH_Component ACM_Mute[APH_PATH_IN_CNT]={
190 {APH_PATH_ID_HIFIRECORDFROMMIC1, ACM_HiFiRecordFromMic1_Mute, sizeof(ACM_HiFiRecordFromMic1_Mute)/sizeof(ACMAPH_Register)},
191 {APH_PATH_ID_HIFIRECORDFROMHSMIC, ACM_HiFiRecordFromHsMic_Mute, sizeof(ACM_HiFiRecordFromHsMic_Mute)/sizeof(ACMAPH_Register)},
192 {APH_PATH_ID_VOICERECORDFROMMIC1, ACM_VoiceRecordFromMic1_Mute, sizeof(ACM_VoiceRecordFromMic1_Mute)/sizeof(ACMAPH_Register)},
193 {APH_PATH_ID_VOICERECORDFROMHSMIC, ACM_VoiceRecordFromHsMic_Mute, sizeof(ACM_VoiceRecordFromHsMic_Mute)/sizeof(ACMAPH_Register)},
194};
195static ACMAPH_Component ACM_UnMute[APH_PATH_IN_CNT]={
196 {APH_PATH_ID_HIFIRECORDFROMMIC1, ACM_HiFiRecordFromMic1_UnMute, sizeof(ACM_HiFiRecordFromMic1_UnMute)/sizeof(ACMAPH_Register)},
197 {APH_PATH_ID_HIFIRECORDFROMHSMIC, ACM_HiFiRecordFromHsMic_UnMute, sizeof(ACM_HiFiRecordFromHsMic_UnMute)/sizeof(ACMAPH_Register)},
198 {APH_PATH_ID_VOICERECORDFROMMIC1, ACM_VoiceRecordFromMic1_UnMute, sizeof(ACM_VoiceRecordFromMic1_UnMute)/sizeof(ACMAPH_Register)},
199 {APH_PATH_ID_VOICERECORDFROMHSMIC, ACM_VoiceRecordFromHsMic_UnMute, sizeof(ACM_VoiceRecordFromHsMic_UnMute)/sizeof(ACMAPH_Register)},
200};
201
202extern ACH_ComponentHandler elba_handler;
203extern ACH_ComponentHandler ustica_handler;
204
205static APH_ACHComponent ACH_component_table[] = {
206 {ELBA, &elba_handler},
207 {USTICA, &ustica_handler},
208};
209//Sorted as APH_AudioComponent
210static char APH_AudioComponent_Name[][16]= {
211 "ELBA",
212 "USTICA",
213} ;
214
215#endif