es705-routes.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914
  1. /*
  2. * es705-routes.h -- Audience eS705 ALSA SoC Audio driver
  3. *
  4. * Copyright 2013 Audience, Inc.
  5. *
  6. * Author: Greg Clemson <gclemson@audience.com>
  7. *
  8. *
  9. * This program is free software; you can redistribute it and/or modify
  10. * it under the terms of the GNU General Public License version 2 as
  11. * published by the Free Software Foundation.
  12. */
  13. #ifndef _ES705_ROUTES_H
  14. #define _ES705_ROUTES_H
  15. struct esxxx_route_config {
  16. const u32 *route;
  17. const u32 *nb;
  18. const u32 *wb;
  19. const u32 *swb;
  20. const u32 *fb;
  21. };
  22. enum {
  23. ROUTE_OFF,
  24. ROUTE_CS_VOICE_1MIC_CT,
  25. ROUTE_CS_VOICE_2MIC_CT,
  26. ROUTE_CS_VOICE_3MIC_CT,
  27. ROUTE_CS_VOICE_1MIC_FT,
  28. ROUTE_CS_VOICE_2MIC_FT,
  29. ROUTE_CS_VOICE_3MIC_FT,
  30. ROUTE_CS_VOICE_HEADSET,
  31. ROUTE_CS_VOICE_1MIC_HEADPHONE,
  32. ROUTE_VOIP_1MIC_CT,
  33. ROUTE_VOIP_2MIC_CT,
  34. ROUTE_VOIP_3MIC_CT,
  35. ROUTE_VOIP_1MIC_FT,
  36. ROUTE_VOIP_2MIC_FT,
  37. ROUTE_VOIP_3MIC_FT,
  38. ROUTE_VOIP_HEADSET,
  39. ROUTE_VOIP_1MIC_HEADPHONE,
  40. ROUTE_VOICE_ASR_1MIC,
  41. ROUTE_VOICE_ASR_2MIC,
  42. ROUTE_VOICE_ASR_3MIC,
  43. ROUTE_VOICESENSE_SBUSRX4,
  44. ROUTE_VOICESENSE_SBUSRX0,
  45. ROUTE_VOICESENSE_PDM,
  46. ROUTE_1CHAN_PLAYBACK,
  47. ROUTE_2CHAN_PLAYBACK,
  48. ROUTE_1CHAN_CAPTURE,
  49. ROUTE_2CHAN_CAPTURE,
  50. ROUTE_AUDIOZOOM_2MIC,
  51. ROUTE_AUDIOZOOM_3MIC,
  52. ROUTE_MAX
  53. };
  54. enum {
  55. RATE_NB,
  56. RATE_WB,
  57. RATE_SWB,
  58. RATE_FB,
  59. RATE_MAX
  60. };
  61. static const u32 route_off[] = {
  62. 0xffffffff,
  63. };
  64. static const u32 route_cs_voice_1mic_ct[] = {
  65. 0x903103e9,
  66. 0xffffffff /* terminate */
  67. };
  68. static const u32 nb_cs_voice_1mic_ct[] = {
  69. 0x90310227,
  70. 0xffffffff /* terminate */
  71. };
  72. static const u32 wb_cs_voice_1mic_ct[] = {
  73. 0x9031024f,
  74. 0xffffffff /* terminate */
  75. };
  76. static const u32 swb_cs_voice_1mic_ct[] = {
  77. 0x90310250,
  78. 0xffffffff /* terminate */
  79. };
  80. static const u32 route_cs_voice_2mic_ct[] = {
  81. 0x9031041b, /* 1051, without PDM */
  82. /* 0x90310577, 1399 with PDM*/
  83. 0xffffffff /* terminate */
  84. };
  85. static const u32 nb_cs_voice_2mic_ct[] = {
  86. 0x9031022a,
  87. 0xffffffff /* terminate */
  88. };
  89. static const u32 wb_cs_voice_2mic_ct[] = {
  90. 0x9031022b,
  91. 0xffffffff /* terminate */
  92. };
  93. static const u32 swb_cs_voice_2mic_ct[] = {
  94. 0x9031022c,
  95. 0xffffffff /* terminate */
  96. };
  97. static const u32 route_cs_voice_3mic_ct[] = {
  98. 0x9031044d, /* 1101, 3 mic, without PDM */
  99. /* 0x903157d, 1405, 3 mic, 1PDM-2Analog */
  100. 0xffffffff /* terminate */
  101. };
  102. static const u32 nb_cs_voice_3mic_ct[] = {
  103. 0x9031022d,
  104. 0xffffffff /* terminate */
  105. };
  106. static const u32 wb_cs_voice_3mic_ct[] = {
  107. 0x9031022e,
  108. 0xffffffff /* terminate */
  109. };
  110. static const u32 swb_cs_voice_3mic_ct[] = {
  111. 0xffffffff /* terminate */
  112. };
  113. static const u32 route_cs_voice_1mic_ft[] = {
  114. 0x903103e9,
  115. 0xffffffff /* terminate */
  116. };
  117. static const u32 nb_cs_voice_1mic_ft[] = {
  118. 0x90310230,
  119. 0xffffffff /* terminate */
  120. };
  121. static const u32 wb_cs_voice_1mic_ft[] = {
  122. 0x9031024f,
  123. 0xffffffff /* terminate */
  124. };
  125. static const u32 swb_cs_voice_1mic_ft[] = {
  126. 0x90310250,
  127. 0xffffffff /* terminate */
  128. };
  129. static const u32 route_cs_voice_2mic_ft[] = {
  130. 0x9031041b, /* 1051, without PDM */
  131. /* 0x90310577, 1399, 2mic, PDM mic */
  132. 0xffffffff /* terminate */
  133. };
  134. static const u32 nb_cs_voice_2mic_ft[] = {
  135. 0x9031023c,
  136. 0xffffffff /* terminate */
  137. };
  138. static const u32 wb_cs_voice_2mic_ft[] = {
  139. 0x9031023a,
  140. 0xffffffff /* terminate */
  141. };
  142. static const u32 swb_cs_voice_2mic_ft[] = {
  143. 0x9031023b,
  144. 0xffffffff /* terminate */
  145. };
  146. static const u32 route_cs_voice_3mic_ft[] = {
  147. 0x9031044d, /* 1101, without PDM */
  148. 0xffffffff /* terminate */
  149. };
  150. static const u32 nb_cs_voice_3mic_ft[] = {
  151. 0x90310242,
  152. 0xffffffff /* terminate */
  153. };
  154. static const u32 wb_cs_voice_3mic_ft[] = {
  155. 0x90310243,
  156. 0xffffffff /* terminate */
  157. };
  158. static const u32 swb_cs_voice_3mic_ft[] = {
  159. 0xffffffff /* terminate */
  160. };
  161. static const u32 route_cs_voice_headset[] = {
  162. 0x903103ed,
  163. 0xffffffff /* terminate */
  164. };
  165. static const u32 nb_cs_voice_headset[] = {
  166. 0x9031024e,
  167. 0xffffffff /* terminate */
  168. };
  169. static const u32 wb_cs_voice_headset[] = {
  170. 0x9031024f,
  171. 0xffffffff /* terminate */
  172. };
  173. static const u32 swb_cs_voice_headset[] = {
  174. 0xffffffff /* terminate */
  175. };
  176. static const u32 route_cs_voice_1mic_headphone[] = {
  177. 0x903103ed,
  178. 0xffffffff /* terminate */
  179. };
  180. static const u32 nb_cs_voice_1mic_headphone[] = {
  181. 0xffffffff /* terminate */
  182. };
  183. static const u32 wb_cs_voice_1mic_headphone[] = {
  184. 0xffffffff /* terminate */
  185. };
  186. static const u32 swb_cs_voice_1mic_headphone[] = {
  187. 0xffffffff /* terminate */
  188. };
  189. static const u32 route_voip_1mic_ct[] = {
  190. 0x903103e9,
  191. 0xffffffff /* terminate */
  192. };
  193. static const u32 nb_voip_1mic_ct[] = {
  194. 0x9031024e,
  195. 0xffffffff /* terminate */
  196. };
  197. static const u32 wb_voip_1mic_ct[] = {
  198. 0x9031024f,
  199. 0xffffffff /* terminate */
  200. };
  201. static const u32 swb_voip_1mic_ct[] = {
  202. 0x90310250,
  203. 0xffffffff /* terminate */
  204. };
  205. static const u32 route_voip_2mic_ct[] = {
  206. /* 0x9031041b, without PDM */
  207. 0x90310577, /* 1399 with PDM*/
  208. 0xffffffff /* terminate */
  209. };
  210. static const u32 nb_voip_2mic_ct[] = {
  211. 0x9031022a,
  212. 0xffffffff /* terminate */
  213. };
  214. static const u32 wb_voip_2mic_ct[] = {
  215. 0x9031022b,
  216. 0xffffffff /* terminate */
  217. };
  218. static const u32 swb_voip_2mic_ct[] = {
  219. 0x9031022c,
  220. 0xffffffff /* terminate */
  221. };
  222. static const u32 fb_voip_2mic_ct[] = {
  223. 0x90310272, /* 626 */
  224. 0xffffffff /* terminate */
  225. };
  226. static const u32 route_voip_3mic_ct[] = {
  227. 0x9031057d, /* 1405, 3 mic, 1PDM-2Analog */
  228. 0xffffffff /* terminate */
  229. };
  230. static const u32 nb_voip_3mic_ct[] = {
  231. 0x9031022d, /* 557 */
  232. 0xffffffff /* terminate */
  233. };
  234. static const u32 wb_voip_3mic_ct[] = {
  235. 0x9031022e, /* 558 */
  236. 0xffffffff /* terminate */
  237. };
  238. static const u32 swb_voip_3mic_ct[] = {
  239. 0x9031022f, /* 559 */
  240. 0xffffffff /* terminate */
  241. };
  242. static const u32 fb_voip_3mic_ct[] = {
  243. 0x90310273, /* 627 */
  244. 0xffffffff /* terminate */
  245. };
  246. static const u32 route_voip_1mic_ft[] = {
  247. 0x903103e9,
  248. 0xffffffff /* terminate */
  249. };
  250. static const u32 nb_voip_1mic_ft[] = {
  251. 0x9031024e,
  252. 0xffffffff /* terminate */
  253. };
  254. static const u32 wb_voip_1mic_ft[] = {
  255. 0x9031024f,
  256. 0xffffffff /* terminate */
  257. };
  258. static const u32 swb_voip_1mic_ft[] = {
  259. 0x90310250,
  260. 0xffffffff /* terminate */
  261. };
  262. static const u32 route_voip_2mic_ft[] = {
  263. /* 0x9031041b, Analog Mic */
  264. 0x90310577, /* 1399, 2mic, PDM mic */
  265. 0xffffffff /* terminate */
  266. };
  267. static const u32 nb_voip_2mic_ft[] = {
  268. 0x90310239,
  269. 0xffffffff /* terminate */
  270. };
  271. static const u32 wb_voip_2mic_ft[] = {
  272. 0x9031023a,
  273. 0xffffffff /* terminate */
  274. };
  275. static const u32 swb_voip_2mic_ft[] = {
  276. 0x9031023b,
  277. 0xffffffff /* terminate */
  278. };
  279. static const u32 fb_voip_2mic_ft[] = {
  280. 0x90310277, /* 631 */
  281. 0xffffffff /* terminate */
  282. };
  283. static const u32 route_voip_3mic_ft[] = {
  284. 0x90310595, /* 1429, 3 mic, 1PDM-2Analog, Ter is PDM Mic */
  285. 0xffffffff /* terminate */
  286. };
  287. static const u32 nb_voip_3mic_ft[] = {
  288. 0x90310242, /* 578 */
  289. 0xffffffff /* terminate */
  290. };
  291. static const u32 wb_voip_3mic_ft[] = {
  292. 0x90310243, /* 579 */
  293. 0xffffffff /* terminate */
  294. };
  295. static const u32 swb_voip_3mic_ft[] = {
  296. 0x90310244, /* 580 */
  297. 0xffffffff /* terminate */
  298. };
  299. static const u32 fb_voip_3mic_ft[] = {
  300. 0x9031027a, /* 634 */
  301. 0xffffffff /* terminate */
  302. };
  303. static const u32 route_voip_headset[] = {
  304. 0x903103ed,
  305. 0xffffffff /* terminate */
  306. };
  307. static const u32 nb_voip_headset[] = {
  308. 0x9031024e,
  309. 0xffffffff /* terminate */
  310. };
  311. static const u32 wb_voip_headset[] = {
  312. 0x9031024f,
  313. 0xffffffff /* terminate */
  314. };
  315. static const u32 swb_voip_headset[] = {
  316. 0xffffffff /* terminate */
  317. };
  318. static const u32 route_voip_1mic_headphone[] = {
  319. 0x903103ed,
  320. 0xffffffff /* terminate */
  321. };
  322. static const u32 nb_voip_1mic_headphone[] = {
  323. 0xffffffff /* terminate */
  324. };
  325. static const u32 wb_voip_1mic_headphone[] = {
  326. 0xffffffff /* terminate */
  327. };
  328. static const u32 swb_voip_1mic_headphone[] = {
  329. 0xffffffff /* terminate */
  330. };
  331. static const u32 route_voice_asr_1mic[] = {
  332. 0x903104b1,
  333. 0xffffffff /* terminate */
  334. };
  335. static const u32 nb_voice_asr_1mic[] = {
  336. 0xffffffff /* terminate */
  337. };
  338. static const u32 wb_voice_asr_1mic[] = {
  339. 0xffffffff /* terminate */
  340. };
  341. static const u32 swb_voice_asr_1mic[] = {
  342. 0xffffffff /* terminate */
  343. };
  344. static const u32 route_voice_asr_2mic[] = {
  345. 0x903104ca,
  346. 0xffffffff /* terminate */
  347. };
  348. static const u32 nb_voice_asr_2mic[] = {
  349. 0xffffffff /* terminate */
  350. };
  351. static const u32 wb_voice_asr_2mic[] = {
  352. 0xffffffff /* terminate */
  353. };
  354. static const u32 swb_voice_asr_2mic[] = {
  355. 0xffffffff /* terminate */
  356. };
  357. static const u32 route_voice_asr_3mic[] = {
  358. 0xffffffff /* terminate */
  359. };
  360. static const u32 nb_voice_asr_3mic[] = {
  361. 0xffffffff /* terminate */
  362. };
  363. static const u32 wb_voice_asr_3mic[] = {
  364. 0xffffffff /* terminate */
  365. };
  366. static const u32 swb_voice_asr_3mic[] = {
  367. 0xffffffff /* terminate */
  368. };
  369. static const u32 route_voicesense_sbusrx4[] = {
  370. 0xb05a0a40, /* SBUS.Rx4 -> RxChMgr0*/
  371. 0xb05b0000, /* Set PathId RxChMgr0 PATH_ID_PRI */
  372. 0xb0640038, /* connect RxChMgr0.o0 */
  373. 0xb0640190, /* connect senseVoice.i0 */
  374. 0xb0630003, /* set rate RxChMgr0 8k*/
  375. 0xb0630019, /* set rate senseVoice 8k*/
  376. 0xb0680300, /* set group RxChMgr0 0*/
  377. 0xb0681900, /* set group sensevoice 0*/
  378. 0xb00c0900, /* setDeviceParamID set Multichannel Link Bits*/
  379. 0x900d0000, /* setDeviceParam Slimbus Linked*/
  380. 0xffffffff /* terminate */
  381. };
  382. static const u32 route_voicesense_pdm[] = {
  383. 0x90310566,
  384. 0xffffffff /* terminate */
  385. };
  386. static const u32 route_sensory_pdm[] = {
  387. 0xb05a0c00,
  388. 0xb05b0000,
  389. 0xb0640038,
  390. 0xb0640190,
  391. 0xb0630103,
  392. 0xb0630119,
  393. 0xb0680300,
  394. 0xb0681900,
  395. 0x9017e02b, /* Sensory input gain reg = 0xe02b */
  396. 0x90181000, /* Sensory input gain value = 0x1000 */
  397. 0xffffffff,
  398. };
  399. static const u32 route_voicesense_sbusrx0[] = {
  400. 0xb05a0a00, /* SBUS.Rx0 -> RxChMgr0*/
  401. 0xb05b0000, /* Set PathId RxChMgr0 PATH_ID_PRI */
  402. 0xb0640038, /* connect RxChMgr0.o0 */
  403. 0xb0640190, /* connect senseVoice.i0 */
  404. 0xb0630003, /* set rate RxChMgr0 8k*/
  405. 0xb0630019, /* set rate senseVoice 8k*/
  406. 0xb0680300, /* set group RxChMgr0 0*/
  407. 0xb0681900, /* set group sensevoice 0*/
  408. 0xb00c0900, /* setDeviceParamID set Multichannel Link Bits*/
  409. 0x900d0000, /* setDeviceParam Slimbus Linked*/
  410. 0xffffffff /* terminate */
  411. };
  412. static const u32 route_1chan_playback[] = {
  413. 0x9031047f,
  414. 0xffffffff /* terminate */
  415. };
  416. static const u32 route_2chan_playback[] = {
  417. 0x90310483,
  418. 0xffffffff /* terminate */
  419. };
  420. static const u32 route_1chan_capture[] = {
  421. 0x90310480,
  422. 0xffffffff /* terminate */
  423. };
  424. static const u32 route_2chan_capture[] = {
  425. 0x90310484,
  426. 0xffffffff /* terminate */
  427. };
  428. static const u32 route_audiozoom_2mic[] = {
  429. 0x9031054b,
  430. 0xffffffff /* terminate */
  431. };
  432. static const u32 route_audiozoom_3mic[] = {
  433. 0x9031054d,
  434. 0xffffffff /* terminate */
  435. };
  436. static const struct esxxx_route_config es705_route_config[ROUTE_MAX] = {
  437. [ROUTE_OFF] = {
  438. .route = route_off,
  439. },
  440. [ROUTE_CS_VOICE_1MIC_CT] = {
  441. .route = route_cs_voice_1mic_ct,
  442. .nb = nb_cs_voice_1mic_ct,
  443. .wb = wb_cs_voice_1mic_ct,
  444. .swb = swb_cs_voice_1mic_ct,
  445. },
  446. [ROUTE_CS_VOICE_2MIC_CT] = {
  447. .route = route_cs_voice_2mic_ct,
  448. .nb = nb_cs_voice_2mic_ct,
  449. .wb = wb_cs_voice_2mic_ct,
  450. .swb = swb_cs_voice_2mic_ct,
  451. },
  452. [ROUTE_CS_VOICE_3MIC_CT] = {
  453. .route = route_cs_voice_3mic_ct,
  454. .nb = nb_cs_voice_3mic_ct,
  455. .wb = wb_cs_voice_3mic_ct,
  456. .swb = swb_cs_voice_3mic_ct,
  457. },
  458. [ROUTE_CS_VOICE_1MIC_FT] = {
  459. .route = route_cs_voice_1mic_ft,
  460. .nb = nb_cs_voice_1mic_ft,
  461. .wb = wb_cs_voice_1mic_ft,
  462. .swb = swb_cs_voice_1mic_ft,
  463. },
  464. [ROUTE_CS_VOICE_2MIC_FT] = {
  465. .route = route_cs_voice_2mic_ft,
  466. .nb = nb_cs_voice_2mic_ft,
  467. .wb = wb_cs_voice_2mic_ft,
  468. .swb = swb_cs_voice_2mic_ft,
  469. },
  470. [ROUTE_CS_VOICE_3MIC_FT] = {
  471. .route = route_cs_voice_3mic_ft,
  472. .nb = nb_cs_voice_3mic_ft,
  473. .wb = wb_cs_voice_3mic_ft,
  474. .swb = swb_cs_voice_3mic_ft,
  475. },
  476. [ROUTE_CS_VOICE_HEADSET] = {
  477. .route = route_cs_voice_headset,
  478. .nb = nb_cs_voice_headset,
  479. .wb = wb_cs_voice_headset,
  480. .swb = swb_cs_voice_headset,
  481. },
  482. [ROUTE_CS_VOICE_1MIC_HEADPHONE] = {
  483. .route = route_cs_voice_1mic_headphone,
  484. .nb = nb_cs_voice_1mic_headphone,
  485. .wb = wb_cs_voice_1mic_headphone,
  486. .swb = swb_cs_voice_1mic_headphone,
  487. },
  488. [ROUTE_VOIP_1MIC_CT] = {
  489. .route = route_voip_1mic_ct,
  490. .nb = nb_voip_1mic_ct,
  491. .wb = wb_voip_1mic_ct,
  492. .swb = swb_voip_1mic_ct,
  493. },
  494. [ROUTE_VOIP_2MIC_CT] = {
  495. .route = route_voip_2mic_ct,
  496. .nb = nb_voip_2mic_ct,
  497. .wb = wb_voip_2mic_ct,
  498. .swb = swb_voip_2mic_ct,
  499. .fb = fb_voip_2mic_ct,
  500. },
  501. [ROUTE_VOIP_3MIC_CT] = {
  502. .route = route_voip_3mic_ct,
  503. .nb = nb_voip_3mic_ct,
  504. .wb = wb_voip_3mic_ct,
  505. .swb = swb_voip_3mic_ct,
  506. .fb = fb_voip_3mic_ct,
  507. },
  508. [ROUTE_VOIP_1MIC_FT] = {
  509. .route = route_voip_1mic_ft,
  510. .nb = nb_voip_1mic_ft,
  511. .wb = wb_voip_1mic_ft,
  512. .swb = swb_voip_1mic_ft,
  513. },
  514. [ROUTE_VOIP_2MIC_FT] = {
  515. .route = route_voip_2mic_ft,
  516. .nb = nb_voip_2mic_ft,
  517. .wb = wb_voip_2mic_ft,
  518. .swb = swb_voip_2mic_ft,
  519. .fb = fb_voip_2mic_ft,
  520. },
  521. [ROUTE_VOIP_3MIC_FT] = {
  522. .route = route_voip_3mic_ft,
  523. .nb = nb_voip_3mic_ft,
  524. .wb = wb_voip_3mic_ft,
  525. .swb = swb_voip_3mic_ft,
  526. .fb = fb_voip_3mic_ft,
  527. },
  528. [ROUTE_VOIP_HEADSET] = {
  529. .route = route_voip_headset,
  530. .nb = nb_voip_headset,
  531. .wb = wb_voip_headset,
  532. .swb = swb_voip_headset,
  533. },
  534. [ROUTE_VOIP_1MIC_HEADPHONE] = {
  535. .route = route_voip_1mic_headphone,
  536. .nb = nb_voip_1mic_headphone,
  537. .wb = wb_voip_1mic_headphone,
  538. .swb = swb_voip_1mic_headphone,
  539. },
  540. [ROUTE_VOICE_ASR_1MIC] = {
  541. .route = route_voice_asr_1mic,
  542. .nb = nb_voice_asr_1mic,
  543. .wb = wb_voice_asr_1mic,
  544. .swb = swb_voice_asr_1mic,
  545. },
  546. [ROUTE_VOICE_ASR_2MIC] = {
  547. .route = route_voice_asr_2mic,
  548. .nb = nb_voice_asr_2mic,
  549. .wb = wb_voice_asr_2mic,
  550. .swb = swb_voice_asr_2mic,
  551. },
  552. [ROUTE_VOICE_ASR_3MIC] = {
  553. .route = route_voice_asr_3mic,
  554. .nb = nb_voice_asr_3mic,
  555. .wb = wb_voice_asr_3mic,
  556. .swb = swb_voice_asr_3mic,
  557. },
  558. [ROUTE_VOICESENSE_SBUSRX4] = {
  559. .route = route_voicesense_sbusrx4,
  560. },
  561. [ROUTE_VOICESENSE_SBUSRX0] = {
  562. .route = route_voicesense_sbusrx0,
  563. },
  564. [ROUTE_VOICESENSE_PDM] = {
  565. .route = route_voicesense_pdm,
  566. },
  567. [ROUTE_1CHAN_PLAYBACK] = {
  568. .route = route_1chan_playback,
  569. },
  570. [ROUTE_2CHAN_PLAYBACK] = {
  571. .route = route_2chan_playback,
  572. },
  573. [ROUTE_1CHAN_CAPTURE] = {
  574. .route = route_1chan_capture,
  575. },
  576. [ROUTE_2CHAN_CAPTURE] = {
  577. .route = route_2chan_capture,
  578. },
  579. [ROUTE_AUDIOZOOM_2MIC] = {
  580. .route = route_audiozoom_2mic,
  581. },
  582. [ROUTE_AUDIOZOOM_3MIC] = {
  583. .route = route_audiozoom_3mic,
  584. },
  585. };
  586. static const u32 route_1Mic_WHS_NB_SWBypass[] = {
  587. 0x903103ed, /* Route, #1005 */
  588. 0x9031024e, /* Algo, #590 */
  589. 0xffffffff /* terminate */
  590. };
  591. #if defined(CONFIG_MACH_KACTIVELTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_ATT) || defined(CONFIG_SEC_S_PROJECT) || defined(CONFIG_MACH_KACTIVELTE_CAN) \
  592. || defined(CONFIG_MACH_KACTIVELTE_DCM) || defined(CONFIG_MACH_HESTIALTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_KOR)
  593. static const u32 route_2Mic_SPK_NB_FO_NSOn[] = {
  594. 0x9031041b, /* Route, #1051 */
  595. 0x90310395, /* Algo, #917 */
  596. 0xffffffff /* terminate */
  597. };
  598. #endif
  599. static const u32 route_2Mic_SPK_NB_NSOn[] = {
  600. 0x9031041b, /* Route, #1051 */
  601. 0x9031023c, /* Algo, #572 */
  602. 0xffffffff /* terminate */
  603. };
  604. static const u32 route_2Mic_HS_NB_NSOn[] = {
  605. 0x9031041b, /* Route, #1051 */
  606. 0x9031022a, /* Algo, #554 */
  607. 0xffffffff /* terminate */
  608. };
  609. #if defined(CONFIG_MACH_KACTIVELTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_ATT) || defined(CONFIG_SEC_S_PROJECT) || defined(CONFIG_MACH_KACTIVELTE_CAN) \
  610. || defined(CONFIG_MACH_KACTIVELTE_DCM) || defined(CONFIG_MACH_HESTIALTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_KOR)
  611. static const u32 route_2Mic_SPK_NB_FO_NSOff[] = {
  612. 0x9031041b, /* Route, #1051 */
  613. 0x90310395, /* Algo, #917 */
  614. 0x903103e6, /* Algo, #998 */
  615. 0xffffffff /* terminate */
  616. };
  617. #endif
  618. static const u32 route_2Mic_SPK_NB_NSOff[] = {
  619. 0x9031041b, /* Route, #1051 */
  620. 0x9031026d, /* Algo, #621 */
  621. 0xffffffff /* terminate */
  622. };
  623. static const u32 route_2Mic_HS_NB_NSOff[] = {
  624. 0x9031041b, /* Route, #1051 */
  625. 0x9031022a, /* Algo, #554 */
  626. 0x903103bd, /* Algo, #957 */
  627. 0xffffffff /* terminate */
  628. };
  629. static const u32 route_1Ch_AudioPB[] = {
  630. 0x9031047f, /* Route, #1151 */
  631. 0x90310353, /* Algo, #851 */
  632. 0xffffffff /* terminate */
  633. };
  634. static const u32 route_2Ch_AudioPB[] = {
  635. 0x90310484, /* Route, #1156 */
  636. 0x90310358, /* Algo, #856 */
  637. 0xffffffff /* terminate */
  638. };
  639. static const u32 route_2Mic_AudioZoomInterview[] = {
  640. 0x9031054b, /* Route, #1355 */
  641. 0x903102f0, /* Algo, #752 */
  642. 0xffffffff /* terminate */
  643. };
  644. static const u32 route_2Mic_AudioZoomConversation[] = {
  645. 0x9031054b, /* Route, #1355 */
  646. 0x903102f1, /* Algo, #753 */
  647. 0xffffffff /* terminate */
  648. };
  649. static const u32 route_dummy[] = {
  650. 0xffffffff /* terminate */
  651. };
  652. static const u32 route_TTYVCO[] = {
  653. 0x903103ed, /* Route, #1005 */
  654. 0x9031024e, /* Algo, #590 */
  655. 0x9031026d, /* VP Off, #621 */
  656. 0xffffffff /* terminate */
  657. };
  658. #if defined(CONFIG_MACH_KACTIVELTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_ATT) || defined(CONFIG_SEC_S_PROJECT) || defined(CONFIG_MACH_KACTIVELTE_CAN) \
  659. || defined(CONFIG_MACH_KACTIVELTE_DCM) || defined(CONFIG_MACH_HESTIALTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_KOR)
  660. static const u32 route_TTYHCO[] = {
  661. 0x903103e9, /* Route, #1001 */
  662. 0x9031024e, /* Algo, #590 */
  663. 0x9031026d, /* VP Off, #621 */
  664. 0xffffffff /* terminate */
  665. };
  666. static const u32 route_2Mic_ASR_AO[] = {
  667. 0x903104ca, /* Route, #1226 */
  668. 0x903103b2, /* Algo, #946 */
  669. 0xffffffff /* terminate */
  670. };
  671. #else
  672. static const u32 route_TTYHCO[] = {
  673. 0x903103e9, /* Route, #1001 */
  674. 0x9031024e, /* Algo, #590 */
  675. 0x9031026d, /* VP Off, #621 */
  676. 0xffffffff /* terminate */
  677. };
  678. static const u32 route_2Mic_ASR[] = {
  679. 0x903104ca, /* Route, #1226 */
  680. 0x90310260, /* Algo, #608 */
  681. 0xffffffff /* terminate */
  682. };
  683. #endif
  684. static const u32 route_1Mic_HS_LB_SWBypass[] = {
  685. 0x903103e9, /* Route, #1001 */
  686. 0x9031026d, /* VP Off, #621 */
  687. 0xffffffff /* terminate */
  688. };
  689. static const u32 route_1Mic_SPK_LB_SWBypass[] = {
  690. 0x903103e9, /* Route, #1001 */
  691. 0x9031026d, /* VP Off, #621 */
  692. 0xffffffff /* terminate */
  693. };
  694. static const u32 route_1Mic_WHS_LB_SWBypass[] = {
  695. 0x903103ed, /* Route, #1005 */
  696. 0x9031026d, /* VP Off, #621 */
  697. 0xffffffff /* terminate */
  698. };
  699. static const u32 route_1Mic_WHS_WB_SWBypass[] = {
  700. 0x903103ed, /* Route, #1005 */
  701. 0x9031024f, /* Algo, #591 */
  702. 0x9031026d, /* VP Off, #621 */
  703. 0xffffffff /* terminate */
  704. };
  705. #if defined(CONFIG_MACH_KACTIVELTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_ATT) || defined(CONFIG_SEC_S_PROJECT) || defined(CONFIG_MACH_KACTIVELTE_CAN) \
  706. || defined(CONFIG_MACH_KACTIVELTE_DCM) || defined(CONFIG_MACH_HESTIALTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_KOR)
  707. static const u32 route_2Mic_SPK_WB_FO_NSOn[] = {
  708. 0x9031041b, /* Route, #1051 */
  709. 0x90310396, /* Algo, #918 */
  710. 0xffffffff /* terminate */
  711. };
  712. #endif
  713. static const u32 route_2Mic_SPK_WB_NSOn[] = {
  714. 0x9031041b, /* Route, #1051 */
  715. 0x9031023a, /* Algo, #570 */
  716. 0xffffffff /* terminate */
  717. };
  718. static const u32 route_2Mic_HS_WB_NSOn[] = {
  719. 0x9031041b, /* Route, #1051 */
  720. 0x9031022b, /* Algo, #555 */
  721. 0xffffffff /* terminate */
  722. };
  723. #if defined(CONFIG_MACH_KACTIVELTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_ATT) || defined(CONFIG_SEC_S_PROJECT) || defined(CONFIG_MACH_KACTIVELTE_CAN) \
  724. || defined(CONFIG_MACH_KACTIVELTE_DCM) || defined(CONFIG_MACH_HESTIALTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_KOR)
  725. static const u32 route_2Mic_SPK_WB_FO_NSOff[] = {
  726. 0x9031041b, /* Route, #1051 */
  727. 0x90310396, /* Algo, #918 */
  728. 0x903103e7, /* Algo, #999 */
  729. 0xffffffff /* terminate */
  730. };
  731. #endif
  732. static const u32 route_2Mic_SPK_WB_NSOff[] = {
  733. 0x9031041b, /* Route, #1051 */
  734. 0x9031024f, /* Algo, #591 */
  735. 0xffffffff /* terminate */
  736. };
  737. static const u32 route_2Mic_HS_WB_NSOff[] = {
  738. 0x9031041b, /* Route, #1051 */
  739. 0x9031022b, /* Algo, #555 */
  740. 0x903103be, /* Algo, #958 */
  741. 0xffffffff /* terminate */
  742. };
  743. static const u32 route_3Mic_SPK_NB_FO_NSOn[] = {
  744. 0x9031044d, /* Route, #1101 */
  745. 0x9031039d, /* Algo, #925 */
  746. 0xffffffff /* terminate */
  747. };
  748. static const u32 route_3Mic_SPK_NB_FO_NSOff[] = {
  749. 0x9031044d, /* Route, #1101 */
  750. 0x9031039d, /* Algo, #925 */
  751. 0x903103e6, /* Algo, #998 */
  752. 0xffffffff /* terminate */
  753. };
  754. static const u32 route_3Mic_AudioZoomInterview[] = {
  755. 0x9031054d, /* Route, #1357 */
  756. 0x903102f0, /* Algo, #752 */
  757. 0xffffffff /* terminate */
  758. };
  759. static const u32 route_3Mic_AudioZoomConversation[] = {
  760. 0x9031054d, /* Route, #1357 */
  761. 0x903102f1, /* Algo, #753 */
  762. 0xffffffff /* terminate */
  763. };
  764. static const u32 route_3Mic_ASR_AO[] = {
  765. 0x903104e3, /* Route, #1251 */
  766. 0x903103ba, /* Algo, #954 */
  767. 0xffffffff /* terminate */
  768. };
  769. static const u32 route_3Mic_SPK_WB_FO_NSOn[] = {
  770. 0x9031044d, /* Route, #1101 */
  771. 0x9031039e, /* Algo, #926 */
  772. 0xffffffff /* terminate */
  773. };
  774. static const u32 route_3Mic_SPK_WB_FO_NSOff[] = {
  775. 0x9031044d, /* Route, #1101 */
  776. 0x9031039e, /* Algo, #926 */
  777. 0x903103e7, /* Algo, #999 */
  778. 0xffffffff /* terminate */
  779. };
  780. #if defined(CONFIG_MACH_KACTIVELTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_ATT) || defined(CONFIG_SEC_S_PROJECT) || defined(CONFIG_MACH_KACTIVELTE_CAN) \
  781. || defined(CONFIG_MACH_KACTIVELTE_DCM) || defined(CONFIG_MACH_HESTIALTE_EUR) || defined(CONFIG_MACH_KACTIVELTE_KOR)
  782. static const u32 *es705_route_configs[] = {
  783. route_1Mic_WHS_NB_SWBypass, /* 0 */
  784. route_2Mic_SPK_NB_FO_NSOn, /* 1 */
  785. route_2Mic_HS_NB_NSOn, /* 2*/
  786. route_2Mic_SPK_NB_FO_NSOff, /* 3 */
  787. route_2Mic_HS_NB_NSOff, /* 4 */
  788. route_1Ch_AudioPB, /* 5 */
  789. route_2Ch_AudioPB, /* 6 */
  790. route_2Mic_AudioZoomInterview, /* 7 */
  791. route_2Mic_AudioZoomConversation, /* 8 */
  792. route_dummy, /* 9 */
  793. route_dummy, /* 10 */
  794. route_TTYVCO, /* 11 */
  795. route_TTYHCO, /* 12 */
  796. route_2Mic_ASR_AO, /* 13 */
  797. route_dummy, /* 14 */
  798. route_dummy, /* 15 */
  799. route_dummy, /* 16 */
  800. route_1Mic_HS_LB_SWBypass, /* 17 */
  801. route_1Mic_SPK_LB_SWBypass, /* 18 */
  802. route_1Mic_WHS_LB_SWBypass, /* 19 */
  803. route_dummy, /* 20 */
  804. route_1Mic_WHS_WB_SWBypass, /* 21 */
  805. route_2Mic_SPK_WB_FO_NSOn, /* 22 */
  806. route_2Mic_HS_WB_NSOn, /* 23 */
  807. route_2Mic_SPK_WB_FO_NSOff, /* 24 */
  808. route_2Mic_HS_WB_NSOff, /* 25 */
  809. route_voicesense_pdm, /* 26 */
  810. route_sensory_pdm, /* 27 */
  811. };
  812. #else
  813. static const u32 *es705_route_configs[] = {
  814. route_1Mic_WHS_NB_SWBypass, /* 0 */
  815. route_3Mic_SPK_NB_FO_NSOn, /* 1 */
  816. route_2Mic_HS_NB_NSOn, /* 2*/
  817. route_3Mic_SPK_NB_FO_NSOff, /* 3 */
  818. route_2Mic_HS_NB_NSOff, /* 4 */
  819. route_1Ch_AudioPB, /* 5 */
  820. route_2Ch_AudioPB, /* 6 */
  821. route_2Mic_AudioZoomInterview, /* 7 */
  822. route_2Mic_AudioZoomConversation, /* 8 */
  823. route_dummy, /* 9 */
  824. route_dummy, /* 10 */
  825. route_TTYVCO, /* 11 */
  826. route_TTYHCO, /* 12 */
  827. route_3Mic_ASR_AO, /* 13 */
  828. route_dummy, /* 14 */
  829. route_dummy, /* 15 */
  830. route_dummy, /* 16 */
  831. route_1Mic_HS_LB_SWBypass, /* 17 */
  832. route_1Mic_SPK_LB_SWBypass, /* 18 */
  833. route_1Mic_WHS_LB_SWBypass, /* 19 */
  834. route_dummy, /* 20 */
  835. route_1Mic_WHS_WB_SWBypass, /* 21 */
  836. route_3Mic_SPK_WB_FO_NSOn, /* 22 */
  837. route_2Mic_HS_WB_NSOn, /* 23 */
  838. route_3Mic_SPK_WB_FO_NSOff, /* 24 */
  839. route_2Mic_HS_WB_NSOff, /* 25 */
  840. route_voicesense_pdm, /* 26 */
  841. route_sensory_pdm, /* 27 */
  842. };
  843. #endif
  844. #endif