18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci// 38c2ecf20Sopenharmony_ci// ALSA SoC Audio driver for CS47L90 codec 48c2ecf20Sopenharmony_ci// 58c2ecf20Sopenharmony_ci// Copyright (C) 2015-2019 Cirrus Logic, Inc. and 68c2ecf20Sopenharmony_ci// Cirrus Logic International Semiconductor Ltd. 78c2ecf20Sopenharmony_ci// 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <linux/module.h> 108c2ecf20Sopenharmony_ci#include <linux/moduleparam.h> 118c2ecf20Sopenharmony_ci#include <linux/device.h> 128c2ecf20Sopenharmony_ci#include <linux/delay.h> 138c2ecf20Sopenharmony_ci#include <linux/init.h> 148c2ecf20Sopenharmony_ci#include <linux/pm.h> 158c2ecf20Sopenharmony_ci#include <linux/pm_runtime.h> 168c2ecf20Sopenharmony_ci#include <linux/regmap.h> 178c2ecf20Sopenharmony_ci#include <sound/core.h> 188c2ecf20Sopenharmony_ci#include <sound/pcm.h> 198c2ecf20Sopenharmony_ci#include <sound/pcm_params.h> 208c2ecf20Sopenharmony_ci#include <sound/soc.h> 218c2ecf20Sopenharmony_ci#include <sound/tlv.h> 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci#include <linux/irqchip/irq-madera.h> 248c2ecf20Sopenharmony_ci#include <linux/mfd/madera/core.h> 258c2ecf20Sopenharmony_ci#include <linux/mfd/madera/registers.h> 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci#include "madera.h" 288c2ecf20Sopenharmony_ci#include "wm_adsp.h" 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#define DRV_NAME "cs47l90-codec" 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci#define CS47L90_NUM_ADSP 7 338c2ecf20Sopenharmony_ci#define CS47L90_MONO_OUTPUTS 3 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_cistruct cs47l90 { 368c2ecf20Sopenharmony_ci struct madera_priv core; 378c2ecf20Sopenharmony_ci struct madera_fll fll[3]; 388c2ecf20Sopenharmony_ci}; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_cistatic const struct wm_adsp_region cs47l90_dsp1_regions[] = { 418c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_PM, .base = 0x080000 }, 428c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_ZM, .base = 0x0e0000 }, 438c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_XM, .base = 0x0a0000 }, 448c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_YM, .base = 0x0c0000 }, 458c2ecf20Sopenharmony_ci}; 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_cistatic const struct wm_adsp_region cs47l90_dsp2_regions[] = { 488c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_PM, .base = 0x100000 }, 498c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_ZM, .base = 0x160000 }, 508c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_XM, .base = 0x120000 }, 518c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_YM, .base = 0x140000 }, 528c2ecf20Sopenharmony_ci}; 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_cistatic const struct wm_adsp_region cs47l90_dsp3_regions[] = { 558c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_PM, .base = 0x180000 }, 568c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_ZM, .base = 0x1e0000 }, 578c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_XM, .base = 0x1a0000 }, 588c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_YM, .base = 0x1c0000 }, 598c2ecf20Sopenharmony_ci}; 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_cistatic const struct wm_adsp_region cs47l90_dsp4_regions[] = { 628c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_PM, .base = 0x200000 }, 638c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_ZM, .base = 0x260000 }, 648c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_XM, .base = 0x220000 }, 658c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_YM, .base = 0x240000 }, 668c2ecf20Sopenharmony_ci}; 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_cistatic const struct wm_adsp_region cs47l90_dsp5_regions[] = { 698c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_PM, .base = 0x280000 }, 708c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_ZM, .base = 0x2e0000 }, 718c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_XM, .base = 0x2a0000 }, 728c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_YM, .base = 0x2c0000 }, 738c2ecf20Sopenharmony_ci}; 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_cistatic const struct wm_adsp_region cs47l90_dsp6_regions[] = { 768c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_PM, .base = 0x300000 }, 778c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_ZM, .base = 0x360000 }, 788c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_XM, .base = 0x320000 }, 798c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_YM, .base = 0x340000 }, 808c2ecf20Sopenharmony_ci}; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_cistatic const struct wm_adsp_region cs47l90_dsp7_regions[] = { 838c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_PM, .base = 0x380000 }, 848c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_ZM, .base = 0x3e0000 }, 858c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_XM, .base = 0x3a0000 }, 868c2ecf20Sopenharmony_ci { .type = WMFW_ADSP2_YM, .base = 0x3c0000 }, 878c2ecf20Sopenharmony_ci}; 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_cistatic const struct wm_adsp_region *cs47l90_dsp_regions[] = { 908c2ecf20Sopenharmony_ci cs47l90_dsp1_regions, 918c2ecf20Sopenharmony_ci cs47l90_dsp2_regions, 928c2ecf20Sopenharmony_ci cs47l90_dsp3_regions, 938c2ecf20Sopenharmony_ci cs47l90_dsp4_regions, 948c2ecf20Sopenharmony_ci cs47l90_dsp5_regions, 958c2ecf20Sopenharmony_ci cs47l90_dsp6_regions, 968c2ecf20Sopenharmony_ci cs47l90_dsp7_regions, 978c2ecf20Sopenharmony_ci}; 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_cistatic const int cs47l90_dsp_control_bases[] = { 1008c2ecf20Sopenharmony_ci MADERA_DSP1_CONFIG_1, 1018c2ecf20Sopenharmony_ci MADERA_DSP2_CONFIG_1, 1028c2ecf20Sopenharmony_ci MADERA_DSP3_CONFIG_1, 1038c2ecf20Sopenharmony_ci MADERA_DSP4_CONFIG_1, 1048c2ecf20Sopenharmony_ci MADERA_DSP5_CONFIG_1, 1058c2ecf20Sopenharmony_ci MADERA_DSP6_CONFIG_1, 1068c2ecf20Sopenharmony_ci MADERA_DSP7_CONFIG_1, 1078c2ecf20Sopenharmony_ci}; 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_cistatic int cs47l90_adsp_power_ev(struct snd_soc_dapm_widget *w, 1108c2ecf20Sopenharmony_ci struct snd_kcontrol *kcontrol, 1118c2ecf20Sopenharmony_ci int event) 1128c2ecf20Sopenharmony_ci{ 1138c2ecf20Sopenharmony_ci struct snd_soc_component *component = 1148c2ecf20Sopenharmony_ci snd_soc_dapm_to_component(w->dapm); 1158c2ecf20Sopenharmony_ci struct cs47l90 *cs47l90 = snd_soc_component_get_drvdata(component); 1168c2ecf20Sopenharmony_ci struct madera_priv *priv = &cs47l90->core; 1178c2ecf20Sopenharmony_ci struct madera *madera = priv->madera; 1188c2ecf20Sopenharmony_ci unsigned int freq; 1198c2ecf20Sopenharmony_ci int ret; 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci ret = regmap_read(madera->regmap, MADERA_DSP_CLOCK_2, &freq); 1228c2ecf20Sopenharmony_ci if (ret != 0) { 1238c2ecf20Sopenharmony_ci dev_err(madera->dev, 1248c2ecf20Sopenharmony_ci "Failed to read MADERA_DSP_CLOCK_2: %d\n", ret); 1258c2ecf20Sopenharmony_ci return ret; 1268c2ecf20Sopenharmony_ci } 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci switch (event) { 1298c2ecf20Sopenharmony_ci case SND_SOC_DAPM_PRE_PMU: 1308c2ecf20Sopenharmony_ci ret = madera_set_adsp_clk(&cs47l90->core, w->shift, freq); 1318c2ecf20Sopenharmony_ci if (ret) 1328c2ecf20Sopenharmony_ci return ret; 1338c2ecf20Sopenharmony_ci break; 1348c2ecf20Sopenharmony_ci default: 1358c2ecf20Sopenharmony_ci break; 1368c2ecf20Sopenharmony_ci } 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci return wm_adsp_early_event(w, kcontrol, event); 1398c2ecf20Sopenharmony_ci} 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci#define CS47L90_NG_SRC(name, base) \ 1428c2ecf20Sopenharmony_ci SOC_SINGLE(name " NG HPOUT1L Switch", base, 0, 1, 0), \ 1438c2ecf20Sopenharmony_ci SOC_SINGLE(name " NG HPOUT1R Switch", base, 1, 1, 0), \ 1448c2ecf20Sopenharmony_ci SOC_SINGLE(name " NG HPOUT2L Switch", base, 2, 1, 0), \ 1458c2ecf20Sopenharmony_ci SOC_SINGLE(name " NG HPOUT2R Switch", base, 3, 1, 0), \ 1468c2ecf20Sopenharmony_ci SOC_SINGLE(name " NG HPOUT3L Switch", base, 4, 1, 0), \ 1478c2ecf20Sopenharmony_ci SOC_SINGLE(name " NG HPOUT3R Switch", base, 5, 1, 0), \ 1488c2ecf20Sopenharmony_ci SOC_SINGLE(name " NG SPKDAT1L Switch", base, 8, 1, 0), \ 1498c2ecf20Sopenharmony_ci SOC_SINGLE(name " NG SPKDAT1R Switch", base, 9, 1, 0) 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci#define CS47L90_RXANC_INPUT_ROUTES(widget, name) \ 1528c2ecf20Sopenharmony_ci { widget, NULL, name " NG Mux" }, \ 1538c2ecf20Sopenharmony_ci { name " NG Internal", NULL, "RXANC NG Clock" }, \ 1548c2ecf20Sopenharmony_ci { name " NG Internal", NULL, name " Channel" }, \ 1558c2ecf20Sopenharmony_ci { name " NG External", NULL, "RXANC NG External Clock" }, \ 1568c2ecf20Sopenharmony_ci { name " NG External", NULL, name " Channel" }, \ 1578c2ecf20Sopenharmony_ci { name " NG Mux", "None", name " Channel" }, \ 1588c2ecf20Sopenharmony_ci { name " NG Mux", "Internal", name " NG Internal" }, \ 1598c2ecf20Sopenharmony_ci { name " NG Mux", "External", name " NG External" }, \ 1608c2ecf20Sopenharmony_ci { name " Channel", "Left", name " Left Input" }, \ 1618c2ecf20Sopenharmony_ci { name " Channel", "Combine", name " Left Input" }, \ 1628c2ecf20Sopenharmony_ci { name " Channel", "Right", name " Right Input" }, \ 1638c2ecf20Sopenharmony_ci { name " Channel", "Combine", name " Right Input" }, \ 1648c2ecf20Sopenharmony_ci { name " Left Input", "IN1", "IN1L" }, \ 1658c2ecf20Sopenharmony_ci { name " Right Input", "IN1", "IN1R" }, \ 1668c2ecf20Sopenharmony_ci { name " Left Input", "IN2", "IN2L" }, \ 1678c2ecf20Sopenharmony_ci { name " Right Input", "IN2", "IN2R" }, \ 1688c2ecf20Sopenharmony_ci { name " Left Input", "IN3", "IN3L" }, \ 1698c2ecf20Sopenharmony_ci { name " Right Input", "IN3", "IN3R" }, \ 1708c2ecf20Sopenharmony_ci { name " Left Input", "IN4", "IN4L" }, \ 1718c2ecf20Sopenharmony_ci { name " Right Input", "IN4", "IN4R" }, \ 1728c2ecf20Sopenharmony_ci { name " Left Input", "IN5", "IN5L" }, \ 1738c2ecf20Sopenharmony_ci { name " Right Input", "IN5", "IN5R" } 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci#define CS47L90_RXANC_OUTPUT_ROUTES(widget, name) \ 1768c2ecf20Sopenharmony_ci { widget, NULL, name " ANC Source" }, \ 1778c2ecf20Sopenharmony_ci { name " ANC Source", "RXANCL", "RXANCL" }, \ 1788c2ecf20Sopenharmony_ci { name " ANC Source", "RXANCR", "RXANCR" } 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_cistatic const struct snd_kcontrol_new cs47l90_snd_controls[] = { 1818c2ecf20Sopenharmony_ciSOC_ENUM("IN1 OSR", madera_in_dmic_osr[0]), 1828c2ecf20Sopenharmony_ciSOC_ENUM("IN2 OSR", madera_in_dmic_osr[1]), 1838c2ecf20Sopenharmony_ciSOC_ENUM("IN3 OSR", madera_in_dmic_osr[2]), 1848c2ecf20Sopenharmony_ciSOC_ENUM("IN4 OSR", madera_in_dmic_osr[3]), 1858c2ecf20Sopenharmony_ciSOC_ENUM("IN5 OSR", madera_in_dmic_osr[4]), 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ciSOC_SINGLE_RANGE_TLV("IN1L Volume", MADERA_IN1L_CONTROL, 1888c2ecf20Sopenharmony_ci MADERA_IN1L_PGA_VOL_SHIFT, 0x40, 0x5f, 0, madera_ana_tlv), 1898c2ecf20Sopenharmony_ciSOC_SINGLE_RANGE_TLV("IN1R Volume", MADERA_IN1R_CONTROL, 1908c2ecf20Sopenharmony_ci MADERA_IN1R_PGA_VOL_SHIFT, 0x40, 0x5f, 0, madera_ana_tlv), 1918c2ecf20Sopenharmony_ciSOC_SINGLE_RANGE_TLV("IN2L Volume", MADERA_IN2L_CONTROL, 1928c2ecf20Sopenharmony_ci MADERA_IN2L_PGA_VOL_SHIFT, 0x40, 0x5f, 0, madera_ana_tlv), 1938c2ecf20Sopenharmony_ciSOC_SINGLE_RANGE_TLV("IN2R Volume", MADERA_IN2R_CONTROL, 1948c2ecf20Sopenharmony_ci MADERA_IN2R_PGA_VOL_SHIFT, 0x40, 0x5f, 0, madera_ana_tlv), 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ciSOC_ENUM("IN HPF Cutoff Frequency", madera_in_hpf_cut_enum), 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_ciSOC_SINGLE_EXT("IN1L LP Switch", MADERA_ADC_DIGITAL_VOLUME_1L, 1998c2ecf20Sopenharmony_ci MADERA_IN1L_LP_MODE_SHIFT, 1, 0, 2008c2ecf20Sopenharmony_ci snd_soc_get_volsw, madera_lp_mode_put), 2018c2ecf20Sopenharmony_ciSOC_SINGLE_EXT("IN1R LP Switch", MADERA_ADC_DIGITAL_VOLUME_1R, 2028c2ecf20Sopenharmony_ci MADERA_IN1R_LP_MODE_SHIFT, 1, 0, 2038c2ecf20Sopenharmony_ci snd_soc_get_volsw, madera_lp_mode_put), 2048c2ecf20Sopenharmony_ciSOC_SINGLE_EXT("IN2L LP Switch", MADERA_ADC_DIGITAL_VOLUME_2L, 2058c2ecf20Sopenharmony_ci MADERA_IN2L_LP_MODE_SHIFT, 1, 0, 2068c2ecf20Sopenharmony_ci snd_soc_get_volsw, madera_lp_mode_put), 2078c2ecf20Sopenharmony_ciSOC_SINGLE_EXT("IN2R LP Switch", MADERA_ADC_DIGITAL_VOLUME_2R, 2088c2ecf20Sopenharmony_ci MADERA_IN2R_LP_MODE_SHIFT, 1, 0, 2098c2ecf20Sopenharmony_ci snd_soc_get_volsw, madera_lp_mode_put), 2108c2ecf20Sopenharmony_ci 2118c2ecf20Sopenharmony_ciSOC_SINGLE("IN1L HPF Switch", MADERA_IN1L_CONTROL, 2128c2ecf20Sopenharmony_ci MADERA_IN1L_HPF_SHIFT, 1, 0), 2138c2ecf20Sopenharmony_ciSOC_SINGLE("IN1R HPF Switch", MADERA_IN1R_CONTROL, 2148c2ecf20Sopenharmony_ci MADERA_IN1R_HPF_SHIFT, 1, 0), 2158c2ecf20Sopenharmony_ciSOC_SINGLE("IN2L HPF Switch", MADERA_IN2L_CONTROL, 2168c2ecf20Sopenharmony_ci MADERA_IN2L_HPF_SHIFT, 1, 0), 2178c2ecf20Sopenharmony_ciSOC_SINGLE("IN2R HPF Switch", MADERA_IN2R_CONTROL, 2188c2ecf20Sopenharmony_ci MADERA_IN2R_HPF_SHIFT, 1, 0), 2198c2ecf20Sopenharmony_ciSOC_SINGLE("IN3L HPF Switch", MADERA_IN3L_CONTROL, 2208c2ecf20Sopenharmony_ci MADERA_IN3L_HPF_SHIFT, 1, 0), 2218c2ecf20Sopenharmony_ciSOC_SINGLE("IN3R HPF Switch", MADERA_IN3R_CONTROL, 2228c2ecf20Sopenharmony_ci MADERA_IN3R_HPF_SHIFT, 1, 0), 2238c2ecf20Sopenharmony_ciSOC_SINGLE("IN4L HPF Switch", MADERA_IN4L_CONTROL, 2248c2ecf20Sopenharmony_ci MADERA_IN4L_HPF_SHIFT, 1, 0), 2258c2ecf20Sopenharmony_ciSOC_SINGLE("IN4R HPF Switch", MADERA_IN4R_CONTROL, 2268c2ecf20Sopenharmony_ci MADERA_IN4R_HPF_SHIFT, 1, 0), 2278c2ecf20Sopenharmony_ciSOC_SINGLE("IN5L HPF Switch", MADERA_IN5L_CONTROL, 2288c2ecf20Sopenharmony_ci MADERA_IN5L_HPF_SHIFT, 1, 0), 2298c2ecf20Sopenharmony_ciSOC_SINGLE("IN5R HPF Switch", MADERA_IN5R_CONTROL, 2308c2ecf20Sopenharmony_ci MADERA_IN5R_HPF_SHIFT, 1, 0), 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("IN1L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_1L, 2338c2ecf20Sopenharmony_ci MADERA_IN1L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv), 2348c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("IN1R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_1R, 2358c2ecf20Sopenharmony_ci MADERA_IN1R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv), 2368c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("IN2L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_2L, 2378c2ecf20Sopenharmony_ci MADERA_IN2L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv), 2388c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("IN2R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_2R, 2398c2ecf20Sopenharmony_ci MADERA_IN2R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv), 2408c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("IN3L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_3L, 2418c2ecf20Sopenharmony_ci MADERA_IN3L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv), 2428c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("IN3R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_3R, 2438c2ecf20Sopenharmony_ci MADERA_IN3R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv), 2448c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("IN4L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_4L, 2458c2ecf20Sopenharmony_ci MADERA_IN4L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv), 2468c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("IN4R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_4R, 2478c2ecf20Sopenharmony_ci MADERA_IN4R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv), 2488c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("IN5L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_5L, 2498c2ecf20Sopenharmony_ci MADERA_IN5L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv), 2508c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("IN5R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_5R, 2518c2ecf20Sopenharmony_ci MADERA_IN5R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv), 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ciSOC_ENUM("Input Ramp Up", madera_in_vi_ramp), 2548c2ecf20Sopenharmony_ciSOC_ENUM("Input Ramp Down", madera_in_vd_ramp), 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ciSND_SOC_BYTES("RXANC Coefficients", MADERA_ANC_COEFF_START, 2578c2ecf20Sopenharmony_ci MADERA_ANC_COEFF_END - MADERA_ANC_COEFF_START + 1), 2588c2ecf20Sopenharmony_ciSND_SOC_BYTES("RXANCL Config", MADERA_FCL_FILTER_CONTROL, 1), 2598c2ecf20Sopenharmony_ciSND_SOC_BYTES("RXANCL Coefficients", MADERA_FCL_COEFF_START, 2608c2ecf20Sopenharmony_ci MADERA_FCL_COEFF_END - MADERA_FCL_COEFF_START + 1), 2618c2ecf20Sopenharmony_ciSND_SOC_BYTES("RXANCR Config", MADERA_FCR_FILTER_CONTROL, 1), 2628c2ecf20Sopenharmony_ciSND_SOC_BYTES("RXANCR Coefficients", MADERA_FCR_COEFF_START, 2638c2ecf20Sopenharmony_ci MADERA_FCR_COEFF_END - MADERA_FCR_COEFF_START + 1), 2648c2ecf20Sopenharmony_ci 2658c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("EQ1", MADERA_EQ1MIX_INPUT_1_SOURCE), 2668c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("EQ2", MADERA_EQ2MIX_INPUT_1_SOURCE), 2678c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("EQ3", MADERA_EQ3MIX_INPUT_1_SOURCE), 2688c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("EQ4", MADERA_EQ4MIX_INPUT_1_SOURCE), 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ciMADERA_EQ_CONTROL("EQ1 Coefficients", MADERA_EQ1_2), 2718c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ1 B1 Volume", MADERA_EQ1_1, MADERA_EQ1_B1_GAIN_SHIFT, 2728c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2738c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ1 B2 Volume", MADERA_EQ1_1, MADERA_EQ1_B2_GAIN_SHIFT, 2748c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2758c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ1 B3 Volume", MADERA_EQ1_1, MADERA_EQ1_B3_GAIN_SHIFT, 2768c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2778c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ1 B4 Volume", MADERA_EQ1_2, MADERA_EQ1_B4_GAIN_SHIFT, 2788c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2798c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ1 B5 Volume", MADERA_EQ1_2, MADERA_EQ1_B5_GAIN_SHIFT, 2808c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_ciMADERA_EQ_CONTROL("EQ2 Coefficients", MADERA_EQ2_2), 2838c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ2 B1 Volume", MADERA_EQ2_1, MADERA_EQ2_B1_GAIN_SHIFT, 2848c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2858c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ2 B2 Volume", MADERA_EQ2_1, MADERA_EQ2_B2_GAIN_SHIFT, 2868c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2878c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ2 B3 Volume", MADERA_EQ2_1, MADERA_EQ2_B3_GAIN_SHIFT, 2888c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2898c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ2 B4 Volume", MADERA_EQ2_2, MADERA_EQ2_B4_GAIN_SHIFT, 2908c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2918c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ2 B5 Volume", MADERA_EQ2_2, MADERA_EQ2_B5_GAIN_SHIFT, 2928c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ciMADERA_EQ_CONTROL("EQ3 Coefficients", MADERA_EQ3_2), 2958c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ3 B1 Volume", MADERA_EQ3_1, MADERA_EQ3_B1_GAIN_SHIFT, 2968c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2978c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ3 B2 Volume", MADERA_EQ3_1, MADERA_EQ3_B2_GAIN_SHIFT, 2988c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 2998c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ3 B3 Volume", MADERA_EQ3_1, MADERA_EQ3_B3_GAIN_SHIFT, 3008c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 3018c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ3 B4 Volume", MADERA_EQ3_2, MADERA_EQ3_B4_GAIN_SHIFT, 3028c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 3038c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ3 B5 Volume", MADERA_EQ3_2, MADERA_EQ3_B5_GAIN_SHIFT, 3048c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ciMADERA_EQ_CONTROL("EQ4 Coefficients", MADERA_EQ4_2), 3078c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ4 B1 Volume", MADERA_EQ4_1, MADERA_EQ4_B1_GAIN_SHIFT, 3088c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 3098c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ4 B2 Volume", MADERA_EQ4_1, MADERA_EQ4_B2_GAIN_SHIFT, 3108c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 3118c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ4 B3 Volume", MADERA_EQ4_1, MADERA_EQ4_B3_GAIN_SHIFT, 3128c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 3138c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ4 B4 Volume", MADERA_EQ4_2, MADERA_EQ4_B4_GAIN_SHIFT, 3148c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 3158c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("EQ4 B5 Volume", MADERA_EQ4_2, MADERA_EQ4_B5_GAIN_SHIFT, 3168c2ecf20Sopenharmony_ci 24, 0, madera_eq_tlv), 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DRC1L", MADERA_DRC1LMIX_INPUT_1_SOURCE), 3198c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DRC1R", MADERA_DRC1RMIX_INPUT_1_SOURCE), 3208c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DRC2L", MADERA_DRC2LMIX_INPUT_1_SOURCE), 3218c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DRC2R", MADERA_DRC2RMIX_INPUT_1_SOURCE), 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ciSND_SOC_BYTES_MASK("DRC1", MADERA_DRC1_CTRL1, 5, 3248c2ecf20Sopenharmony_ci MADERA_DRC1R_ENA | MADERA_DRC1L_ENA), 3258c2ecf20Sopenharmony_ciSND_SOC_BYTES_MASK("DRC2", MADERA_DRC2_CTRL1, 5, 3268c2ecf20Sopenharmony_ci MADERA_DRC2R_ENA | MADERA_DRC2L_ENA), 3278c2ecf20Sopenharmony_ci 3288c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("LHPF1", MADERA_HPLP1MIX_INPUT_1_SOURCE), 3298c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("LHPF2", MADERA_HPLP2MIX_INPUT_1_SOURCE), 3308c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("LHPF3", MADERA_HPLP3MIX_INPUT_1_SOURCE), 3318c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("LHPF4", MADERA_HPLP4MIX_INPUT_1_SOURCE), 3328c2ecf20Sopenharmony_ci 3338c2ecf20Sopenharmony_ciMADERA_LHPF_CONTROL("LHPF1 Coefficients", MADERA_HPLPF1_2), 3348c2ecf20Sopenharmony_ciMADERA_LHPF_CONTROL("LHPF2 Coefficients", MADERA_HPLPF2_2), 3358c2ecf20Sopenharmony_ciMADERA_LHPF_CONTROL("LHPF3 Coefficients", MADERA_HPLPF3_2), 3368c2ecf20Sopenharmony_ciMADERA_LHPF_CONTROL("LHPF4 Coefficients", MADERA_HPLPF4_2), 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_ciSOC_ENUM("LHPF1 Mode", madera_lhpf1_mode), 3398c2ecf20Sopenharmony_ciSOC_ENUM("LHPF2 Mode", madera_lhpf2_mode), 3408c2ecf20Sopenharmony_ciSOC_ENUM("LHPF3 Mode", madera_lhpf3_mode), 3418c2ecf20Sopenharmony_ciSOC_ENUM("LHPF4 Mode", madera_lhpf4_mode), 3428c2ecf20Sopenharmony_ci 3438c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ISRC1 FSL", madera_isrc_fsl[0]), 3448c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ISRC2 FSL", madera_isrc_fsl[1]), 3458c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ISRC3 FSL", madera_isrc_fsl[2]), 3468c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ISRC4 FSL", madera_isrc_fsl[3]), 3478c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ISRC1 FSH", madera_isrc_fsh[0]), 3488c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ISRC2 FSH", madera_isrc_fsh[1]), 3498c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ISRC3 FSH", madera_isrc_fsh[2]), 3508c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ISRC4 FSH", madera_isrc_fsh[3]), 3518c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ASRC1 Rate 1", madera_asrc1_rate[0]), 3528c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ASRC1 Rate 2", madera_asrc1_rate[1]), 3538c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ASRC2 Rate 1", madera_asrc2_rate[0]), 3548c2ecf20Sopenharmony_ciMADERA_RATE_ENUM("ASRC2 Rate 2", madera_asrc2_rate[1]), 3558c2ecf20Sopenharmony_ci 3568c2ecf20Sopenharmony_ciWM_ADSP2_PRELOAD_SWITCH("DSP1", 1), 3578c2ecf20Sopenharmony_ciWM_ADSP2_PRELOAD_SWITCH("DSP2", 2), 3588c2ecf20Sopenharmony_ciWM_ADSP2_PRELOAD_SWITCH("DSP3", 3), 3598c2ecf20Sopenharmony_ciWM_ADSP2_PRELOAD_SWITCH("DSP4", 4), 3608c2ecf20Sopenharmony_ciWM_ADSP2_PRELOAD_SWITCH("DSP5", 5), 3618c2ecf20Sopenharmony_ciWM_ADSP2_PRELOAD_SWITCH("DSP6", 6), 3628c2ecf20Sopenharmony_ciWM_ADSP2_PRELOAD_SWITCH("DSP7", 7), 3638c2ecf20Sopenharmony_ci 3648c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP1L", MADERA_DSP1LMIX_INPUT_1_SOURCE), 3658c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP1R", MADERA_DSP1RMIX_INPUT_1_SOURCE), 3668c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP2L", MADERA_DSP2LMIX_INPUT_1_SOURCE), 3678c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP2R", MADERA_DSP2RMIX_INPUT_1_SOURCE), 3688c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP3L", MADERA_DSP3LMIX_INPUT_1_SOURCE), 3698c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP3R", MADERA_DSP3RMIX_INPUT_1_SOURCE), 3708c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP4L", MADERA_DSP4LMIX_INPUT_1_SOURCE), 3718c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP4R", MADERA_DSP4RMIX_INPUT_1_SOURCE), 3728c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP5L", MADERA_DSP5LMIX_INPUT_1_SOURCE), 3738c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP5R", MADERA_DSP5RMIX_INPUT_1_SOURCE), 3748c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP6L", MADERA_DSP6LMIX_INPUT_1_SOURCE), 3758c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP6R", MADERA_DSP6RMIX_INPUT_1_SOURCE), 3768c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP7L", MADERA_DSP7LMIX_INPUT_1_SOURCE), 3778c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("DSP7R", MADERA_DSP7RMIX_INPUT_1_SOURCE), 3788c2ecf20Sopenharmony_ci 3798c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("Noise Generator Volume", MADERA_COMFORT_NOISE_GENERATOR, 3808c2ecf20Sopenharmony_ci MADERA_NOISE_GEN_GAIN_SHIFT, 0x16, 0, madera_noise_tlv), 3818c2ecf20Sopenharmony_ci 3828c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("HPOUT1L", MADERA_OUT1LMIX_INPUT_1_SOURCE), 3838c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("HPOUT1R", MADERA_OUT1RMIX_INPUT_1_SOURCE), 3848c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("HPOUT2L", MADERA_OUT2LMIX_INPUT_1_SOURCE), 3858c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("HPOUT2R", MADERA_OUT2RMIX_INPUT_1_SOURCE), 3868c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("HPOUT3L", MADERA_OUT3LMIX_INPUT_1_SOURCE), 3878c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("HPOUT3R", MADERA_OUT3RMIX_INPUT_1_SOURCE), 3888c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("SPKDAT1L", MADERA_OUT5LMIX_INPUT_1_SOURCE), 3898c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("SPKDAT1R", MADERA_OUT5RMIX_INPUT_1_SOURCE), 3908c2ecf20Sopenharmony_ci 3918c2ecf20Sopenharmony_ciSOC_SINGLE("HPOUT1 SC Protect Switch", MADERA_HP1_SHORT_CIRCUIT_CTRL, 3928c2ecf20Sopenharmony_ci MADERA_HP1_SC_ENA_SHIFT, 1, 0), 3938c2ecf20Sopenharmony_ciSOC_SINGLE("HPOUT2 SC Protect Switch", MADERA_HP2_SHORT_CIRCUIT_CTRL, 3948c2ecf20Sopenharmony_ci MADERA_HP2_SC_ENA_SHIFT, 1, 0), 3958c2ecf20Sopenharmony_ciSOC_SINGLE("HPOUT3 SC Protect Switch", MADERA_HP3_SHORT_CIRCUIT_CTRL, 3968c2ecf20Sopenharmony_ci MADERA_HP3_SC_ENA_SHIFT, 1, 0), 3978c2ecf20Sopenharmony_ci 3988c2ecf20Sopenharmony_ciSOC_SINGLE("SPKDAT1 High Performance Switch", MADERA_OUTPUT_PATH_CONFIG_5L, 3998c2ecf20Sopenharmony_ci MADERA_OUT5_OSR_SHIFT, 1, 0), 4008c2ecf20Sopenharmony_ci 4018c2ecf20Sopenharmony_ciSOC_DOUBLE_R("HPOUT1 Digital Switch", MADERA_DAC_DIGITAL_VOLUME_1L, 4028c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_1R, MADERA_OUT1L_MUTE_SHIFT, 1, 1), 4038c2ecf20Sopenharmony_ciSOC_DOUBLE_R("HPOUT2 Digital Switch", MADERA_DAC_DIGITAL_VOLUME_2L, 4048c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_2R, MADERA_OUT2L_MUTE_SHIFT, 1, 1), 4058c2ecf20Sopenharmony_ciSOC_DOUBLE_R("HPOUT3 Digital Switch", MADERA_DAC_DIGITAL_VOLUME_3L, 4068c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_3R, MADERA_OUT3L_MUTE_SHIFT, 1, 1), 4078c2ecf20Sopenharmony_ciSOC_DOUBLE_R("SPKDAT1 Digital Switch", MADERA_DAC_DIGITAL_VOLUME_5L, 4088c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_5R, MADERA_OUT5L_MUTE_SHIFT, 1, 1), 4098c2ecf20Sopenharmony_ci 4108c2ecf20Sopenharmony_ciSOC_DOUBLE_R_TLV("HPOUT1 Digital Volume", MADERA_DAC_DIGITAL_VOLUME_1L, 4118c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_1R, MADERA_OUT1L_VOL_SHIFT, 4128c2ecf20Sopenharmony_ci 0xbf, 0, madera_digital_tlv), 4138c2ecf20Sopenharmony_ciSOC_DOUBLE_R_TLV("HPOUT2 Digital Volume", MADERA_DAC_DIGITAL_VOLUME_2L, 4148c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_2R, MADERA_OUT2L_VOL_SHIFT, 4158c2ecf20Sopenharmony_ci 0xbf, 0, madera_digital_tlv), 4168c2ecf20Sopenharmony_ciSOC_DOUBLE_R_TLV("HPOUT3 Digital Volume", MADERA_DAC_DIGITAL_VOLUME_3L, 4178c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_3R, MADERA_OUT3L_VOL_SHIFT, 4188c2ecf20Sopenharmony_ci 0xbf, 0, madera_digital_tlv), 4198c2ecf20Sopenharmony_ciSOC_DOUBLE_R_TLV("SPKDAT1 Digital Volume", MADERA_DAC_DIGITAL_VOLUME_5L, 4208c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_5R, MADERA_OUT5L_VOL_SHIFT, 4218c2ecf20Sopenharmony_ci 0xbf, 0, madera_digital_tlv), 4228c2ecf20Sopenharmony_ci 4238c2ecf20Sopenharmony_ciSOC_DOUBLE("SPKDAT1 Switch", MADERA_PDM_SPK1_CTRL_1, MADERA_SPK1L_MUTE_SHIFT, 4248c2ecf20Sopenharmony_ci MADERA_SPK1R_MUTE_SHIFT, 1, 1), 4258c2ecf20Sopenharmony_ci 4268c2ecf20Sopenharmony_ciSOC_ENUM("Output Ramp Up", madera_out_vi_ramp), 4278c2ecf20Sopenharmony_ciSOC_ENUM("Output Ramp Down", madera_out_vd_ramp), 4288c2ecf20Sopenharmony_ci 4298c2ecf20Sopenharmony_ciSOC_SINGLE("Noise Gate Switch", MADERA_NOISE_GATE_CONTROL, 4308c2ecf20Sopenharmony_ci MADERA_NGATE_ENA_SHIFT, 1, 0), 4318c2ecf20Sopenharmony_ciSOC_SINGLE_TLV("Noise Gate Threshold Volume", MADERA_NOISE_GATE_CONTROL, 4328c2ecf20Sopenharmony_ci MADERA_NGATE_THR_SHIFT, 7, 1, madera_ng_tlv), 4338c2ecf20Sopenharmony_ciSOC_ENUM("Noise Gate Hold", madera_ng_hold), 4348c2ecf20Sopenharmony_ci 4358c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC1RX Width", madera_dfc_width[0], 4368c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4378c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC1RX Type", madera_dfc_type[0], 4388c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4398c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC1TX Width", madera_dfc_width[1], 4408c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4418c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC1TX Type", madera_dfc_type[1], 4428c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4438c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC2RX Width", madera_dfc_width[2], 4448c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4458c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC2RX Type", madera_dfc_type[2], 4468c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4478c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC2TX Width", madera_dfc_width[3], 4488c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4498c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC2TX Type", madera_dfc_type[3], 4508c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4518c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC3RX Width", madera_dfc_width[4], 4528c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4538c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC3RX Type", madera_dfc_type[4], 4548c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4558c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC3TX Width", madera_dfc_width[5], 4568c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4578c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC3TX Type", madera_dfc_type[5], 4588c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4598c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC4RX Width", madera_dfc_width[6], 4608c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4618c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC4RX Type", madera_dfc_type[6], 4628c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4638c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC4TX Width", madera_dfc_width[7], 4648c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4658c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC4TX Type", madera_dfc_type[7], 4668c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4678c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC5RX Width", madera_dfc_width[8], 4688c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4698c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC5RX Type", madera_dfc_type[8], 4708c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4718c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC5TX Width", madera_dfc_width[9], 4728c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4738c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC5TX Type", madera_dfc_type[9], 4748c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4758c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC6RX Width", madera_dfc_width[10], 4768c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4778c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC6RX Type", madera_dfc_type[10], 4788c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4798c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC6TX Width", madera_dfc_width[11], 4808c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4818c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC6TX Type", madera_dfc_type[11], 4828c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4838c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC7RX Width", madera_dfc_width[12], 4848c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4858c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC7RX Type", madera_dfc_type[12], 4868c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4878c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC7TX Width", madera_dfc_width[13], 4888c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4898c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC7TX Type", madera_dfc_type[13], 4908c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4918c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC8RX Width", madera_dfc_width[14], 4928c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4938c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC8RX Type", madera_dfc_type[14], 4948c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4958c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC8TX Width", madera_dfc_width[15], 4968c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4978c2ecf20Sopenharmony_ciSOC_ENUM_EXT("DFC8TX Type", madera_dfc_type[15], 4988c2ecf20Sopenharmony_ci snd_soc_get_enum_double, madera_dfc_put), 4998c2ecf20Sopenharmony_ci 5008c2ecf20Sopenharmony_ciCS47L90_NG_SRC("HPOUT1L", MADERA_NOISE_GATE_SELECT_1L), 5018c2ecf20Sopenharmony_ciCS47L90_NG_SRC("HPOUT1R", MADERA_NOISE_GATE_SELECT_1R), 5028c2ecf20Sopenharmony_ciCS47L90_NG_SRC("HPOUT2L", MADERA_NOISE_GATE_SELECT_2L), 5038c2ecf20Sopenharmony_ciCS47L90_NG_SRC("HPOUT2R", MADERA_NOISE_GATE_SELECT_2R), 5048c2ecf20Sopenharmony_ciCS47L90_NG_SRC("HPOUT3L", MADERA_NOISE_GATE_SELECT_3L), 5058c2ecf20Sopenharmony_ciCS47L90_NG_SRC("HPOUT3R", MADERA_NOISE_GATE_SELECT_3R), 5068c2ecf20Sopenharmony_ciCS47L90_NG_SRC("SPKDAT1L", MADERA_NOISE_GATE_SELECT_5L), 5078c2ecf20Sopenharmony_ciCS47L90_NG_SRC("SPKDAT1R", MADERA_NOISE_GATE_SELECT_5R), 5088c2ecf20Sopenharmony_ci 5098c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF1TX1", MADERA_AIF1TX1MIX_INPUT_1_SOURCE), 5108c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF1TX2", MADERA_AIF1TX2MIX_INPUT_1_SOURCE), 5118c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF1TX3", MADERA_AIF1TX3MIX_INPUT_1_SOURCE), 5128c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF1TX4", MADERA_AIF1TX4MIX_INPUT_1_SOURCE), 5138c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF1TX5", MADERA_AIF1TX5MIX_INPUT_1_SOURCE), 5148c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF1TX6", MADERA_AIF1TX6MIX_INPUT_1_SOURCE), 5158c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF1TX7", MADERA_AIF1TX7MIX_INPUT_1_SOURCE), 5168c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF1TX8", MADERA_AIF1TX8MIX_INPUT_1_SOURCE), 5178c2ecf20Sopenharmony_ci 5188c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF2TX1", MADERA_AIF2TX1MIX_INPUT_1_SOURCE), 5198c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF2TX2", MADERA_AIF2TX2MIX_INPUT_1_SOURCE), 5208c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF2TX3", MADERA_AIF2TX3MIX_INPUT_1_SOURCE), 5218c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF2TX4", MADERA_AIF2TX4MIX_INPUT_1_SOURCE), 5228c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF2TX5", MADERA_AIF2TX5MIX_INPUT_1_SOURCE), 5238c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF2TX6", MADERA_AIF2TX6MIX_INPUT_1_SOURCE), 5248c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF2TX7", MADERA_AIF2TX7MIX_INPUT_1_SOURCE), 5258c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF2TX8", MADERA_AIF2TX8MIX_INPUT_1_SOURCE), 5268c2ecf20Sopenharmony_ci 5278c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF3TX1", MADERA_AIF3TX1MIX_INPUT_1_SOURCE), 5288c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF3TX2", MADERA_AIF3TX2MIX_INPUT_1_SOURCE), 5298c2ecf20Sopenharmony_ci 5308c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF4TX1", MADERA_AIF4TX1MIX_INPUT_1_SOURCE), 5318c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("AIF4TX2", MADERA_AIF4TX2MIX_INPUT_1_SOURCE), 5328c2ecf20Sopenharmony_ci 5338c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("SLIMTX1", MADERA_SLIMTX1MIX_INPUT_1_SOURCE), 5348c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("SLIMTX2", MADERA_SLIMTX2MIX_INPUT_1_SOURCE), 5358c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("SLIMTX3", MADERA_SLIMTX3MIX_INPUT_1_SOURCE), 5368c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("SLIMTX4", MADERA_SLIMTX4MIX_INPUT_1_SOURCE), 5378c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("SLIMTX5", MADERA_SLIMTX5MIX_INPUT_1_SOURCE), 5388c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("SLIMTX6", MADERA_SLIMTX6MIX_INPUT_1_SOURCE), 5398c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("SLIMTX7", MADERA_SLIMTX7MIX_INPUT_1_SOURCE), 5408c2ecf20Sopenharmony_ciMADERA_MIXER_CONTROLS("SLIMTX8", MADERA_SLIMTX8MIX_INPUT_1_SOURCE), 5418c2ecf20Sopenharmony_ci 5428c2ecf20Sopenharmony_ciMADERA_GAINMUX_CONTROLS("SPDIF1TX1", MADERA_SPDIF1TX1MIX_INPUT_1_SOURCE), 5438c2ecf20Sopenharmony_ciMADERA_GAINMUX_CONTROLS("SPDIF1TX2", MADERA_SPDIF1TX2MIX_INPUT_1_SOURCE), 5448c2ecf20Sopenharmony_ci 5458c2ecf20Sopenharmony_ciWM_ADSP_FW_CONTROL("DSP1", 0), 5468c2ecf20Sopenharmony_ciWM_ADSP_FW_CONTROL("DSP2", 1), 5478c2ecf20Sopenharmony_ciWM_ADSP_FW_CONTROL("DSP3", 2), 5488c2ecf20Sopenharmony_ciWM_ADSP_FW_CONTROL("DSP4", 3), 5498c2ecf20Sopenharmony_ciWM_ADSP_FW_CONTROL("DSP5", 4), 5508c2ecf20Sopenharmony_ciWM_ADSP_FW_CONTROL("DSP6", 5), 5518c2ecf20Sopenharmony_ciWM_ADSP_FW_CONTROL("DSP7", 6), 5528c2ecf20Sopenharmony_ci}; 5538c2ecf20Sopenharmony_ci 5548c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(EQ1, MADERA_EQ1MIX_INPUT_1_SOURCE); 5558c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(EQ2, MADERA_EQ2MIX_INPUT_1_SOURCE); 5568c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(EQ3, MADERA_EQ3MIX_INPUT_1_SOURCE); 5578c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(EQ4, MADERA_EQ4MIX_INPUT_1_SOURCE); 5588c2ecf20Sopenharmony_ci 5598c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DRC1L, MADERA_DRC1LMIX_INPUT_1_SOURCE); 5608c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DRC1R, MADERA_DRC1RMIX_INPUT_1_SOURCE); 5618c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DRC2L, MADERA_DRC2LMIX_INPUT_1_SOURCE); 5628c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DRC2R, MADERA_DRC2RMIX_INPUT_1_SOURCE); 5638c2ecf20Sopenharmony_ci 5648c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(LHPF1, MADERA_HPLP1MIX_INPUT_1_SOURCE); 5658c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(LHPF2, MADERA_HPLP2MIX_INPUT_1_SOURCE); 5668c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(LHPF3, MADERA_HPLP3MIX_INPUT_1_SOURCE); 5678c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(LHPF4, MADERA_HPLP4MIX_INPUT_1_SOURCE); 5688c2ecf20Sopenharmony_ci 5698c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP1L, MADERA_DSP1LMIX_INPUT_1_SOURCE); 5708c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP1R, MADERA_DSP1RMIX_INPUT_1_SOURCE); 5718c2ecf20Sopenharmony_ciMADERA_DSP_AUX_ENUMS(DSP1, MADERA_DSP1AUX1MIX_INPUT_1_SOURCE); 5728c2ecf20Sopenharmony_ci 5738c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP2L, MADERA_DSP2LMIX_INPUT_1_SOURCE); 5748c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP2R, MADERA_DSP2RMIX_INPUT_1_SOURCE); 5758c2ecf20Sopenharmony_ciMADERA_DSP_AUX_ENUMS(DSP2, MADERA_DSP2AUX1MIX_INPUT_1_SOURCE); 5768c2ecf20Sopenharmony_ci 5778c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP3L, MADERA_DSP3LMIX_INPUT_1_SOURCE); 5788c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP3R, MADERA_DSP3RMIX_INPUT_1_SOURCE); 5798c2ecf20Sopenharmony_ciMADERA_DSP_AUX_ENUMS(DSP3, MADERA_DSP3AUX1MIX_INPUT_1_SOURCE); 5808c2ecf20Sopenharmony_ci 5818c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP4L, MADERA_DSP4LMIX_INPUT_1_SOURCE); 5828c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP4R, MADERA_DSP4RMIX_INPUT_1_SOURCE); 5838c2ecf20Sopenharmony_ciMADERA_DSP_AUX_ENUMS(DSP4, MADERA_DSP4AUX1MIX_INPUT_1_SOURCE); 5848c2ecf20Sopenharmony_ci 5858c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP5L, MADERA_DSP5LMIX_INPUT_1_SOURCE); 5868c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP5R, MADERA_DSP5RMIX_INPUT_1_SOURCE); 5878c2ecf20Sopenharmony_ciMADERA_DSP_AUX_ENUMS(DSP5, MADERA_DSP5AUX1MIX_INPUT_1_SOURCE); 5888c2ecf20Sopenharmony_ci 5898c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP6L, MADERA_DSP6LMIX_INPUT_1_SOURCE); 5908c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP6R, MADERA_DSP6RMIX_INPUT_1_SOURCE); 5918c2ecf20Sopenharmony_ciMADERA_DSP_AUX_ENUMS(DSP6, MADERA_DSP6AUX1MIX_INPUT_1_SOURCE); 5928c2ecf20Sopenharmony_ci 5938c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP7L, MADERA_DSP7LMIX_INPUT_1_SOURCE); 5948c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(DSP7R, MADERA_DSP7RMIX_INPUT_1_SOURCE); 5958c2ecf20Sopenharmony_ciMADERA_DSP_AUX_ENUMS(DSP7, MADERA_DSP7AUX1MIX_INPUT_1_SOURCE); 5968c2ecf20Sopenharmony_ci 5978c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(PWM1, MADERA_PWM1MIX_INPUT_1_SOURCE); 5988c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(PWM2, MADERA_PWM2MIX_INPUT_1_SOURCE); 5998c2ecf20Sopenharmony_ci 6008c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(OUT1L, MADERA_OUT1LMIX_INPUT_1_SOURCE); 6018c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(OUT1R, MADERA_OUT1RMIX_INPUT_1_SOURCE); 6028c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(OUT2L, MADERA_OUT2LMIX_INPUT_1_SOURCE); 6038c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(OUT2R, MADERA_OUT2RMIX_INPUT_1_SOURCE); 6048c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(OUT3L, MADERA_OUT3LMIX_INPUT_1_SOURCE); 6058c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(OUT3R, MADERA_OUT3RMIX_INPUT_1_SOURCE); 6068c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(SPKDAT1L, MADERA_OUT5LMIX_INPUT_1_SOURCE); 6078c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(SPKDAT1R, MADERA_OUT5RMIX_INPUT_1_SOURCE); 6088c2ecf20Sopenharmony_ci 6098c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF1TX1, MADERA_AIF1TX1MIX_INPUT_1_SOURCE); 6108c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF1TX2, MADERA_AIF1TX2MIX_INPUT_1_SOURCE); 6118c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF1TX3, MADERA_AIF1TX3MIX_INPUT_1_SOURCE); 6128c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF1TX4, MADERA_AIF1TX4MIX_INPUT_1_SOURCE); 6138c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF1TX5, MADERA_AIF1TX5MIX_INPUT_1_SOURCE); 6148c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF1TX6, MADERA_AIF1TX6MIX_INPUT_1_SOURCE); 6158c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF1TX7, MADERA_AIF1TX7MIX_INPUT_1_SOURCE); 6168c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF1TX8, MADERA_AIF1TX8MIX_INPUT_1_SOURCE); 6178c2ecf20Sopenharmony_ci 6188c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF2TX1, MADERA_AIF2TX1MIX_INPUT_1_SOURCE); 6198c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF2TX2, MADERA_AIF2TX2MIX_INPUT_1_SOURCE); 6208c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF2TX3, MADERA_AIF2TX3MIX_INPUT_1_SOURCE); 6218c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF2TX4, MADERA_AIF2TX4MIX_INPUT_1_SOURCE); 6228c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF2TX5, MADERA_AIF2TX5MIX_INPUT_1_SOURCE); 6238c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF2TX6, MADERA_AIF2TX6MIX_INPUT_1_SOURCE); 6248c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF2TX7, MADERA_AIF2TX7MIX_INPUT_1_SOURCE); 6258c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF2TX8, MADERA_AIF2TX8MIX_INPUT_1_SOURCE); 6268c2ecf20Sopenharmony_ci 6278c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF3TX1, MADERA_AIF3TX1MIX_INPUT_1_SOURCE); 6288c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF3TX2, MADERA_AIF3TX2MIX_INPUT_1_SOURCE); 6298c2ecf20Sopenharmony_ci 6308c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF4TX1, MADERA_AIF4TX1MIX_INPUT_1_SOURCE); 6318c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(AIF4TX2, MADERA_AIF4TX2MIX_INPUT_1_SOURCE); 6328c2ecf20Sopenharmony_ci 6338c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(SLIMTX1, MADERA_SLIMTX1MIX_INPUT_1_SOURCE); 6348c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(SLIMTX2, MADERA_SLIMTX2MIX_INPUT_1_SOURCE); 6358c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(SLIMTX3, MADERA_SLIMTX3MIX_INPUT_1_SOURCE); 6368c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(SLIMTX4, MADERA_SLIMTX4MIX_INPUT_1_SOURCE); 6378c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(SLIMTX5, MADERA_SLIMTX5MIX_INPUT_1_SOURCE); 6388c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(SLIMTX6, MADERA_SLIMTX6MIX_INPUT_1_SOURCE); 6398c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(SLIMTX7, MADERA_SLIMTX7MIX_INPUT_1_SOURCE); 6408c2ecf20Sopenharmony_ciMADERA_MIXER_ENUMS(SLIMTX8, MADERA_SLIMTX8MIX_INPUT_1_SOURCE); 6418c2ecf20Sopenharmony_ci 6428c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(SPD1TX1, MADERA_SPDIF1TX1MIX_INPUT_1_SOURCE); 6438c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(SPD1TX2, MADERA_SPDIF1TX2MIX_INPUT_1_SOURCE); 6448c2ecf20Sopenharmony_ci 6458c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ASRC1IN1L, MADERA_ASRC1_1LMIX_INPUT_1_SOURCE); 6468c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ASRC1IN1R, MADERA_ASRC1_1RMIX_INPUT_1_SOURCE); 6478c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ASRC1IN2L, MADERA_ASRC1_2LMIX_INPUT_1_SOURCE); 6488c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ASRC1IN2R, MADERA_ASRC1_2RMIX_INPUT_1_SOURCE); 6498c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ASRC2IN1L, MADERA_ASRC2_1LMIX_INPUT_1_SOURCE); 6508c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ASRC2IN1R, MADERA_ASRC2_1RMIX_INPUT_1_SOURCE); 6518c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ASRC2IN2L, MADERA_ASRC2_2LMIX_INPUT_1_SOURCE); 6528c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ASRC2IN2R, MADERA_ASRC2_2RMIX_INPUT_1_SOURCE); 6538c2ecf20Sopenharmony_ci 6548c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC1INT1, MADERA_ISRC1INT1MIX_INPUT_1_SOURCE); 6558c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC1INT2, MADERA_ISRC1INT2MIX_INPUT_1_SOURCE); 6568c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC1INT3, MADERA_ISRC1INT3MIX_INPUT_1_SOURCE); 6578c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC1INT4, MADERA_ISRC1INT4MIX_INPUT_1_SOURCE); 6588c2ecf20Sopenharmony_ci 6598c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC1DEC1, MADERA_ISRC1DEC1MIX_INPUT_1_SOURCE); 6608c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC1DEC2, MADERA_ISRC1DEC2MIX_INPUT_1_SOURCE); 6618c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC1DEC3, MADERA_ISRC1DEC3MIX_INPUT_1_SOURCE); 6628c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC1DEC4, MADERA_ISRC1DEC4MIX_INPUT_1_SOURCE); 6638c2ecf20Sopenharmony_ci 6648c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC2INT1, MADERA_ISRC2INT1MIX_INPUT_1_SOURCE); 6658c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC2INT2, MADERA_ISRC2INT2MIX_INPUT_1_SOURCE); 6668c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC2INT3, MADERA_ISRC2INT3MIX_INPUT_1_SOURCE); 6678c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC2INT4, MADERA_ISRC2INT4MIX_INPUT_1_SOURCE); 6688c2ecf20Sopenharmony_ci 6698c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC2DEC1, MADERA_ISRC2DEC1MIX_INPUT_1_SOURCE); 6708c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC2DEC2, MADERA_ISRC2DEC2MIX_INPUT_1_SOURCE); 6718c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC2DEC3, MADERA_ISRC2DEC3MIX_INPUT_1_SOURCE); 6728c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC2DEC4, MADERA_ISRC2DEC4MIX_INPUT_1_SOURCE); 6738c2ecf20Sopenharmony_ci 6748c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC3INT1, MADERA_ISRC3INT1MIX_INPUT_1_SOURCE); 6758c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC3INT2, MADERA_ISRC3INT2MIX_INPUT_1_SOURCE); 6768c2ecf20Sopenharmony_ci 6778c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC3DEC1, MADERA_ISRC3DEC1MIX_INPUT_1_SOURCE); 6788c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC3DEC2, MADERA_ISRC3DEC2MIX_INPUT_1_SOURCE); 6798c2ecf20Sopenharmony_ci 6808c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC4INT1, MADERA_ISRC4INT1MIX_INPUT_1_SOURCE); 6818c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC4INT2, MADERA_ISRC4INT2MIX_INPUT_1_SOURCE); 6828c2ecf20Sopenharmony_ci 6838c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC4DEC1, MADERA_ISRC4DEC1MIX_INPUT_1_SOURCE); 6848c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(ISRC4DEC2, MADERA_ISRC4DEC2MIX_INPUT_1_SOURCE); 6858c2ecf20Sopenharmony_ci 6868c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(DFC1, MADERA_DFC1MIX_INPUT_1_SOURCE); 6878c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(DFC2, MADERA_DFC2MIX_INPUT_1_SOURCE); 6888c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(DFC3, MADERA_DFC3MIX_INPUT_1_SOURCE); 6898c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(DFC4, MADERA_DFC4MIX_INPUT_1_SOURCE); 6908c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(DFC5, MADERA_DFC5MIX_INPUT_1_SOURCE); 6918c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(DFC6, MADERA_DFC6MIX_INPUT_1_SOURCE); 6928c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(DFC7, MADERA_DFC7MIX_INPUT_1_SOURCE); 6938c2ecf20Sopenharmony_ciMADERA_MUX_ENUMS(DFC8, MADERA_DFC8MIX_INPUT_1_SOURCE); 6948c2ecf20Sopenharmony_ci 6958c2ecf20Sopenharmony_cistatic const char * const cs47l90_aec_loopback_texts[] = { 6968c2ecf20Sopenharmony_ci "HPOUT1L", "HPOUT1R", "HPOUT2L", "HPOUT2R", "HPOUT3L", "HPOUT3R", 6978c2ecf20Sopenharmony_ci "SPKDAT1L", "SPKDAT1R", 6988c2ecf20Sopenharmony_ci}; 6998c2ecf20Sopenharmony_ci 7008c2ecf20Sopenharmony_cistatic const unsigned int cs47l90_aec_loopback_values[] = { 7018c2ecf20Sopenharmony_ci 0, 1, 2, 3, 4, 5, 8, 9, 7028c2ecf20Sopenharmony_ci}; 7038c2ecf20Sopenharmony_ci 7048c2ecf20Sopenharmony_cistatic const struct soc_enum cs47l90_aec1_loopback = 7058c2ecf20Sopenharmony_ci SOC_VALUE_ENUM_SINGLE(MADERA_DAC_AEC_CONTROL_1, 7068c2ecf20Sopenharmony_ci MADERA_AEC1_LOOPBACK_SRC_SHIFT, 0xf, 7078c2ecf20Sopenharmony_ci ARRAY_SIZE(cs47l90_aec_loopback_texts), 7088c2ecf20Sopenharmony_ci cs47l90_aec_loopback_texts, 7098c2ecf20Sopenharmony_ci cs47l90_aec_loopback_values); 7108c2ecf20Sopenharmony_ci 7118c2ecf20Sopenharmony_cistatic const struct soc_enum cs47l90_aec2_loopback = 7128c2ecf20Sopenharmony_ci SOC_VALUE_ENUM_SINGLE(MADERA_DAC_AEC_CONTROL_2, 7138c2ecf20Sopenharmony_ci MADERA_AEC2_LOOPBACK_SRC_SHIFT, 0xf, 7148c2ecf20Sopenharmony_ci ARRAY_SIZE(cs47l90_aec_loopback_texts), 7158c2ecf20Sopenharmony_ci cs47l90_aec_loopback_texts, 7168c2ecf20Sopenharmony_ci cs47l90_aec_loopback_values); 7178c2ecf20Sopenharmony_ci 7188c2ecf20Sopenharmony_cistatic const struct snd_kcontrol_new cs47l90_aec_loopback_mux[] = { 7198c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("AEC1 Loopback", cs47l90_aec1_loopback), 7208c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("AEC2 Loopback", cs47l90_aec2_loopback), 7218c2ecf20Sopenharmony_ci}; 7228c2ecf20Sopenharmony_ci 7238c2ecf20Sopenharmony_cistatic const struct snd_kcontrol_new cs47l90_anc_input_mux[] = { 7248c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("RXANCL Input", madera_anc_input_src[0]), 7258c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("RXANCL Channel", madera_anc_input_src[1]), 7268c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("RXANCR Input", madera_anc_input_src[2]), 7278c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("RXANCR Channel", madera_anc_input_src[3]), 7288c2ecf20Sopenharmony_ci}; 7298c2ecf20Sopenharmony_ci 7308c2ecf20Sopenharmony_cistatic const struct snd_kcontrol_new cs47l90_anc_ng_mux = 7318c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("RXANC NG Source", madera_anc_ng_enum); 7328c2ecf20Sopenharmony_ci 7338c2ecf20Sopenharmony_cistatic const struct snd_kcontrol_new cs47l90_output_anc_src[] = { 7348c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("HPOUT1L ANC Source", madera_output_anc_src[0]), 7358c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("HPOUT1R ANC Source", madera_output_anc_src[1]), 7368c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("HPOUT2L ANC Source", madera_output_anc_src[2]), 7378c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("HPOUT2R ANC Source", madera_output_anc_src[3]), 7388c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("HPOUT3L ANC Source", madera_output_anc_src[4]), 7398c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("HPOUT3R ANC Source", madera_output_anc_src[0]), 7408c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("SPKDAT1L ANC Source", madera_output_anc_src[8]), 7418c2ecf20Sopenharmony_ci SOC_DAPM_ENUM("SPKDAT1R ANC Source", madera_output_anc_src[9]), 7428c2ecf20Sopenharmony_ci}; 7438c2ecf20Sopenharmony_ci 7448c2ecf20Sopenharmony_cistatic const struct snd_soc_dapm_widget cs47l90_dapm_widgets[] = { 7458c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("SYSCLK", MADERA_SYSTEM_CLOCK_1, MADERA_SYSCLK_ENA_SHIFT, 7468c2ecf20Sopenharmony_ci 0, madera_sysclk_ev, 7478c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU | 7488c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD), 7498c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("ASYNCCLK", MADERA_ASYNC_CLOCK_1, 7508c2ecf20Sopenharmony_ci MADERA_ASYNC_CLK_ENA_SHIFT, 0, madera_clk_ev, 7518c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 7528c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("OPCLK", MADERA_OUTPUT_SYSTEM_CLOCK, 7538c2ecf20Sopenharmony_ci MADERA_OPCLK_ENA_SHIFT, 0, NULL, 0), 7548c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("ASYNCOPCLK", MADERA_OUTPUT_ASYNC_CLOCK, 7558c2ecf20Sopenharmony_ci MADERA_OPCLK_ASYNC_ENA_SHIFT, 0, NULL, 0), 7568c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("DSPCLK", MADERA_DSP_CLOCK_1, MADERA_DSP_CLK_ENA_SHIFT, 7578c2ecf20Sopenharmony_ci 0, madera_clk_ev, 7588c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 7598c2ecf20Sopenharmony_ci 7608c2ecf20Sopenharmony_ciSND_SOC_DAPM_REGULATOR_SUPPLY("DBVDD2", 0, 0), 7618c2ecf20Sopenharmony_ciSND_SOC_DAPM_REGULATOR_SUPPLY("DBVDD3", 0, 0), 7628c2ecf20Sopenharmony_ciSND_SOC_DAPM_REGULATOR_SUPPLY("DBVDD4", 0, 0), 7638c2ecf20Sopenharmony_ciSND_SOC_DAPM_REGULATOR_SUPPLY("CPVDD1", 20, 0), 7648c2ecf20Sopenharmony_ciSND_SOC_DAPM_REGULATOR_SUPPLY("CPVDD2", 20, 0), 7658c2ecf20Sopenharmony_ciSND_SOC_DAPM_REGULATOR_SUPPLY("MICVDD", 0, SND_SOC_DAPM_REGULATOR_BYPASS), 7668c2ecf20Sopenharmony_ci 7678c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("MICBIAS1", MADERA_MIC_BIAS_CTRL_1, 7688c2ecf20Sopenharmony_ci MADERA_MICB1_ENA_SHIFT, 0, NULL, 0), 7698c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("MICBIAS2", MADERA_MIC_BIAS_CTRL_2, 7708c2ecf20Sopenharmony_ci MADERA_MICB1_ENA_SHIFT, 0, NULL, 0), 7718c2ecf20Sopenharmony_ci 7728c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("MICBIAS1A", MADERA_MIC_BIAS_CTRL_5, 7738c2ecf20Sopenharmony_ci MADERA_MICB1A_ENA_SHIFT, 0, NULL, 0), 7748c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("MICBIAS1B", MADERA_MIC_BIAS_CTRL_5, 7758c2ecf20Sopenharmony_ci MADERA_MICB1B_ENA_SHIFT, 0, NULL, 0), 7768c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("MICBIAS1C", MADERA_MIC_BIAS_CTRL_5, 7778c2ecf20Sopenharmony_ci MADERA_MICB1C_ENA_SHIFT, 0, NULL, 0), 7788c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("MICBIAS1D", MADERA_MIC_BIAS_CTRL_5, 7798c2ecf20Sopenharmony_ci MADERA_MICB1D_ENA_SHIFT, 0, NULL, 0), 7808c2ecf20Sopenharmony_ci 7818c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("MICBIAS2A", MADERA_MIC_BIAS_CTRL_6, 7828c2ecf20Sopenharmony_ci MADERA_MICB2A_ENA_SHIFT, 0, NULL, 0), 7838c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("MICBIAS2B", MADERA_MIC_BIAS_CTRL_6, 7848c2ecf20Sopenharmony_ci MADERA_MICB2B_ENA_SHIFT, 0, NULL, 0), 7858c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("MICBIAS2C", MADERA_MIC_BIAS_CTRL_6, 7868c2ecf20Sopenharmony_ci MADERA_MICB2C_ENA_SHIFT, 0, NULL, 0), 7878c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("MICBIAS2D", MADERA_MIC_BIAS_CTRL_6, 7888c2ecf20Sopenharmony_ci MADERA_MICB2D_ENA_SHIFT, 0, NULL, 0), 7898c2ecf20Sopenharmony_ci 7908c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("FXCLK", SND_SOC_NOPM, 7918c2ecf20Sopenharmony_ci MADERA_DOM_GRP_FX, 0, 7928c2ecf20Sopenharmony_ci madera_domain_clk_ev, 7938c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 7948c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("ASRC1CLK", SND_SOC_NOPM, 7958c2ecf20Sopenharmony_ci MADERA_DOM_GRP_ASRC1, 0, 7968c2ecf20Sopenharmony_ci madera_domain_clk_ev, 7978c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 7988c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("ASRC2CLK", SND_SOC_NOPM, 7998c2ecf20Sopenharmony_ci MADERA_DOM_GRP_ASRC2, 0, 8008c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8018c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8028c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("ISRC1CLK", SND_SOC_NOPM, 8038c2ecf20Sopenharmony_ci MADERA_DOM_GRP_ISRC1, 0, 8048c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8058c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8068c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("ISRC2CLK", SND_SOC_NOPM, 8078c2ecf20Sopenharmony_ci MADERA_DOM_GRP_ISRC2, 0, 8088c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8098c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8108c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("ISRC3CLK", SND_SOC_NOPM, 8118c2ecf20Sopenharmony_ci MADERA_DOM_GRP_ISRC3, 0, 8128c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8138c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8148c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("ISRC4CLK", SND_SOC_NOPM, 8158c2ecf20Sopenharmony_ci MADERA_DOM_GRP_ISRC4, 0, 8168c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8178c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8188c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("OUTCLK", SND_SOC_NOPM, 8198c2ecf20Sopenharmony_ci MADERA_DOM_GRP_OUT, 0, 8208c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8218c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8228c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("SPDCLK", SND_SOC_NOPM, 8238c2ecf20Sopenharmony_ci MADERA_DOM_GRP_SPD, 0, 8248c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8258c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8268c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("DSP1CLK", SND_SOC_NOPM, 8278c2ecf20Sopenharmony_ci MADERA_DOM_GRP_DSP1, 0, 8288c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8298c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8308c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("DSP2CLK", SND_SOC_NOPM, 8318c2ecf20Sopenharmony_ci MADERA_DOM_GRP_DSP2, 0, 8328c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8338c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8348c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("DSP3CLK", SND_SOC_NOPM, 8358c2ecf20Sopenharmony_ci MADERA_DOM_GRP_DSP3, 0, 8368c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8378c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8388c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("DSP4CLK", SND_SOC_NOPM, 8398c2ecf20Sopenharmony_ci MADERA_DOM_GRP_DSP4, 0, 8408c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8418c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8428c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("DSP5CLK", SND_SOC_NOPM, 8438c2ecf20Sopenharmony_ci MADERA_DOM_GRP_DSP5, 0, 8448c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8458c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8468c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("DSP6CLK", SND_SOC_NOPM, 8478c2ecf20Sopenharmony_ci MADERA_DOM_GRP_DSP6, 0, 8488c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8498c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8508c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("DSP7CLK", SND_SOC_NOPM, 8518c2ecf20Sopenharmony_ci MADERA_DOM_GRP_DSP7, 0, 8528c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8538c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8548c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("AIF1TXCLK", SND_SOC_NOPM, 8558c2ecf20Sopenharmony_ci MADERA_DOM_GRP_AIF1, 0, 8568c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8578c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8588c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("AIF2TXCLK", SND_SOC_NOPM, 8598c2ecf20Sopenharmony_ci MADERA_DOM_GRP_AIF2, 0, 8608c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8618c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8628c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("AIF3TXCLK", SND_SOC_NOPM, 8638c2ecf20Sopenharmony_ci MADERA_DOM_GRP_AIF3, 0, 8648c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8658c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8668c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("AIF4TXCLK", SND_SOC_NOPM, 8678c2ecf20Sopenharmony_ci MADERA_DOM_GRP_AIF4, 0, 8688c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8698c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8708c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("SLIMBUSCLK", SND_SOC_NOPM, 8718c2ecf20Sopenharmony_ci MADERA_DOM_GRP_SLIMBUS, 0, 8728c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8738c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8748c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("PWMCLK", SND_SOC_NOPM, 8758c2ecf20Sopenharmony_ci MADERA_DOM_GRP_PWM, 0, 8768c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8778c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8788c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("DFCCLK", SND_SOC_NOPM, 8798c2ecf20Sopenharmony_ci MADERA_DOM_GRP_DFC, 0, 8808c2ecf20Sopenharmony_ci madera_domain_clk_ev, 8818c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), 8828c2ecf20Sopenharmony_ci 8838c2ecf20Sopenharmony_ciSND_SOC_DAPM_SIGGEN("TONE"), 8848c2ecf20Sopenharmony_ciSND_SOC_DAPM_SIGGEN("NOISE"), 8858c2ecf20Sopenharmony_ci 8868c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN1ALN"), 8878c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN1ALP"), 8888c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN1BLN"), 8898c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN1BLP"), 8908c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN1ARN"), 8918c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN1ARP"), 8928c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN1BRN"), 8938c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN1BRP"), 8948c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN2ALN"), 8958c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN2ALP"), 8968c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN2BLN"), 8978c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN2BLP"), 8988c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN2RN"), 8998c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("IN2RP"), 9008c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("DMICCLK3"), 9018c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("DMICDAT3"), 9028c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("DMICCLK4"), 9038c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("DMICDAT4"), 9048c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("DMICCLK5"), 9058c2ecf20Sopenharmony_ciSND_SOC_DAPM_INPUT("DMICDAT5"), 9068c2ecf20Sopenharmony_ci 9078c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("IN1L Analog Mux", SND_SOC_NOPM, 0, 0, &madera_inmux[0]), 9088c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("IN1R Analog Mux", SND_SOC_NOPM, 0, 0, &madera_inmux[1]), 9098c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("IN2L Analog Mux", SND_SOC_NOPM, 0, 0, &madera_inmux[2]), 9108c2ecf20Sopenharmony_ci 9118c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("IN1L Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[0]), 9128c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("IN1R Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[0]), 9138c2ecf20Sopenharmony_ci 9148c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("IN2L Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[1]), 9158c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("IN2R Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[1]), 9168c2ecf20Sopenharmony_ci 9178c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("DRC1 Signal Activity"), 9188c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("DRC2 Signal Activity"), 9198c2ecf20Sopenharmony_ci 9208c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("DSP Trigger Out"), 9218c2ecf20Sopenharmony_ci 9228c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("PWM1 Driver", MADERA_PWM_DRIVE_1, MADERA_PWM1_ENA_SHIFT, 9238c2ecf20Sopenharmony_ci 0, NULL, 0), 9248c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("PWM2 Driver", MADERA_PWM_DRIVE_1, MADERA_PWM2_ENA_SHIFT, 9258c2ecf20Sopenharmony_ci 0, NULL, 0), 9268c2ecf20Sopenharmony_ci 9278c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("RXANC NG External Clock", SND_SOC_NOPM, 9288c2ecf20Sopenharmony_ci MADERA_EXT_NG_SEL_SET_SHIFT, 0, madera_anc_ev, 9298c2ecf20Sopenharmony_ci SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), 9308c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("RXANCL NG External", SND_SOC_NOPM, 0, 0, NULL, 0), 9318c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("RXANCR NG External", SND_SOC_NOPM, 0, 0, NULL, 0), 9328c2ecf20Sopenharmony_ci 9338c2ecf20Sopenharmony_ciSND_SOC_DAPM_SUPPLY("RXANC NG Clock", SND_SOC_NOPM, 9348c2ecf20Sopenharmony_ci MADERA_CLK_NG_ENA_SET_SHIFT, 0, madera_anc_ev, 9358c2ecf20Sopenharmony_ci SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), 9368c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("RXANCL NG Internal", SND_SOC_NOPM, 0, 0, NULL, 0), 9378c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("RXANCR NG Internal", SND_SOC_NOPM, 0, 0, NULL, 0), 9388c2ecf20Sopenharmony_ci 9398c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("RXANCL Left Input", SND_SOC_NOPM, 0, 0, 9408c2ecf20Sopenharmony_ci &cs47l90_anc_input_mux[0]), 9418c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("RXANCL Right Input", SND_SOC_NOPM, 0, 0, 9428c2ecf20Sopenharmony_ci &cs47l90_anc_input_mux[0]), 9438c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("RXANCL Channel", SND_SOC_NOPM, 0, 0, 9448c2ecf20Sopenharmony_ci &cs47l90_anc_input_mux[1]), 9458c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("RXANCL NG Mux", SND_SOC_NOPM, 0, 0, &cs47l90_anc_ng_mux), 9468c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("RXANCR Left Input", SND_SOC_NOPM, 0, 0, 9478c2ecf20Sopenharmony_ci &cs47l90_anc_input_mux[2]), 9488c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("RXANCR Right Input", SND_SOC_NOPM, 0, 0, 9498c2ecf20Sopenharmony_ci &cs47l90_anc_input_mux[2]), 9508c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("RXANCR Channel", SND_SOC_NOPM, 0, 0, 9518c2ecf20Sopenharmony_ci &cs47l90_anc_input_mux[3]), 9528c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("RXANCR NG Mux", SND_SOC_NOPM, 0, 0, &cs47l90_anc_ng_mux), 9538c2ecf20Sopenharmony_ci 9548c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("RXANCL", SND_SOC_NOPM, MADERA_CLK_L_ENA_SET_SHIFT, 9558c2ecf20Sopenharmony_ci 0, NULL, 0, madera_anc_ev, 9568c2ecf20Sopenharmony_ci SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), 9578c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("RXANCR", SND_SOC_NOPM, MADERA_CLK_R_ENA_SET_SHIFT, 9588c2ecf20Sopenharmony_ci 0, NULL, 0, madera_anc_ev, 9598c2ecf20Sopenharmony_ci SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), 9608c2ecf20Sopenharmony_ci 9618c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("HPOUT1L ANC Source", SND_SOC_NOPM, 0, 0, 9628c2ecf20Sopenharmony_ci &cs47l90_output_anc_src[0]), 9638c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("HPOUT1R ANC Source", SND_SOC_NOPM, 0, 0, 9648c2ecf20Sopenharmony_ci &cs47l90_output_anc_src[1]), 9658c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("HPOUT2L ANC Source", SND_SOC_NOPM, 0, 0, 9668c2ecf20Sopenharmony_ci &cs47l90_output_anc_src[2]), 9678c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("HPOUT2R ANC Source", SND_SOC_NOPM, 0, 0, 9688c2ecf20Sopenharmony_ci &cs47l90_output_anc_src[3]), 9698c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("HPOUT3L ANC Source", SND_SOC_NOPM, 0, 0, 9708c2ecf20Sopenharmony_ci &cs47l90_output_anc_src[4]), 9718c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("HPOUT3R ANC Source", SND_SOC_NOPM, 0, 0, 9728c2ecf20Sopenharmony_ci &cs47l90_output_anc_src[5]), 9738c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("SPKDAT1L ANC Source", SND_SOC_NOPM, 0, 0, 9748c2ecf20Sopenharmony_ci &cs47l90_output_anc_src[6]), 9758c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("SPKDAT1R ANC Source", SND_SOC_NOPM, 0, 0, 9768c2ecf20Sopenharmony_ci &cs47l90_output_anc_src[7]), 9778c2ecf20Sopenharmony_ci 9788c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF1TX1", NULL, 0, 9798c2ecf20Sopenharmony_ci MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX1_ENA_SHIFT, 0), 9808c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 1, 9818c2ecf20Sopenharmony_ci MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX2_ENA_SHIFT, 0), 9828c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF1TX3", NULL, 2, 9838c2ecf20Sopenharmony_ci MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX3_ENA_SHIFT, 0), 9848c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF1TX4", NULL, 3, 9858c2ecf20Sopenharmony_ci MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX4_ENA_SHIFT, 0), 9868c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF1TX5", NULL, 4, 9878c2ecf20Sopenharmony_ci MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX5_ENA_SHIFT, 0), 9888c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF1TX6", NULL, 5, 9898c2ecf20Sopenharmony_ci MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX6_ENA_SHIFT, 0), 9908c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF1TX7", NULL, 6, 9918c2ecf20Sopenharmony_ci MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX7_ENA_SHIFT, 0), 9928c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF1TX8", NULL, 7, 9938c2ecf20Sopenharmony_ci MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX8_ENA_SHIFT, 0), 9948c2ecf20Sopenharmony_ci 9958c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF2TX1", NULL, 0, 9968c2ecf20Sopenharmony_ci MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX1_ENA_SHIFT, 0), 9978c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF2TX2", NULL, 1, 9988c2ecf20Sopenharmony_ci MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX2_ENA_SHIFT, 0), 9998c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF2TX3", NULL, 2, 10008c2ecf20Sopenharmony_ci MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX3_ENA_SHIFT, 0), 10018c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF2TX4", NULL, 3, 10028c2ecf20Sopenharmony_ci MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX4_ENA_SHIFT, 0), 10038c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF2TX5", NULL, 4, 10048c2ecf20Sopenharmony_ci MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX5_ENA_SHIFT, 0), 10058c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF2TX6", NULL, 5, 10068c2ecf20Sopenharmony_ci MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX6_ENA_SHIFT, 0), 10078c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF2TX7", NULL, 6, 10088c2ecf20Sopenharmony_ci MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX7_ENA_SHIFT, 0), 10098c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF2TX8", NULL, 7, 10108c2ecf20Sopenharmony_ci MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX8_ENA_SHIFT, 0), 10118c2ecf20Sopenharmony_ci 10128c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("SLIMTX1", NULL, 0, 10138c2ecf20Sopenharmony_ci MADERA_SLIMBUS_TX_CHANNEL_ENABLE, 10148c2ecf20Sopenharmony_ci MADERA_SLIMTX1_ENA_SHIFT, 0), 10158c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 1, 10168c2ecf20Sopenharmony_ci MADERA_SLIMBUS_TX_CHANNEL_ENABLE, 10178c2ecf20Sopenharmony_ci MADERA_SLIMTX2_ENA_SHIFT, 0), 10188c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 2, 10198c2ecf20Sopenharmony_ci MADERA_SLIMBUS_TX_CHANNEL_ENABLE, 10208c2ecf20Sopenharmony_ci MADERA_SLIMTX3_ENA_SHIFT, 0), 10218c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 3, 10228c2ecf20Sopenharmony_ci MADERA_SLIMBUS_TX_CHANNEL_ENABLE, 10238c2ecf20Sopenharmony_ci MADERA_SLIMTX4_ENA_SHIFT, 0), 10248c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 4, 10258c2ecf20Sopenharmony_ci MADERA_SLIMBUS_TX_CHANNEL_ENABLE, 10268c2ecf20Sopenharmony_ci MADERA_SLIMTX5_ENA_SHIFT, 0), 10278c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 5, 10288c2ecf20Sopenharmony_ci MADERA_SLIMBUS_TX_CHANNEL_ENABLE, 10298c2ecf20Sopenharmony_ci MADERA_SLIMTX6_ENA_SHIFT, 0), 10308c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("SLIMTX7", NULL, 6, 10318c2ecf20Sopenharmony_ci MADERA_SLIMBUS_TX_CHANNEL_ENABLE, 10328c2ecf20Sopenharmony_ci MADERA_SLIMTX7_ENA_SHIFT, 0), 10338c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("SLIMTX8", NULL, 7, 10348c2ecf20Sopenharmony_ci MADERA_SLIMBUS_TX_CHANNEL_ENABLE, 10358c2ecf20Sopenharmony_ci MADERA_SLIMTX8_ENA_SHIFT, 0), 10368c2ecf20Sopenharmony_ci 10378c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF3TX1", NULL, 0, 10388c2ecf20Sopenharmony_ci MADERA_AIF3_TX_ENABLES, MADERA_AIF3TX1_ENA_SHIFT, 0), 10398c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF3TX2", NULL, 1, 10408c2ecf20Sopenharmony_ci MADERA_AIF3_TX_ENABLES, MADERA_AIF3TX2_ENA_SHIFT, 0), 10418c2ecf20Sopenharmony_ci 10428c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF4TX1", NULL, 0, 10438c2ecf20Sopenharmony_ci MADERA_AIF4_TX_ENABLES, MADERA_AIF4TX1_ENA_SHIFT, 0), 10448c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_OUT("AIF4TX2", NULL, 1, 10458c2ecf20Sopenharmony_ci MADERA_AIF4_TX_ENABLES, MADERA_AIF4TX2_ENA_SHIFT, 0), 10468c2ecf20Sopenharmony_ci 10478c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("OUT1L", SND_SOC_NOPM, 10488c2ecf20Sopenharmony_ci MADERA_OUT1L_ENA_SHIFT, 0, NULL, 0, madera_hp_ev, 10498c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 10508c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 10518c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("OUT1R", SND_SOC_NOPM, 10528c2ecf20Sopenharmony_ci MADERA_OUT1R_ENA_SHIFT, 0, NULL, 0, madera_hp_ev, 10538c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 10548c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 10558c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("OUT2L", SND_SOC_NOPM, 10568c2ecf20Sopenharmony_ci MADERA_OUT2L_ENA_SHIFT, 0, NULL, 0, madera_hp_ev, 10578c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 10588c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 10598c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("OUT2R", SND_SOC_NOPM, 10608c2ecf20Sopenharmony_ci MADERA_OUT2R_ENA_SHIFT, 0, NULL, 0, madera_hp_ev, 10618c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 10628c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 10638c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("OUT3L", SND_SOC_NOPM, 10648c2ecf20Sopenharmony_ci MADERA_OUT3L_ENA_SHIFT, 0, NULL, 0, madera_hp_ev, 10658c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 10668c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 10678c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("OUT3R", SND_SOC_NOPM, 10688c2ecf20Sopenharmony_ci MADERA_OUT3R_ENA_SHIFT, 0, NULL, 0, madera_hp_ev, 10698c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 10708c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 10718c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("OUT5L", MADERA_OUTPUT_ENABLES_1, 10728c2ecf20Sopenharmony_ci MADERA_OUT5L_ENA_SHIFT, 0, NULL, 0, madera_out_ev, 10738c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU), 10748c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("OUT5R", MADERA_OUTPUT_ENABLES_1, 10758c2ecf20Sopenharmony_ci MADERA_OUT5R_ENA_SHIFT, 0, NULL, 0, madera_out_ev, 10768c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU), 10778c2ecf20Sopenharmony_ci 10788c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("SPD1TX1", MADERA_SPD1_TX_CONTROL, 10798c2ecf20Sopenharmony_ci MADERA_SPD1_VAL1_SHIFT, 0, NULL, 0), 10808c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("SPD1TX2", MADERA_SPD1_TX_CONTROL, 10818c2ecf20Sopenharmony_ci MADERA_SPD1_VAL2_SHIFT, 0, NULL, 0), 10828c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUT_DRV("SPD1", MADERA_SPD1_TX_CONTROL, 10838c2ecf20Sopenharmony_ci MADERA_SPD1_ENA_SHIFT, 0, NULL, 0), 10848c2ecf20Sopenharmony_ci 10858c2ecf20Sopenharmony_ci/* 10868c2ecf20Sopenharmony_ci * mux_in widgets : arranged in the order of sources 10878c2ecf20Sopenharmony_ci * specified in MADERA_MIXER_INPUT_ROUTES 10888c2ecf20Sopenharmony_ci */ 10898c2ecf20Sopenharmony_ci 10908c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("Noise Generator", MADERA_COMFORT_NOISE_GENERATOR, 10918c2ecf20Sopenharmony_ci MADERA_NOISE_GEN_ENA_SHIFT, 0, NULL, 0), 10928c2ecf20Sopenharmony_ci 10938c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("Tone Generator 1", MADERA_TONE_GENERATOR_1, 10948c2ecf20Sopenharmony_ci MADERA_TONE1_ENA_SHIFT, 0, NULL, 0), 10958c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("Tone Generator 2", MADERA_TONE_GENERATOR_1, 10968c2ecf20Sopenharmony_ci MADERA_TONE2_ENA_SHIFT, 0, NULL, 0), 10978c2ecf20Sopenharmony_ci 10988c2ecf20Sopenharmony_ciSND_SOC_DAPM_SIGGEN("HAPTICS"), 10998c2ecf20Sopenharmony_ci 11008c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("AEC1 Loopback", MADERA_DAC_AEC_CONTROL_1, 11018c2ecf20Sopenharmony_ci MADERA_AEC1_LOOPBACK_ENA_SHIFT, 0, 11028c2ecf20Sopenharmony_ci &cs47l90_aec_loopback_mux[0]), 11038c2ecf20Sopenharmony_ciSND_SOC_DAPM_MUX("AEC2 Loopback", MADERA_DAC_AEC_CONTROL_2, 11048c2ecf20Sopenharmony_ci MADERA_AEC2_LOOPBACK_ENA_SHIFT, 0, 11058c2ecf20Sopenharmony_ci &cs47l90_aec_loopback_mux[1]), 11068c2ecf20Sopenharmony_ci 11078c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("IN1L", MADERA_INPUT_ENABLES, MADERA_IN1L_ENA_SHIFT, 11088c2ecf20Sopenharmony_ci 0, NULL, 0, madera_in_ev, 11098c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 11108c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 11118c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("IN1R", MADERA_INPUT_ENABLES, MADERA_IN1R_ENA_SHIFT, 11128c2ecf20Sopenharmony_ci 0, NULL, 0, madera_in_ev, 11138c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 11148c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 11158c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("IN2L", MADERA_INPUT_ENABLES, MADERA_IN2L_ENA_SHIFT, 11168c2ecf20Sopenharmony_ci 0, NULL, 0, madera_in_ev, 11178c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 11188c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 11198c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("IN2R", MADERA_INPUT_ENABLES, MADERA_IN2R_ENA_SHIFT, 11208c2ecf20Sopenharmony_ci 0, NULL, 0, madera_in_ev, 11218c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 11228c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 11238c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("IN3L", MADERA_INPUT_ENABLES, MADERA_IN3L_ENA_SHIFT, 11248c2ecf20Sopenharmony_ci 0, NULL, 0, madera_in_ev, 11258c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 11268c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 11278c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("IN3R", MADERA_INPUT_ENABLES, MADERA_IN3R_ENA_SHIFT, 11288c2ecf20Sopenharmony_ci 0, NULL, 0, madera_in_ev, 11298c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 11308c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 11318c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("IN4L", MADERA_INPUT_ENABLES, MADERA_IN4L_ENA_SHIFT, 11328c2ecf20Sopenharmony_ci 0, NULL, 0, madera_in_ev, 11338c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 11348c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 11358c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("IN4R", MADERA_INPUT_ENABLES, MADERA_IN4R_ENA_SHIFT, 11368c2ecf20Sopenharmony_ci 0, NULL, 0, madera_in_ev, 11378c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 11388c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 11398c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("IN5L", MADERA_INPUT_ENABLES, MADERA_IN5L_ENA_SHIFT, 11408c2ecf20Sopenharmony_ci 0, NULL, 0, madera_in_ev, 11418c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 11428c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 11438c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA_E("IN5R", MADERA_INPUT_ENABLES, MADERA_IN5R_ENA_SHIFT, 11448c2ecf20Sopenharmony_ci 0, NULL, 0, madera_in_ev, 11458c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD | 11468c2ecf20Sopenharmony_ci SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU), 11478c2ecf20Sopenharmony_ci 11488c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF1RX1", NULL, 0, 11498c2ecf20Sopenharmony_ci MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX1_ENA_SHIFT, 0), 11508c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF1RX2", NULL, 1, 11518c2ecf20Sopenharmony_ci MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX2_ENA_SHIFT, 0), 11528c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF1RX3", NULL, 2, 11538c2ecf20Sopenharmony_ci MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX3_ENA_SHIFT, 0), 11548c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF1RX4", NULL, 3, 11558c2ecf20Sopenharmony_ci MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX4_ENA_SHIFT, 0), 11568c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF1RX5", NULL, 4, 11578c2ecf20Sopenharmony_ci MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX5_ENA_SHIFT, 0), 11588c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF1RX6", NULL, 5, 11598c2ecf20Sopenharmony_ci MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX6_ENA_SHIFT, 0), 11608c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF1RX7", NULL, 6, 11618c2ecf20Sopenharmony_ci MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX7_ENA_SHIFT, 0), 11628c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF1RX8", NULL, 7, 11638c2ecf20Sopenharmony_ci MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX8_ENA_SHIFT, 0), 11648c2ecf20Sopenharmony_ci 11658c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF2RX1", NULL, 0, 11668c2ecf20Sopenharmony_ci MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX1_ENA_SHIFT, 0), 11678c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF2RX2", NULL, 1, 11688c2ecf20Sopenharmony_ci MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX2_ENA_SHIFT, 0), 11698c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF2RX3", NULL, 2, 11708c2ecf20Sopenharmony_ci MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX3_ENA_SHIFT, 0), 11718c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF2RX4", NULL, 3, 11728c2ecf20Sopenharmony_ci MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX4_ENA_SHIFT, 0), 11738c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF2RX5", NULL, 4, 11748c2ecf20Sopenharmony_ci MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX5_ENA_SHIFT, 0), 11758c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF2RX6", NULL, 5, 11768c2ecf20Sopenharmony_ci MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX6_ENA_SHIFT, 0), 11778c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF2RX7", NULL, 6, 11788c2ecf20Sopenharmony_ci MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX7_ENA_SHIFT, 0), 11798c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF2RX8", NULL, 7, 11808c2ecf20Sopenharmony_ci MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX8_ENA_SHIFT, 0), 11818c2ecf20Sopenharmony_ci 11828c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF3RX1", NULL, 0, 11838c2ecf20Sopenharmony_ci MADERA_AIF3_RX_ENABLES, MADERA_AIF3RX1_ENA_SHIFT, 0), 11848c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 1, 11858c2ecf20Sopenharmony_ci MADERA_AIF3_RX_ENABLES, MADERA_AIF3RX2_ENA_SHIFT, 0), 11868c2ecf20Sopenharmony_ci 11878c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF4RX1", NULL, 0, 11888c2ecf20Sopenharmony_ci MADERA_AIF4_RX_ENABLES, MADERA_AIF4RX1_ENA_SHIFT, 0), 11898c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("AIF4RX2", NULL, 1, 11908c2ecf20Sopenharmony_ci MADERA_AIF4_RX_ENABLES, MADERA_AIF4RX2_ENA_SHIFT, 0), 11918c2ecf20Sopenharmony_ci 11928c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("SLIMRX1", NULL, 0, MADERA_SLIMBUS_RX_CHANNEL_ENABLE, 11938c2ecf20Sopenharmony_ci MADERA_SLIMRX1_ENA_SHIFT, 0), 11948c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 1, MADERA_SLIMBUS_RX_CHANNEL_ENABLE, 11958c2ecf20Sopenharmony_ci MADERA_SLIMRX2_ENA_SHIFT, 0), 11968c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 2, MADERA_SLIMBUS_RX_CHANNEL_ENABLE, 11978c2ecf20Sopenharmony_ci MADERA_SLIMRX3_ENA_SHIFT, 0), 11988c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 3, MADERA_SLIMBUS_RX_CHANNEL_ENABLE, 11998c2ecf20Sopenharmony_ci MADERA_SLIMRX4_ENA_SHIFT, 0), 12008c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("SLIMRX5", NULL, 4, MADERA_SLIMBUS_RX_CHANNEL_ENABLE, 12018c2ecf20Sopenharmony_ci MADERA_SLIMRX5_ENA_SHIFT, 0), 12028c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("SLIMRX6", NULL, 5, MADERA_SLIMBUS_RX_CHANNEL_ENABLE, 12038c2ecf20Sopenharmony_ci MADERA_SLIMRX6_ENA_SHIFT, 0), 12048c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("SLIMRX7", NULL, 6, MADERA_SLIMBUS_RX_CHANNEL_ENABLE, 12058c2ecf20Sopenharmony_ci MADERA_SLIMRX7_ENA_SHIFT, 0), 12068c2ecf20Sopenharmony_ciSND_SOC_DAPM_AIF_IN("SLIMRX8", NULL, 7, MADERA_SLIMBUS_RX_CHANNEL_ENABLE, 12078c2ecf20Sopenharmony_ci MADERA_SLIMRX8_ENA_SHIFT, 0), 12088c2ecf20Sopenharmony_ci 12098c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("EQ1", MADERA_EQ1_1, MADERA_EQ1_ENA_SHIFT, 0, NULL, 0), 12108c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("EQ2", MADERA_EQ2_1, MADERA_EQ2_ENA_SHIFT, 0, NULL, 0), 12118c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("EQ3", MADERA_EQ3_1, MADERA_EQ3_ENA_SHIFT, 0, NULL, 0), 12128c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("EQ4", MADERA_EQ4_1, MADERA_EQ4_ENA_SHIFT, 0, NULL, 0), 12138c2ecf20Sopenharmony_ci 12148c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DRC1L", MADERA_DRC1_CTRL1, MADERA_DRC1L_ENA_SHIFT, 0, 12158c2ecf20Sopenharmony_ci NULL, 0), 12168c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DRC1R", MADERA_DRC1_CTRL1, MADERA_DRC1R_ENA_SHIFT, 0, 12178c2ecf20Sopenharmony_ci NULL, 0), 12188c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DRC2L", MADERA_DRC2_CTRL1, MADERA_DRC2L_ENA_SHIFT, 0, 12198c2ecf20Sopenharmony_ci NULL, 0), 12208c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DRC2R", MADERA_DRC2_CTRL1, MADERA_DRC2R_ENA_SHIFT, 0, 12218c2ecf20Sopenharmony_ci NULL, 0), 12228c2ecf20Sopenharmony_ci 12238c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("LHPF1", MADERA_HPLPF1_1, MADERA_LHPF1_ENA_SHIFT, 0, 12248c2ecf20Sopenharmony_ci NULL, 0), 12258c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("LHPF2", MADERA_HPLPF2_1, MADERA_LHPF2_ENA_SHIFT, 0, 12268c2ecf20Sopenharmony_ci NULL, 0), 12278c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("LHPF3", MADERA_HPLPF3_1, MADERA_LHPF3_ENA_SHIFT, 0, 12288c2ecf20Sopenharmony_ci NULL, 0), 12298c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("LHPF4", MADERA_HPLPF4_1, MADERA_LHPF4_ENA_SHIFT, 0, 12308c2ecf20Sopenharmony_ci NULL, 0), 12318c2ecf20Sopenharmony_ci 12328c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ASRC1IN1L", MADERA_ASRC1_ENABLE, 12338c2ecf20Sopenharmony_ci MADERA_ASRC1_IN1L_ENA_SHIFT, 0, NULL, 0), 12348c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ASRC1IN1R", MADERA_ASRC1_ENABLE, 12358c2ecf20Sopenharmony_ci MADERA_ASRC1_IN1R_ENA_SHIFT, 0, NULL, 0), 12368c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ASRC1IN2L", MADERA_ASRC1_ENABLE, 12378c2ecf20Sopenharmony_ci MADERA_ASRC1_IN2L_ENA_SHIFT, 0, NULL, 0), 12388c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ASRC1IN2R", MADERA_ASRC1_ENABLE, 12398c2ecf20Sopenharmony_ci MADERA_ASRC1_IN2R_ENA_SHIFT, 0, NULL, 0), 12408c2ecf20Sopenharmony_ci 12418c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ASRC2IN1L", MADERA_ASRC2_ENABLE, 12428c2ecf20Sopenharmony_ci MADERA_ASRC2_IN1L_ENA_SHIFT, 0, NULL, 0), 12438c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ASRC2IN1R", MADERA_ASRC2_ENABLE, 12448c2ecf20Sopenharmony_ci MADERA_ASRC2_IN1R_ENA_SHIFT, 0, NULL, 0), 12458c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ASRC2IN2L", MADERA_ASRC2_ENABLE, 12468c2ecf20Sopenharmony_ci MADERA_ASRC2_IN2L_ENA_SHIFT, 0, NULL, 0), 12478c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ASRC2IN2R", MADERA_ASRC2_ENABLE, 12488c2ecf20Sopenharmony_ci MADERA_ASRC2_IN2R_ENA_SHIFT, 0, NULL, 0), 12498c2ecf20Sopenharmony_ci 12508c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC1DEC1", MADERA_ISRC_1_CTRL_3, 12518c2ecf20Sopenharmony_ci MADERA_ISRC1_DEC1_ENA_SHIFT, 0, NULL, 0), 12528c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC1DEC2", MADERA_ISRC_1_CTRL_3, 12538c2ecf20Sopenharmony_ci MADERA_ISRC1_DEC2_ENA_SHIFT, 0, NULL, 0), 12548c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC1DEC3", MADERA_ISRC_1_CTRL_3, 12558c2ecf20Sopenharmony_ci MADERA_ISRC1_DEC3_ENA_SHIFT, 0, NULL, 0), 12568c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC1DEC4", MADERA_ISRC_1_CTRL_3, 12578c2ecf20Sopenharmony_ci MADERA_ISRC1_DEC4_ENA_SHIFT, 0, NULL, 0), 12588c2ecf20Sopenharmony_ci 12598c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC1INT1", MADERA_ISRC_1_CTRL_3, 12608c2ecf20Sopenharmony_ci MADERA_ISRC1_INT1_ENA_SHIFT, 0, NULL, 0), 12618c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC1INT2", MADERA_ISRC_1_CTRL_3, 12628c2ecf20Sopenharmony_ci MADERA_ISRC1_INT2_ENA_SHIFT, 0, NULL, 0), 12638c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC1INT3", MADERA_ISRC_1_CTRL_3, 12648c2ecf20Sopenharmony_ci MADERA_ISRC1_INT3_ENA_SHIFT, 0, NULL, 0), 12658c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC1INT4", MADERA_ISRC_1_CTRL_3, 12668c2ecf20Sopenharmony_ci MADERA_ISRC1_INT4_ENA_SHIFT, 0, NULL, 0), 12678c2ecf20Sopenharmony_ci 12688c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC2DEC1", MADERA_ISRC_2_CTRL_3, 12698c2ecf20Sopenharmony_ci MADERA_ISRC2_DEC1_ENA_SHIFT, 0, NULL, 0), 12708c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC2DEC2", MADERA_ISRC_2_CTRL_3, 12718c2ecf20Sopenharmony_ci MADERA_ISRC2_DEC2_ENA_SHIFT, 0, NULL, 0), 12728c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC2DEC3", MADERA_ISRC_2_CTRL_3, 12738c2ecf20Sopenharmony_ci MADERA_ISRC2_DEC3_ENA_SHIFT, 0, NULL, 0), 12748c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC2DEC4", MADERA_ISRC_2_CTRL_3, 12758c2ecf20Sopenharmony_ci MADERA_ISRC2_DEC4_ENA_SHIFT, 0, NULL, 0), 12768c2ecf20Sopenharmony_ci 12778c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC2INT1", MADERA_ISRC_2_CTRL_3, 12788c2ecf20Sopenharmony_ci MADERA_ISRC2_INT1_ENA_SHIFT, 0, NULL, 0), 12798c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC2INT2", MADERA_ISRC_2_CTRL_3, 12808c2ecf20Sopenharmony_ci MADERA_ISRC2_INT2_ENA_SHIFT, 0, NULL, 0), 12818c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC2INT3", MADERA_ISRC_2_CTRL_3, 12828c2ecf20Sopenharmony_ci MADERA_ISRC2_INT3_ENA_SHIFT, 0, NULL, 0), 12838c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC2INT4", MADERA_ISRC_2_CTRL_3, 12848c2ecf20Sopenharmony_ci MADERA_ISRC2_INT4_ENA_SHIFT, 0, NULL, 0), 12858c2ecf20Sopenharmony_ci 12868c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC3DEC1", MADERA_ISRC_3_CTRL_3, 12878c2ecf20Sopenharmony_ci MADERA_ISRC3_DEC1_ENA_SHIFT, 0, NULL, 0), 12888c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC3DEC2", MADERA_ISRC_3_CTRL_3, 12898c2ecf20Sopenharmony_ci MADERA_ISRC3_DEC2_ENA_SHIFT, 0, NULL, 0), 12908c2ecf20Sopenharmony_ci 12918c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC3INT1", MADERA_ISRC_3_CTRL_3, 12928c2ecf20Sopenharmony_ci MADERA_ISRC3_INT1_ENA_SHIFT, 0, NULL, 0), 12938c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC3INT2", MADERA_ISRC_3_CTRL_3, 12948c2ecf20Sopenharmony_ci MADERA_ISRC3_INT2_ENA_SHIFT, 0, NULL, 0), 12958c2ecf20Sopenharmony_ci 12968c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC4DEC1", MADERA_ISRC_4_CTRL_3, 12978c2ecf20Sopenharmony_ci MADERA_ISRC4_DEC1_ENA_SHIFT, 0, NULL, 0), 12988c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC4DEC2", MADERA_ISRC_4_CTRL_3, 12998c2ecf20Sopenharmony_ci MADERA_ISRC4_DEC2_ENA_SHIFT, 0, NULL, 0), 13008c2ecf20Sopenharmony_ci 13018c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC4INT1", MADERA_ISRC_4_CTRL_3, 13028c2ecf20Sopenharmony_ci MADERA_ISRC4_INT1_ENA_SHIFT, 0, NULL, 0), 13038c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("ISRC4INT2", MADERA_ISRC_4_CTRL_3, 13048c2ecf20Sopenharmony_ci MADERA_ISRC4_INT2_ENA_SHIFT, 0, NULL, 0), 13058c2ecf20Sopenharmony_ci 13068c2ecf20Sopenharmony_ciWM_ADSP2("DSP1", 0, cs47l90_adsp_power_ev), 13078c2ecf20Sopenharmony_ciWM_ADSP2("DSP2", 1, cs47l90_adsp_power_ev), 13088c2ecf20Sopenharmony_ciWM_ADSP2("DSP3", 2, cs47l90_adsp_power_ev), 13098c2ecf20Sopenharmony_ciWM_ADSP2("DSP4", 3, cs47l90_adsp_power_ev), 13108c2ecf20Sopenharmony_ciWM_ADSP2("DSP5", 4, cs47l90_adsp_power_ev), 13118c2ecf20Sopenharmony_ciWM_ADSP2("DSP6", 5, cs47l90_adsp_power_ev), 13128c2ecf20Sopenharmony_ciWM_ADSP2("DSP7", 6, cs47l90_adsp_power_ev), 13138c2ecf20Sopenharmony_ci 13148c2ecf20Sopenharmony_ci/* end of ordered widget list */ 13158c2ecf20Sopenharmony_ci 13168c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DFC1", MADERA_DFC1_CTRL, MADERA_DFC1_ENA_SHIFT, 0, NULL, 0), 13178c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DFC2", MADERA_DFC2_CTRL, MADERA_DFC1_ENA_SHIFT, 0, NULL, 0), 13188c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DFC3", MADERA_DFC3_CTRL, MADERA_DFC1_ENA_SHIFT, 0, NULL, 0), 13198c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DFC4", MADERA_DFC4_CTRL, MADERA_DFC1_ENA_SHIFT, 0, NULL, 0), 13208c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DFC5", MADERA_DFC5_CTRL, MADERA_DFC1_ENA_SHIFT, 0, NULL, 0), 13218c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DFC6", MADERA_DFC6_CTRL, MADERA_DFC1_ENA_SHIFT, 0, NULL, 0), 13228c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DFC7", MADERA_DFC7_CTRL, MADERA_DFC1_ENA_SHIFT, 0, NULL, 0), 13238c2ecf20Sopenharmony_ciSND_SOC_DAPM_PGA("DFC8", MADERA_DFC8_CTRL, MADERA_DFC1_ENA_SHIFT, 0, NULL, 0), 13248c2ecf20Sopenharmony_ci 13258c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(EQ1, "EQ1"), 13268c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(EQ2, "EQ2"), 13278c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(EQ3, "EQ3"), 13288c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(EQ4, "EQ4"), 13298c2ecf20Sopenharmony_ci 13308c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(DRC1L, "DRC1L"), 13318c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(DRC1R, "DRC1R"), 13328c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(DRC2L, "DRC2L"), 13338c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(DRC2R, "DRC2R"), 13348c2ecf20Sopenharmony_ci 13358c2ecf20Sopenharmony_ciSND_SOC_DAPM_SWITCH("DRC1 Activity Output", SND_SOC_NOPM, 0, 0, 13368c2ecf20Sopenharmony_ci &madera_drc_activity_output_mux[0]), 13378c2ecf20Sopenharmony_ciSND_SOC_DAPM_SWITCH("DRC2 Activity Output", SND_SOC_NOPM, 0, 0, 13388c2ecf20Sopenharmony_ci &madera_drc_activity_output_mux[1]), 13398c2ecf20Sopenharmony_ci 13408c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(LHPF1, "LHPF1"), 13418c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(LHPF2, "LHPF2"), 13428c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(LHPF3, "LHPF3"), 13438c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(LHPF4, "LHPF4"), 13448c2ecf20Sopenharmony_ci 13458c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(PWM1, "PWM1"), 13468c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(PWM2, "PWM2"), 13478c2ecf20Sopenharmony_ci 13488c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(OUT1L, "HPOUT1L"), 13498c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(OUT1R, "HPOUT1R"), 13508c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(OUT2L, "HPOUT2L"), 13518c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(OUT2R, "HPOUT2R"), 13528c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(OUT3L, "HPOUT3L"), 13538c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(OUT3R, "HPOUT3R"), 13548c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(SPKDAT1L, "SPKDAT1L"), 13558c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(SPKDAT1R, "SPKDAT1R"), 13568c2ecf20Sopenharmony_ci 13578c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF1TX1, "AIF1TX1"), 13588c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF1TX2, "AIF1TX2"), 13598c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF1TX3, "AIF1TX3"), 13608c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF1TX4, "AIF1TX4"), 13618c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF1TX5, "AIF1TX5"), 13628c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF1TX6, "AIF1TX6"), 13638c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF1TX7, "AIF1TX7"), 13648c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF1TX8, "AIF1TX8"), 13658c2ecf20Sopenharmony_ci 13668c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF2TX1, "AIF2TX1"), 13678c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF2TX2, "AIF2TX2"), 13688c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF2TX3, "AIF2TX3"), 13698c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF2TX4, "AIF2TX4"), 13708c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF2TX5, "AIF2TX5"), 13718c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF2TX6, "AIF2TX6"), 13728c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF2TX7, "AIF2TX7"), 13738c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF2TX8, "AIF2TX8"), 13748c2ecf20Sopenharmony_ci 13758c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF3TX1, "AIF3TX1"), 13768c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF3TX2, "AIF3TX2"), 13778c2ecf20Sopenharmony_ci 13788c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF4TX1, "AIF4TX1"), 13798c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(AIF4TX2, "AIF4TX2"), 13808c2ecf20Sopenharmony_ci 13818c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(SLIMTX1, "SLIMTX1"), 13828c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(SLIMTX2, "SLIMTX2"), 13838c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(SLIMTX3, "SLIMTX3"), 13848c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(SLIMTX4, "SLIMTX4"), 13858c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(SLIMTX5, "SLIMTX5"), 13868c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(SLIMTX6, "SLIMTX6"), 13878c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(SLIMTX7, "SLIMTX7"), 13888c2ecf20Sopenharmony_ciMADERA_MIXER_WIDGETS(SLIMTX8, "SLIMTX8"), 13898c2ecf20Sopenharmony_ci 13908c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(SPD1TX1, "SPDIF1TX1"), 13918c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(SPD1TX2, "SPDIF1TX2"), 13928c2ecf20Sopenharmony_ci 13938c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ASRC1IN1L, "ASRC1IN1L"), 13948c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ASRC1IN1R, "ASRC1IN1R"), 13958c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ASRC1IN2L, "ASRC1IN2L"), 13968c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ASRC1IN2R, "ASRC1IN2R"), 13978c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ASRC2IN1L, "ASRC2IN1L"), 13988c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ASRC2IN1R, "ASRC2IN1R"), 13998c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ASRC2IN2L, "ASRC2IN2L"), 14008c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ASRC2IN2R, "ASRC2IN2R"), 14018c2ecf20Sopenharmony_ci 14028c2ecf20Sopenharmony_ciMADERA_DSP_WIDGETS(DSP1, "DSP1"), 14038c2ecf20Sopenharmony_ciMADERA_DSP_WIDGETS(DSP2, "DSP2"), 14048c2ecf20Sopenharmony_ciMADERA_DSP_WIDGETS(DSP3, "DSP3"), 14058c2ecf20Sopenharmony_ciMADERA_DSP_WIDGETS(DSP4, "DSP4"), 14068c2ecf20Sopenharmony_ciMADERA_DSP_WIDGETS(DSP5, "DSP5"), 14078c2ecf20Sopenharmony_ciMADERA_DSP_WIDGETS(DSP6, "DSP6"), 14088c2ecf20Sopenharmony_ciMADERA_DSP_WIDGETS(DSP7, "DSP7"), 14098c2ecf20Sopenharmony_ci 14108c2ecf20Sopenharmony_ciSND_SOC_DAPM_SWITCH("DSP1 Trigger Output", SND_SOC_NOPM, 0, 0, 14118c2ecf20Sopenharmony_ci &madera_dsp_trigger_output_mux[0]), 14128c2ecf20Sopenharmony_ciSND_SOC_DAPM_SWITCH("DSP2 Trigger Output", SND_SOC_NOPM, 0, 0, 14138c2ecf20Sopenharmony_ci &madera_dsp_trigger_output_mux[1]), 14148c2ecf20Sopenharmony_ciSND_SOC_DAPM_SWITCH("DSP3 Trigger Output", SND_SOC_NOPM, 0, 0, 14158c2ecf20Sopenharmony_ci &madera_dsp_trigger_output_mux[2]), 14168c2ecf20Sopenharmony_ciSND_SOC_DAPM_SWITCH("DSP4 Trigger Output", SND_SOC_NOPM, 0, 0, 14178c2ecf20Sopenharmony_ci &madera_dsp_trigger_output_mux[3]), 14188c2ecf20Sopenharmony_ciSND_SOC_DAPM_SWITCH("DSP5 Trigger Output", SND_SOC_NOPM, 0, 0, 14198c2ecf20Sopenharmony_ci &madera_dsp_trigger_output_mux[4]), 14208c2ecf20Sopenharmony_ciSND_SOC_DAPM_SWITCH("DSP6 Trigger Output", SND_SOC_NOPM, 0, 0, 14218c2ecf20Sopenharmony_ci &madera_dsp_trigger_output_mux[5]), 14228c2ecf20Sopenharmony_ciSND_SOC_DAPM_SWITCH("DSP7 Trigger Output", SND_SOC_NOPM, 0, 0, 14238c2ecf20Sopenharmony_ci &madera_dsp_trigger_output_mux[6]), 14248c2ecf20Sopenharmony_ci 14258c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC1DEC1, "ISRC1DEC1"), 14268c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC1DEC2, "ISRC1DEC2"), 14278c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC1DEC3, "ISRC1DEC3"), 14288c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC1DEC4, "ISRC1DEC4"), 14298c2ecf20Sopenharmony_ci 14308c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC1INT1, "ISRC1INT1"), 14318c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC1INT2, "ISRC1INT2"), 14328c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC1INT3, "ISRC1INT3"), 14338c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC1INT4, "ISRC1INT4"), 14348c2ecf20Sopenharmony_ci 14358c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC2DEC1, "ISRC2DEC1"), 14368c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC2DEC2, "ISRC2DEC2"), 14378c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC2DEC3, "ISRC2DEC3"), 14388c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC2DEC4, "ISRC2DEC4"), 14398c2ecf20Sopenharmony_ci 14408c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC2INT1, "ISRC2INT1"), 14418c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC2INT2, "ISRC2INT2"), 14428c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC2INT3, "ISRC2INT3"), 14438c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC2INT4, "ISRC2INT4"), 14448c2ecf20Sopenharmony_ci 14458c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC3DEC1, "ISRC3DEC1"), 14468c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC3DEC2, "ISRC3DEC2"), 14478c2ecf20Sopenharmony_ci 14488c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC3INT1, "ISRC3INT1"), 14498c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC3INT2, "ISRC3INT2"), 14508c2ecf20Sopenharmony_ci 14518c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC4DEC1, "ISRC4DEC1"), 14528c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC4DEC2, "ISRC4DEC2"), 14538c2ecf20Sopenharmony_ci 14548c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC4INT1, "ISRC4INT1"), 14558c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(ISRC4INT2, "ISRC4INT2"), 14568c2ecf20Sopenharmony_ci 14578c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(DFC1, "DFC1"), 14588c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(DFC2, "DFC2"), 14598c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(DFC3, "DFC3"), 14608c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(DFC4, "DFC4"), 14618c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(DFC5, "DFC5"), 14628c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(DFC6, "DFC6"), 14638c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(DFC7, "DFC7"), 14648c2ecf20Sopenharmony_ciMADERA_MUX_WIDGETS(DFC8, "DFC8"), 14658c2ecf20Sopenharmony_ci 14668c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("HPOUT1L"), 14678c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("HPOUT1R"), 14688c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("HPOUT2L"), 14698c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("HPOUT2R"), 14708c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("HPOUT3L"), 14718c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("HPOUT3R"), 14728c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("SPKDAT1L"), 14738c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("SPKDAT1R"), 14748c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("SPDIF1"), 14758c2ecf20Sopenharmony_ci 14768c2ecf20Sopenharmony_ciSND_SOC_DAPM_OUTPUT("MICSUPP"), 14778c2ecf20Sopenharmony_ci}; 14788c2ecf20Sopenharmony_ci 14798c2ecf20Sopenharmony_ci#define MADERA_MIXER_INPUT_ROUTES(name) \ 14808c2ecf20Sopenharmony_ci { name, "Noise Generator", "Noise Generator" }, \ 14818c2ecf20Sopenharmony_ci { name, "Tone Generator 1", "Tone Generator 1" }, \ 14828c2ecf20Sopenharmony_ci { name, "Tone Generator 2", "Tone Generator 2" }, \ 14838c2ecf20Sopenharmony_ci { name, "Haptics", "HAPTICS" }, \ 14848c2ecf20Sopenharmony_ci { name, "AEC1", "AEC1 Loopback" }, \ 14858c2ecf20Sopenharmony_ci { name, "AEC2", "AEC2 Loopback" }, \ 14868c2ecf20Sopenharmony_ci { name, "IN1L", "IN1L" }, \ 14878c2ecf20Sopenharmony_ci { name, "IN1R", "IN1R" }, \ 14888c2ecf20Sopenharmony_ci { name, "IN2L", "IN2L" }, \ 14898c2ecf20Sopenharmony_ci { name, "IN2R", "IN2R" }, \ 14908c2ecf20Sopenharmony_ci { name, "IN3L", "IN3L" }, \ 14918c2ecf20Sopenharmony_ci { name, "IN3R", "IN3R" }, \ 14928c2ecf20Sopenharmony_ci { name, "IN4L", "IN4L" }, \ 14938c2ecf20Sopenharmony_ci { name, "IN4R", "IN4R" }, \ 14948c2ecf20Sopenharmony_ci { name, "IN5L", "IN5L" }, \ 14958c2ecf20Sopenharmony_ci { name, "IN5R", "IN5R" }, \ 14968c2ecf20Sopenharmony_ci { name, "AIF1RX1", "AIF1RX1" }, \ 14978c2ecf20Sopenharmony_ci { name, "AIF1RX2", "AIF1RX2" }, \ 14988c2ecf20Sopenharmony_ci { name, "AIF1RX3", "AIF1RX3" }, \ 14998c2ecf20Sopenharmony_ci { name, "AIF1RX4", "AIF1RX4" }, \ 15008c2ecf20Sopenharmony_ci { name, "AIF1RX5", "AIF1RX5" }, \ 15018c2ecf20Sopenharmony_ci { name, "AIF1RX6", "AIF1RX6" }, \ 15028c2ecf20Sopenharmony_ci { name, "AIF1RX7", "AIF1RX7" }, \ 15038c2ecf20Sopenharmony_ci { name, "AIF1RX8", "AIF1RX8" }, \ 15048c2ecf20Sopenharmony_ci { name, "AIF2RX1", "AIF2RX1" }, \ 15058c2ecf20Sopenharmony_ci { name, "AIF2RX2", "AIF2RX2" }, \ 15068c2ecf20Sopenharmony_ci { name, "AIF2RX3", "AIF2RX3" }, \ 15078c2ecf20Sopenharmony_ci { name, "AIF2RX4", "AIF2RX4" }, \ 15088c2ecf20Sopenharmony_ci { name, "AIF2RX5", "AIF2RX5" }, \ 15098c2ecf20Sopenharmony_ci { name, "AIF2RX6", "AIF2RX6" }, \ 15108c2ecf20Sopenharmony_ci { name, "AIF2RX7", "AIF2RX7" }, \ 15118c2ecf20Sopenharmony_ci { name, "AIF2RX8", "AIF2RX8" }, \ 15128c2ecf20Sopenharmony_ci { name, "AIF3RX1", "AIF3RX1" }, \ 15138c2ecf20Sopenharmony_ci { name, "AIF3RX2", "AIF3RX2" }, \ 15148c2ecf20Sopenharmony_ci { name, "AIF4RX1", "AIF4RX1" }, \ 15158c2ecf20Sopenharmony_ci { name, "AIF4RX2", "AIF4RX2" }, \ 15168c2ecf20Sopenharmony_ci { name, "SLIMRX1", "SLIMRX1" }, \ 15178c2ecf20Sopenharmony_ci { name, "SLIMRX2", "SLIMRX2" }, \ 15188c2ecf20Sopenharmony_ci { name, "SLIMRX3", "SLIMRX3" }, \ 15198c2ecf20Sopenharmony_ci { name, "SLIMRX4", "SLIMRX4" }, \ 15208c2ecf20Sopenharmony_ci { name, "SLIMRX5", "SLIMRX5" }, \ 15218c2ecf20Sopenharmony_ci { name, "SLIMRX6", "SLIMRX6" }, \ 15228c2ecf20Sopenharmony_ci { name, "SLIMRX7", "SLIMRX7" }, \ 15238c2ecf20Sopenharmony_ci { name, "SLIMRX8", "SLIMRX8" }, \ 15248c2ecf20Sopenharmony_ci { name, "EQ1", "EQ1" }, \ 15258c2ecf20Sopenharmony_ci { name, "EQ2", "EQ2" }, \ 15268c2ecf20Sopenharmony_ci { name, "EQ3", "EQ3" }, \ 15278c2ecf20Sopenharmony_ci { name, "EQ4", "EQ4" }, \ 15288c2ecf20Sopenharmony_ci { name, "DRC1L", "DRC1L" }, \ 15298c2ecf20Sopenharmony_ci { name, "DRC1R", "DRC1R" }, \ 15308c2ecf20Sopenharmony_ci { name, "DRC2L", "DRC2L" }, \ 15318c2ecf20Sopenharmony_ci { name, "DRC2R", "DRC2R" }, \ 15328c2ecf20Sopenharmony_ci { name, "LHPF1", "LHPF1" }, \ 15338c2ecf20Sopenharmony_ci { name, "LHPF2", "LHPF2" }, \ 15348c2ecf20Sopenharmony_ci { name, "LHPF3", "LHPF3" }, \ 15358c2ecf20Sopenharmony_ci { name, "LHPF4", "LHPF4" }, \ 15368c2ecf20Sopenharmony_ci { name, "ASRC1IN1L", "ASRC1IN1L" }, \ 15378c2ecf20Sopenharmony_ci { name, "ASRC1IN1R", "ASRC1IN1R" }, \ 15388c2ecf20Sopenharmony_ci { name, "ASRC1IN2L", "ASRC1IN2L" }, \ 15398c2ecf20Sopenharmony_ci { name, "ASRC1IN2R", "ASRC1IN2R" }, \ 15408c2ecf20Sopenharmony_ci { name, "ASRC2IN1L", "ASRC2IN1L" }, \ 15418c2ecf20Sopenharmony_ci { name, "ASRC2IN1R", "ASRC2IN1R" }, \ 15428c2ecf20Sopenharmony_ci { name, "ASRC2IN2L", "ASRC2IN2L" }, \ 15438c2ecf20Sopenharmony_ci { name, "ASRC2IN2R", "ASRC2IN2R" }, \ 15448c2ecf20Sopenharmony_ci { name, "ISRC1DEC1", "ISRC1DEC1" }, \ 15458c2ecf20Sopenharmony_ci { name, "ISRC1DEC2", "ISRC1DEC2" }, \ 15468c2ecf20Sopenharmony_ci { name, "ISRC1DEC3", "ISRC1DEC3" }, \ 15478c2ecf20Sopenharmony_ci { name, "ISRC1DEC4", "ISRC1DEC4" }, \ 15488c2ecf20Sopenharmony_ci { name, "ISRC1INT1", "ISRC1INT1" }, \ 15498c2ecf20Sopenharmony_ci { name, "ISRC1INT2", "ISRC1INT2" }, \ 15508c2ecf20Sopenharmony_ci { name, "ISRC1INT3", "ISRC1INT3" }, \ 15518c2ecf20Sopenharmony_ci { name, "ISRC1INT4", "ISRC1INT4" }, \ 15528c2ecf20Sopenharmony_ci { name, "ISRC2DEC1", "ISRC2DEC1" }, \ 15538c2ecf20Sopenharmony_ci { name, "ISRC2DEC2", "ISRC2DEC2" }, \ 15548c2ecf20Sopenharmony_ci { name, "ISRC2DEC3", "ISRC2DEC3" }, \ 15558c2ecf20Sopenharmony_ci { name, "ISRC2DEC4", "ISRC2DEC4" }, \ 15568c2ecf20Sopenharmony_ci { name, "ISRC2INT1", "ISRC2INT1" }, \ 15578c2ecf20Sopenharmony_ci { name, "ISRC2INT2", "ISRC2INT2" }, \ 15588c2ecf20Sopenharmony_ci { name, "ISRC2INT3", "ISRC2INT3" }, \ 15598c2ecf20Sopenharmony_ci { name, "ISRC2INT4", "ISRC2INT4" }, \ 15608c2ecf20Sopenharmony_ci { name, "ISRC3DEC1", "ISRC3DEC1" }, \ 15618c2ecf20Sopenharmony_ci { name, "ISRC3DEC2", "ISRC3DEC2" }, \ 15628c2ecf20Sopenharmony_ci { name, "ISRC3INT1", "ISRC3INT1" }, \ 15638c2ecf20Sopenharmony_ci { name, "ISRC3INT2", "ISRC3INT2" }, \ 15648c2ecf20Sopenharmony_ci { name, "ISRC4DEC1", "ISRC4DEC1" }, \ 15658c2ecf20Sopenharmony_ci { name, "ISRC4DEC2", "ISRC4DEC2" }, \ 15668c2ecf20Sopenharmony_ci { name, "ISRC4INT1", "ISRC4INT1" }, \ 15678c2ecf20Sopenharmony_ci { name, "ISRC4INT2", "ISRC4INT2" }, \ 15688c2ecf20Sopenharmony_ci { name, "DSP1.1", "DSP1" }, \ 15698c2ecf20Sopenharmony_ci { name, "DSP1.2", "DSP1" }, \ 15708c2ecf20Sopenharmony_ci { name, "DSP1.3", "DSP1" }, \ 15718c2ecf20Sopenharmony_ci { name, "DSP1.4", "DSP1" }, \ 15728c2ecf20Sopenharmony_ci { name, "DSP1.5", "DSP1" }, \ 15738c2ecf20Sopenharmony_ci { name, "DSP1.6", "DSP1" }, \ 15748c2ecf20Sopenharmony_ci { name, "DSP2.1", "DSP2" }, \ 15758c2ecf20Sopenharmony_ci { name, "DSP2.2", "DSP2" }, \ 15768c2ecf20Sopenharmony_ci { name, "DSP2.3", "DSP2" }, \ 15778c2ecf20Sopenharmony_ci { name, "DSP2.4", "DSP2" }, \ 15788c2ecf20Sopenharmony_ci { name, "DSP2.5", "DSP2" }, \ 15798c2ecf20Sopenharmony_ci { name, "DSP2.6", "DSP2" }, \ 15808c2ecf20Sopenharmony_ci { name, "DSP3.1", "DSP3" }, \ 15818c2ecf20Sopenharmony_ci { name, "DSP3.2", "DSP3" }, \ 15828c2ecf20Sopenharmony_ci { name, "DSP3.3", "DSP3" }, \ 15838c2ecf20Sopenharmony_ci { name, "DSP3.4", "DSP3" }, \ 15848c2ecf20Sopenharmony_ci { name, "DSP3.5", "DSP3" }, \ 15858c2ecf20Sopenharmony_ci { name, "DSP3.6", "DSP3" }, \ 15868c2ecf20Sopenharmony_ci { name, "DSP4.1", "DSP4" }, \ 15878c2ecf20Sopenharmony_ci { name, "DSP4.2", "DSP4" }, \ 15888c2ecf20Sopenharmony_ci { name, "DSP4.3", "DSP4" }, \ 15898c2ecf20Sopenharmony_ci { name, "DSP4.4", "DSP4" }, \ 15908c2ecf20Sopenharmony_ci { name, "DSP4.5", "DSP4" }, \ 15918c2ecf20Sopenharmony_ci { name, "DSP4.6", "DSP4" }, \ 15928c2ecf20Sopenharmony_ci { name, "DSP5.1", "DSP5" }, \ 15938c2ecf20Sopenharmony_ci { name, "DSP5.2", "DSP5" }, \ 15948c2ecf20Sopenharmony_ci { name, "DSP5.3", "DSP5" }, \ 15958c2ecf20Sopenharmony_ci { name, "DSP5.4", "DSP5" }, \ 15968c2ecf20Sopenharmony_ci { name, "DSP5.5", "DSP5" }, \ 15978c2ecf20Sopenharmony_ci { name, "DSP5.6", "DSP5" }, \ 15988c2ecf20Sopenharmony_ci { name, "DSP6.1", "DSP6" }, \ 15998c2ecf20Sopenharmony_ci { name, "DSP6.2", "DSP6" }, \ 16008c2ecf20Sopenharmony_ci { name, "DSP6.3", "DSP6" }, \ 16018c2ecf20Sopenharmony_ci { name, "DSP6.4", "DSP6" }, \ 16028c2ecf20Sopenharmony_ci { name, "DSP6.5", "DSP6" }, \ 16038c2ecf20Sopenharmony_ci { name, "DSP6.6", "DSP6" }, \ 16048c2ecf20Sopenharmony_ci { name, "DSP7.1", "DSP7" }, \ 16058c2ecf20Sopenharmony_ci { name, "DSP7.2", "DSP7" }, \ 16068c2ecf20Sopenharmony_ci { name, "DSP7.3", "DSP7" }, \ 16078c2ecf20Sopenharmony_ci { name, "DSP7.4", "DSP7" }, \ 16088c2ecf20Sopenharmony_ci { name, "DSP7.5", "DSP7" }, \ 16098c2ecf20Sopenharmony_ci { name, "DSP7.6", "DSP7" }, \ 16108c2ecf20Sopenharmony_ci { name, "DFC1", "DFC1" }, \ 16118c2ecf20Sopenharmony_ci { name, "DFC2", "DFC2" }, \ 16128c2ecf20Sopenharmony_ci { name, "DFC3", "DFC3" }, \ 16138c2ecf20Sopenharmony_ci { name, "DFC4", "DFC4" }, \ 16148c2ecf20Sopenharmony_ci { name, "DFC5", "DFC5" }, \ 16158c2ecf20Sopenharmony_ci { name, "DFC6", "DFC6" }, \ 16168c2ecf20Sopenharmony_ci { name, "DFC7", "DFC7" }, \ 16178c2ecf20Sopenharmony_ci { name, "DFC8", "DFC8" } 16188c2ecf20Sopenharmony_ci 16198c2ecf20Sopenharmony_cistatic const struct snd_soc_dapm_route cs47l90_dapm_routes[] = { 16208c2ecf20Sopenharmony_ci /* Internal clock domains */ 16218c2ecf20Sopenharmony_ci { "EQ1", NULL, "FXCLK" }, 16228c2ecf20Sopenharmony_ci { "EQ2", NULL, "FXCLK" }, 16238c2ecf20Sopenharmony_ci { "EQ3", NULL, "FXCLK" }, 16248c2ecf20Sopenharmony_ci { "EQ4", NULL, "FXCLK" }, 16258c2ecf20Sopenharmony_ci { "DRC1L", NULL, "FXCLK" }, 16268c2ecf20Sopenharmony_ci { "DRC1R", NULL, "FXCLK" }, 16278c2ecf20Sopenharmony_ci { "DRC2L", NULL, "FXCLK" }, 16288c2ecf20Sopenharmony_ci { "DRC2R", NULL, "FXCLK" }, 16298c2ecf20Sopenharmony_ci { "LHPF1", NULL, "FXCLK" }, 16308c2ecf20Sopenharmony_ci { "LHPF2", NULL, "FXCLK" }, 16318c2ecf20Sopenharmony_ci { "LHPF3", NULL, "FXCLK" }, 16328c2ecf20Sopenharmony_ci { "LHPF4", NULL, "FXCLK" }, 16338c2ecf20Sopenharmony_ci { "PWM1 Mixer", NULL, "PWMCLK" }, 16348c2ecf20Sopenharmony_ci { "PWM2 Mixer", NULL, "PWMCLK" }, 16358c2ecf20Sopenharmony_ci { "OUT1L", NULL, "OUTCLK" }, 16368c2ecf20Sopenharmony_ci { "OUT1R", NULL, "OUTCLK" }, 16378c2ecf20Sopenharmony_ci { "OUT2L", NULL, "OUTCLK" }, 16388c2ecf20Sopenharmony_ci { "OUT2R", NULL, "OUTCLK" }, 16398c2ecf20Sopenharmony_ci { "OUT3L", NULL, "OUTCLK" }, 16408c2ecf20Sopenharmony_ci { "OUT3R", NULL, "OUTCLK" }, 16418c2ecf20Sopenharmony_ci { "OUT5L", NULL, "OUTCLK" }, 16428c2ecf20Sopenharmony_ci { "OUT5R", NULL, "OUTCLK" }, 16438c2ecf20Sopenharmony_ci { "AIF1TX1", NULL, "AIF1TXCLK" }, 16448c2ecf20Sopenharmony_ci { "AIF1TX2", NULL, "AIF1TXCLK" }, 16458c2ecf20Sopenharmony_ci { "AIF1TX3", NULL, "AIF1TXCLK" }, 16468c2ecf20Sopenharmony_ci { "AIF1TX4", NULL, "AIF1TXCLK" }, 16478c2ecf20Sopenharmony_ci { "AIF1TX5", NULL, "AIF1TXCLK" }, 16488c2ecf20Sopenharmony_ci { "AIF1TX6", NULL, "AIF1TXCLK" }, 16498c2ecf20Sopenharmony_ci { "AIF1TX7", NULL, "AIF1TXCLK" }, 16508c2ecf20Sopenharmony_ci { "AIF1TX8", NULL, "AIF1TXCLK" }, 16518c2ecf20Sopenharmony_ci { "AIF2TX1", NULL, "AIF2TXCLK" }, 16528c2ecf20Sopenharmony_ci { "AIF2TX2", NULL, "AIF2TXCLK" }, 16538c2ecf20Sopenharmony_ci { "AIF2TX3", NULL, "AIF2TXCLK" }, 16548c2ecf20Sopenharmony_ci { "AIF2TX4", NULL, "AIF2TXCLK" }, 16558c2ecf20Sopenharmony_ci { "AIF2TX5", NULL, "AIF2TXCLK" }, 16568c2ecf20Sopenharmony_ci { "AIF2TX6", NULL, "AIF2TXCLK" }, 16578c2ecf20Sopenharmony_ci { "AIF2TX7", NULL, "AIF2TXCLK" }, 16588c2ecf20Sopenharmony_ci { "AIF2TX8", NULL, "AIF2TXCLK" }, 16598c2ecf20Sopenharmony_ci { "AIF3TX1", NULL, "AIF3TXCLK" }, 16608c2ecf20Sopenharmony_ci { "AIF3TX2", NULL, "AIF3TXCLK" }, 16618c2ecf20Sopenharmony_ci { "AIF4TX1", NULL, "AIF4TXCLK" }, 16628c2ecf20Sopenharmony_ci { "AIF4TX2", NULL, "AIF4TXCLK" }, 16638c2ecf20Sopenharmony_ci { "SLIMTX1", NULL, "SLIMBUSCLK" }, 16648c2ecf20Sopenharmony_ci { "SLIMTX2", NULL, "SLIMBUSCLK" }, 16658c2ecf20Sopenharmony_ci { "SLIMTX3", NULL, "SLIMBUSCLK" }, 16668c2ecf20Sopenharmony_ci { "SLIMTX4", NULL, "SLIMBUSCLK" }, 16678c2ecf20Sopenharmony_ci { "SLIMTX5", NULL, "SLIMBUSCLK" }, 16688c2ecf20Sopenharmony_ci { "SLIMTX6", NULL, "SLIMBUSCLK" }, 16698c2ecf20Sopenharmony_ci { "SLIMTX7", NULL, "SLIMBUSCLK" }, 16708c2ecf20Sopenharmony_ci { "SLIMTX8", NULL, "SLIMBUSCLK" }, 16718c2ecf20Sopenharmony_ci { "SPD1TX1", NULL, "SPDCLK" }, 16728c2ecf20Sopenharmony_ci { "SPD1TX2", NULL, "SPDCLK" }, 16738c2ecf20Sopenharmony_ci { "DSP1", NULL, "DSP1CLK" }, 16748c2ecf20Sopenharmony_ci { "DSP2", NULL, "DSP2CLK" }, 16758c2ecf20Sopenharmony_ci { "DSP3", NULL, "DSP3CLK" }, 16768c2ecf20Sopenharmony_ci { "DSP4", NULL, "DSP4CLK" }, 16778c2ecf20Sopenharmony_ci { "DSP5", NULL, "DSP5CLK" }, 16788c2ecf20Sopenharmony_ci { "DSP6", NULL, "DSP6CLK" }, 16798c2ecf20Sopenharmony_ci { "DSP7", NULL, "DSP7CLK" }, 16808c2ecf20Sopenharmony_ci { "ISRC1DEC1", NULL, "ISRC1CLK" }, 16818c2ecf20Sopenharmony_ci { "ISRC1DEC2", NULL, "ISRC1CLK" }, 16828c2ecf20Sopenharmony_ci { "ISRC1DEC3", NULL, "ISRC1CLK" }, 16838c2ecf20Sopenharmony_ci { "ISRC1DEC4", NULL, "ISRC1CLK" }, 16848c2ecf20Sopenharmony_ci { "ISRC1INT1", NULL, "ISRC1CLK" }, 16858c2ecf20Sopenharmony_ci { "ISRC1INT2", NULL, "ISRC1CLK" }, 16868c2ecf20Sopenharmony_ci { "ISRC1INT3", NULL, "ISRC1CLK" }, 16878c2ecf20Sopenharmony_ci { "ISRC1INT4", NULL, "ISRC1CLK" }, 16888c2ecf20Sopenharmony_ci { "ISRC2DEC1", NULL, "ISRC2CLK" }, 16898c2ecf20Sopenharmony_ci { "ISRC2DEC2", NULL, "ISRC2CLK" }, 16908c2ecf20Sopenharmony_ci { "ISRC2DEC3", NULL, "ISRC2CLK" }, 16918c2ecf20Sopenharmony_ci { "ISRC2DEC4", NULL, "ISRC2CLK" }, 16928c2ecf20Sopenharmony_ci { "ISRC2INT1", NULL, "ISRC2CLK" }, 16938c2ecf20Sopenharmony_ci { "ISRC2INT2", NULL, "ISRC2CLK" }, 16948c2ecf20Sopenharmony_ci { "ISRC2INT3", NULL, "ISRC2CLK" }, 16958c2ecf20Sopenharmony_ci { "ISRC2INT4", NULL, "ISRC2CLK" }, 16968c2ecf20Sopenharmony_ci { "ISRC3DEC1", NULL, "ISRC3CLK" }, 16978c2ecf20Sopenharmony_ci { "ISRC3DEC2", NULL, "ISRC3CLK" }, 16988c2ecf20Sopenharmony_ci { "ISRC3INT1", NULL, "ISRC3CLK" }, 16998c2ecf20Sopenharmony_ci { "ISRC3INT2", NULL, "ISRC3CLK" }, 17008c2ecf20Sopenharmony_ci { "ISRC4DEC1", NULL, "ISRC4CLK" }, 17018c2ecf20Sopenharmony_ci { "ISRC4DEC2", NULL, "ISRC4CLK" }, 17028c2ecf20Sopenharmony_ci { "ISRC4INT1", NULL, "ISRC4CLK" }, 17038c2ecf20Sopenharmony_ci { "ISRC4INT2", NULL, "ISRC4CLK" }, 17048c2ecf20Sopenharmony_ci { "ASRC1IN1L", NULL, "ASRC1CLK" }, 17058c2ecf20Sopenharmony_ci { "ASRC1IN1R", NULL, "ASRC1CLK" }, 17068c2ecf20Sopenharmony_ci { "ASRC1IN2L", NULL, "ASRC1CLK" }, 17078c2ecf20Sopenharmony_ci { "ASRC1IN2R", NULL, "ASRC1CLK" }, 17088c2ecf20Sopenharmony_ci { "ASRC2IN1L", NULL, "ASRC2CLK" }, 17098c2ecf20Sopenharmony_ci { "ASRC2IN1R", NULL, "ASRC2CLK" }, 17108c2ecf20Sopenharmony_ci { "ASRC2IN2L", NULL, "ASRC2CLK" }, 17118c2ecf20Sopenharmony_ci { "ASRC2IN2R", NULL, "ASRC2CLK" }, 17128c2ecf20Sopenharmony_ci { "DFC1", NULL, "DFCCLK" }, 17138c2ecf20Sopenharmony_ci { "DFC2", NULL, "DFCCLK" }, 17148c2ecf20Sopenharmony_ci { "DFC3", NULL, "DFCCLK" }, 17158c2ecf20Sopenharmony_ci { "DFC4", NULL, "DFCCLK" }, 17168c2ecf20Sopenharmony_ci { "DFC5", NULL, "DFCCLK" }, 17178c2ecf20Sopenharmony_ci { "DFC6", NULL, "DFCCLK" }, 17188c2ecf20Sopenharmony_ci { "DFC7", NULL, "DFCCLK" }, 17198c2ecf20Sopenharmony_ci { "DFC8", NULL, "DFCCLK" }, 17208c2ecf20Sopenharmony_ci 17218c2ecf20Sopenharmony_ci { "AIF2 Capture", NULL, "DBVDD2" }, 17228c2ecf20Sopenharmony_ci { "AIF2 Playback", NULL, "DBVDD2" }, 17238c2ecf20Sopenharmony_ci 17248c2ecf20Sopenharmony_ci { "AIF3 Capture", NULL, "DBVDD3" }, 17258c2ecf20Sopenharmony_ci { "AIF3 Playback", NULL, "DBVDD3" }, 17268c2ecf20Sopenharmony_ci 17278c2ecf20Sopenharmony_ci { "AIF4 Capture", NULL, "DBVDD3" }, 17288c2ecf20Sopenharmony_ci { "AIF4 Playback", NULL, "DBVDD3" }, 17298c2ecf20Sopenharmony_ci 17308c2ecf20Sopenharmony_ci { "OUT1L", NULL, "CPVDD1" }, 17318c2ecf20Sopenharmony_ci { "OUT1L", NULL, "CPVDD2" }, 17328c2ecf20Sopenharmony_ci { "OUT1R", NULL, "CPVDD1" }, 17338c2ecf20Sopenharmony_ci { "OUT1R", NULL, "CPVDD2" }, 17348c2ecf20Sopenharmony_ci { "OUT2L", NULL, "CPVDD1" }, 17358c2ecf20Sopenharmony_ci { "OUT2L", NULL, "CPVDD2" }, 17368c2ecf20Sopenharmony_ci { "OUT2R", NULL, "CPVDD1" }, 17378c2ecf20Sopenharmony_ci { "OUT2R", NULL, "CPVDD2" }, 17388c2ecf20Sopenharmony_ci { "OUT3L", NULL, "CPVDD1" }, 17398c2ecf20Sopenharmony_ci { "OUT3L", NULL, "CPVDD2" }, 17408c2ecf20Sopenharmony_ci { "OUT3R", NULL, "CPVDD1" }, 17418c2ecf20Sopenharmony_ci { "OUT3R", NULL, "CPVDD2" }, 17428c2ecf20Sopenharmony_ci 17438c2ecf20Sopenharmony_ci { "OUT1L", NULL, "SYSCLK" }, 17448c2ecf20Sopenharmony_ci { "OUT1R", NULL, "SYSCLK" }, 17458c2ecf20Sopenharmony_ci { "OUT2L", NULL, "SYSCLK" }, 17468c2ecf20Sopenharmony_ci { "OUT2R", NULL, "SYSCLK" }, 17478c2ecf20Sopenharmony_ci { "OUT3L", NULL, "SYSCLK" }, 17488c2ecf20Sopenharmony_ci { "OUT3R", NULL, "SYSCLK" }, 17498c2ecf20Sopenharmony_ci { "OUT5L", NULL, "SYSCLK" }, 17508c2ecf20Sopenharmony_ci { "OUT5R", NULL, "SYSCLK" }, 17518c2ecf20Sopenharmony_ci 17528c2ecf20Sopenharmony_ci { "SPD1", NULL, "SYSCLK" }, 17538c2ecf20Sopenharmony_ci { "SPD1", NULL, "SPD1TX1" }, 17548c2ecf20Sopenharmony_ci { "SPD1", NULL, "SPD1TX2" }, 17558c2ecf20Sopenharmony_ci 17568c2ecf20Sopenharmony_ci { "IN1L", NULL, "SYSCLK" }, 17578c2ecf20Sopenharmony_ci { "IN1R", NULL, "SYSCLK" }, 17588c2ecf20Sopenharmony_ci { "IN2L", NULL, "SYSCLK" }, 17598c2ecf20Sopenharmony_ci { "IN2R", NULL, "SYSCLK" }, 17608c2ecf20Sopenharmony_ci { "IN3L", NULL, "SYSCLK" }, 17618c2ecf20Sopenharmony_ci { "IN3R", NULL, "SYSCLK" }, 17628c2ecf20Sopenharmony_ci { "IN4L", NULL, "SYSCLK" }, 17638c2ecf20Sopenharmony_ci { "IN4R", NULL, "SYSCLK" }, 17648c2ecf20Sopenharmony_ci { "IN5L", NULL, "SYSCLK" }, 17658c2ecf20Sopenharmony_ci { "IN5R", NULL, "SYSCLK" }, 17668c2ecf20Sopenharmony_ci 17678c2ecf20Sopenharmony_ci { "IN3L", NULL, "DBVDD4" }, 17688c2ecf20Sopenharmony_ci { "IN3R", NULL, "DBVDD4" }, 17698c2ecf20Sopenharmony_ci { "IN4L", NULL, "DBVDD4" }, 17708c2ecf20Sopenharmony_ci { "IN4R", NULL, "DBVDD4" }, 17718c2ecf20Sopenharmony_ci { "IN5L", NULL, "DBVDD4" }, 17728c2ecf20Sopenharmony_ci { "IN5R", NULL, "DBVDD4" }, 17738c2ecf20Sopenharmony_ci 17748c2ecf20Sopenharmony_ci { "ASRC1IN1L", NULL, "SYSCLK" }, 17758c2ecf20Sopenharmony_ci { "ASRC1IN1R", NULL, "SYSCLK" }, 17768c2ecf20Sopenharmony_ci { "ASRC1IN2L", NULL, "SYSCLK" }, 17778c2ecf20Sopenharmony_ci { "ASRC1IN2R", NULL, "SYSCLK" }, 17788c2ecf20Sopenharmony_ci { "ASRC2IN1L", NULL, "SYSCLK" }, 17798c2ecf20Sopenharmony_ci { "ASRC2IN1R", NULL, "SYSCLK" }, 17808c2ecf20Sopenharmony_ci { "ASRC2IN2L", NULL, "SYSCLK" }, 17818c2ecf20Sopenharmony_ci { "ASRC2IN2R", NULL, "SYSCLK" }, 17828c2ecf20Sopenharmony_ci 17838c2ecf20Sopenharmony_ci { "ASRC1IN1L", NULL, "ASYNCCLK" }, 17848c2ecf20Sopenharmony_ci { "ASRC1IN1R", NULL, "ASYNCCLK" }, 17858c2ecf20Sopenharmony_ci { "ASRC1IN2L", NULL, "ASYNCCLK" }, 17868c2ecf20Sopenharmony_ci { "ASRC1IN2R", NULL, "ASYNCCLK" }, 17878c2ecf20Sopenharmony_ci { "ASRC2IN1L", NULL, "ASYNCCLK" }, 17888c2ecf20Sopenharmony_ci { "ASRC2IN1R", NULL, "ASYNCCLK" }, 17898c2ecf20Sopenharmony_ci { "ASRC2IN2L", NULL, "ASYNCCLK" }, 17908c2ecf20Sopenharmony_ci { "ASRC2IN2R", NULL, "ASYNCCLK" }, 17918c2ecf20Sopenharmony_ci 17928c2ecf20Sopenharmony_ci { "MICBIAS1", NULL, "MICVDD" }, 17938c2ecf20Sopenharmony_ci { "MICBIAS2", NULL, "MICVDD" }, 17948c2ecf20Sopenharmony_ci 17958c2ecf20Sopenharmony_ci { "MICBIAS1A", NULL, "MICBIAS1" }, 17968c2ecf20Sopenharmony_ci { "MICBIAS1B", NULL, "MICBIAS1" }, 17978c2ecf20Sopenharmony_ci { "MICBIAS1C", NULL, "MICBIAS1" }, 17988c2ecf20Sopenharmony_ci { "MICBIAS1D", NULL, "MICBIAS1" }, 17998c2ecf20Sopenharmony_ci 18008c2ecf20Sopenharmony_ci { "MICBIAS2A", NULL, "MICBIAS2" }, 18018c2ecf20Sopenharmony_ci { "MICBIAS2B", NULL, "MICBIAS2" }, 18028c2ecf20Sopenharmony_ci { "MICBIAS2C", NULL, "MICBIAS2" }, 18038c2ecf20Sopenharmony_ci { "MICBIAS2D", NULL, "MICBIAS2" }, 18048c2ecf20Sopenharmony_ci 18058c2ecf20Sopenharmony_ci { "Noise Generator", NULL, "SYSCLK" }, 18068c2ecf20Sopenharmony_ci { "Tone Generator 1", NULL, "SYSCLK" }, 18078c2ecf20Sopenharmony_ci { "Tone Generator 2", NULL, "SYSCLK" }, 18088c2ecf20Sopenharmony_ci 18098c2ecf20Sopenharmony_ci { "Noise Generator", NULL, "NOISE" }, 18108c2ecf20Sopenharmony_ci { "Tone Generator 1", NULL, "TONE" }, 18118c2ecf20Sopenharmony_ci { "Tone Generator 2", NULL, "TONE" }, 18128c2ecf20Sopenharmony_ci 18138c2ecf20Sopenharmony_ci { "AIF1 Capture", NULL, "AIF1TX1" }, 18148c2ecf20Sopenharmony_ci { "AIF1 Capture", NULL, "AIF1TX2" }, 18158c2ecf20Sopenharmony_ci { "AIF1 Capture", NULL, "AIF1TX3" }, 18168c2ecf20Sopenharmony_ci { "AIF1 Capture", NULL, "AIF1TX4" }, 18178c2ecf20Sopenharmony_ci { "AIF1 Capture", NULL, "AIF1TX5" }, 18188c2ecf20Sopenharmony_ci { "AIF1 Capture", NULL, "AIF1TX6" }, 18198c2ecf20Sopenharmony_ci { "AIF1 Capture", NULL, "AIF1TX7" }, 18208c2ecf20Sopenharmony_ci { "AIF1 Capture", NULL, "AIF1TX8" }, 18218c2ecf20Sopenharmony_ci 18228c2ecf20Sopenharmony_ci { "AIF1RX1", NULL, "AIF1 Playback" }, 18238c2ecf20Sopenharmony_ci { "AIF1RX2", NULL, "AIF1 Playback" }, 18248c2ecf20Sopenharmony_ci { "AIF1RX3", NULL, "AIF1 Playback" }, 18258c2ecf20Sopenharmony_ci { "AIF1RX4", NULL, "AIF1 Playback" }, 18268c2ecf20Sopenharmony_ci { "AIF1RX5", NULL, "AIF1 Playback" }, 18278c2ecf20Sopenharmony_ci { "AIF1RX6", NULL, "AIF1 Playback" }, 18288c2ecf20Sopenharmony_ci { "AIF1RX7", NULL, "AIF1 Playback" }, 18298c2ecf20Sopenharmony_ci { "AIF1RX8", NULL, "AIF1 Playback" }, 18308c2ecf20Sopenharmony_ci 18318c2ecf20Sopenharmony_ci { "AIF2 Capture", NULL, "AIF2TX1" }, 18328c2ecf20Sopenharmony_ci { "AIF2 Capture", NULL, "AIF2TX2" }, 18338c2ecf20Sopenharmony_ci { "AIF2 Capture", NULL, "AIF2TX3" }, 18348c2ecf20Sopenharmony_ci { "AIF2 Capture", NULL, "AIF2TX4" }, 18358c2ecf20Sopenharmony_ci { "AIF2 Capture", NULL, "AIF2TX5" }, 18368c2ecf20Sopenharmony_ci { "AIF2 Capture", NULL, "AIF2TX6" }, 18378c2ecf20Sopenharmony_ci { "AIF2 Capture", NULL, "AIF2TX7" }, 18388c2ecf20Sopenharmony_ci { "AIF2 Capture", NULL, "AIF2TX8" }, 18398c2ecf20Sopenharmony_ci 18408c2ecf20Sopenharmony_ci { "AIF2RX1", NULL, "AIF2 Playback" }, 18418c2ecf20Sopenharmony_ci { "AIF2RX2", NULL, "AIF2 Playback" }, 18428c2ecf20Sopenharmony_ci { "AIF2RX3", NULL, "AIF2 Playback" }, 18438c2ecf20Sopenharmony_ci { "AIF2RX4", NULL, "AIF2 Playback" }, 18448c2ecf20Sopenharmony_ci { "AIF2RX5", NULL, "AIF2 Playback" }, 18458c2ecf20Sopenharmony_ci { "AIF2RX6", NULL, "AIF2 Playback" }, 18468c2ecf20Sopenharmony_ci { "AIF2RX7", NULL, "AIF2 Playback" }, 18478c2ecf20Sopenharmony_ci { "AIF2RX8", NULL, "AIF2 Playback" }, 18488c2ecf20Sopenharmony_ci 18498c2ecf20Sopenharmony_ci { "AIF3 Capture", NULL, "AIF3TX1" }, 18508c2ecf20Sopenharmony_ci { "AIF3 Capture", NULL, "AIF3TX2" }, 18518c2ecf20Sopenharmony_ci 18528c2ecf20Sopenharmony_ci { "AIF3RX1", NULL, "AIF3 Playback" }, 18538c2ecf20Sopenharmony_ci { "AIF3RX2", NULL, "AIF3 Playback" }, 18548c2ecf20Sopenharmony_ci 18558c2ecf20Sopenharmony_ci { "AIF4 Capture", NULL, "AIF4TX1" }, 18568c2ecf20Sopenharmony_ci { "AIF4 Capture", NULL, "AIF4TX2" }, 18578c2ecf20Sopenharmony_ci 18588c2ecf20Sopenharmony_ci { "AIF4RX1", NULL, "AIF4 Playback" }, 18598c2ecf20Sopenharmony_ci { "AIF4RX2", NULL, "AIF4 Playback" }, 18608c2ecf20Sopenharmony_ci 18618c2ecf20Sopenharmony_ci { "Slim1 Capture", NULL, "SLIMTX1" }, 18628c2ecf20Sopenharmony_ci { "Slim1 Capture", NULL, "SLIMTX2" }, 18638c2ecf20Sopenharmony_ci { "Slim1 Capture", NULL, "SLIMTX3" }, 18648c2ecf20Sopenharmony_ci { "Slim1 Capture", NULL, "SLIMTX4" }, 18658c2ecf20Sopenharmony_ci 18668c2ecf20Sopenharmony_ci { "SLIMRX1", NULL, "Slim1 Playback" }, 18678c2ecf20Sopenharmony_ci { "SLIMRX2", NULL, "Slim1 Playback" }, 18688c2ecf20Sopenharmony_ci { "SLIMRX3", NULL, "Slim1 Playback" }, 18698c2ecf20Sopenharmony_ci { "SLIMRX4", NULL, "Slim1 Playback" }, 18708c2ecf20Sopenharmony_ci 18718c2ecf20Sopenharmony_ci { "Slim2 Capture", NULL, "SLIMTX5" }, 18728c2ecf20Sopenharmony_ci { "Slim2 Capture", NULL, "SLIMTX6" }, 18738c2ecf20Sopenharmony_ci 18748c2ecf20Sopenharmony_ci { "SLIMRX5", NULL, "Slim2 Playback" }, 18758c2ecf20Sopenharmony_ci { "SLIMRX6", NULL, "Slim2 Playback" }, 18768c2ecf20Sopenharmony_ci 18778c2ecf20Sopenharmony_ci { "Slim3 Capture", NULL, "SLIMTX7" }, 18788c2ecf20Sopenharmony_ci { "Slim3 Capture", NULL, "SLIMTX8" }, 18798c2ecf20Sopenharmony_ci 18808c2ecf20Sopenharmony_ci { "SLIMRX7", NULL, "Slim3 Playback" }, 18818c2ecf20Sopenharmony_ci { "SLIMRX8", NULL, "Slim3 Playback" }, 18828c2ecf20Sopenharmony_ci 18838c2ecf20Sopenharmony_ci { "AIF1 Playback", NULL, "SYSCLK" }, 18848c2ecf20Sopenharmony_ci { "AIF2 Playback", NULL, "SYSCLK" }, 18858c2ecf20Sopenharmony_ci { "AIF3 Playback", NULL, "SYSCLK" }, 18868c2ecf20Sopenharmony_ci { "AIF4 Playback", NULL, "SYSCLK" }, 18878c2ecf20Sopenharmony_ci { "Slim1 Playback", NULL, "SYSCLK" }, 18888c2ecf20Sopenharmony_ci { "Slim2 Playback", NULL, "SYSCLK" }, 18898c2ecf20Sopenharmony_ci { "Slim3 Playback", NULL, "SYSCLK" }, 18908c2ecf20Sopenharmony_ci 18918c2ecf20Sopenharmony_ci { "AIF1 Capture", NULL, "SYSCLK" }, 18928c2ecf20Sopenharmony_ci { "AIF2 Capture", NULL, "SYSCLK" }, 18938c2ecf20Sopenharmony_ci { "AIF3 Capture", NULL, "SYSCLK" }, 18948c2ecf20Sopenharmony_ci { "AIF4 Capture", NULL, "SYSCLK" }, 18958c2ecf20Sopenharmony_ci { "Slim1 Capture", NULL, "SYSCLK" }, 18968c2ecf20Sopenharmony_ci { "Slim2 Capture", NULL, "SYSCLK" }, 18978c2ecf20Sopenharmony_ci { "Slim3 Capture", NULL, "SYSCLK" }, 18988c2ecf20Sopenharmony_ci 18998c2ecf20Sopenharmony_ci { "Voice Control DSP", NULL, "DSP6" }, 19008c2ecf20Sopenharmony_ci 19018c2ecf20Sopenharmony_ci { "Audio Trace DSP", NULL, "DSP1" }, 19028c2ecf20Sopenharmony_ci 19038c2ecf20Sopenharmony_ci { "IN1L Analog Mux", "A", "IN1ALN" }, 19048c2ecf20Sopenharmony_ci { "IN1L Analog Mux", "A", "IN1ALP" }, 19058c2ecf20Sopenharmony_ci { "IN1L Analog Mux", "B", "IN1BLN" }, 19068c2ecf20Sopenharmony_ci { "IN1L Analog Mux", "B", "IN1BLP" }, 19078c2ecf20Sopenharmony_ci { "IN1R Analog Mux", "A", "IN1ARN" }, 19088c2ecf20Sopenharmony_ci { "IN1R Analog Mux", "A", "IN1ARP" }, 19098c2ecf20Sopenharmony_ci { "IN1R Analog Mux", "B", "IN1BRN" }, 19108c2ecf20Sopenharmony_ci { "IN1R Analog Mux", "B", "IN1BRP" }, 19118c2ecf20Sopenharmony_ci 19128c2ecf20Sopenharmony_ci { "IN1L Mode", "Analog", "IN1L Analog Mux" }, 19138c2ecf20Sopenharmony_ci { "IN1R Mode", "Analog", "IN1R Analog Mux" }, 19148c2ecf20Sopenharmony_ci 19158c2ecf20Sopenharmony_ci { "IN1L Mode", "Digital", "IN1ARN" }, 19168c2ecf20Sopenharmony_ci { "IN1L Mode", "Digital", "IN1ARP" }, 19178c2ecf20Sopenharmony_ci { "IN1R Mode", "Digital", "IN1ARN" }, 19188c2ecf20Sopenharmony_ci { "IN1R Mode", "Digital", "IN1ARP" }, 19198c2ecf20Sopenharmony_ci 19208c2ecf20Sopenharmony_ci { "IN1L", NULL, "IN1L Mode" }, 19218c2ecf20Sopenharmony_ci { "IN1R", NULL, "IN1R Mode" }, 19228c2ecf20Sopenharmony_ci 19238c2ecf20Sopenharmony_ci { "IN2L Analog Mux", "A", "IN2ALN" }, 19248c2ecf20Sopenharmony_ci { "IN2L Analog Mux", "A", "IN2ALP" }, 19258c2ecf20Sopenharmony_ci { "IN2L Analog Mux", "B", "IN2BLN" }, 19268c2ecf20Sopenharmony_ci { "IN2L Analog Mux", "B", "IN2BLP" }, 19278c2ecf20Sopenharmony_ci 19288c2ecf20Sopenharmony_ci { "IN2L Mode", "Analog", "IN2L Analog Mux" }, 19298c2ecf20Sopenharmony_ci { "IN2R Mode", "Analog", "IN2RN" }, 19308c2ecf20Sopenharmony_ci { "IN2R Mode", "Analog", "IN2RP" }, 19318c2ecf20Sopenharmony_ci 19328c2ecf20Sopenharmony_ci { "IN2L Mode", "Digital", "IN2ALN" }, 19338c2ecf20Sopenharmony_ci { "IN2L Mode", "Digital", "IN2ALP" }, 19348c2ecf20Sopenharmony_ci { "IN2R Mode", "Digital", "IN2ALN" }, 19358c2ecf20Sopenharmony_ci { "IN2R Mode", "Digital", "IN2ALP" }, 19368c2ecf20Sopenharmony_ci 19378c2ecf20Sopenharmony_ci { "IN2L", NULL, "IN2L Mode" }, 19388c2ecf20Sopenharmony_ci { "IN2R", NULL, "IN2R Mode" }, 19398c2ecf20Sopenharmony_ci 19408c2ecf20Sopenharmony_ci { "IN3L", NULL, "DMICCLK3" }, 19418c2ecf20Sopenharmony_ci { "IN3L", NULL, "DMICDAT3" }, 19428c2ecf20Sopenharmony_ci { "IN3R", NULL, "DMICCLK3" }, 19438c2ecf20Sopenharmony_ci { "IN3R", NULL, "DMICDAT3" }, 19448c2ecf20Sopenharmony_ci 19458c2ecf20Sopenharmony_ci { "IN4L", NULL, "DMICCLK4" }, 19468c2ecf20Sopenharmony_ci { "IN4L", NULL, "DMICDAT4" }, 19478c2ecf20Sopenharmony_ci { "IN4R", NULL, "DMICCLK4" }, 19488c2ecf20Sopenharmony_ci { "IN4R", NULL, "DMICDAT4" }, 19498c2ecf20Sopenharmony_ci 19508c2ecf20Sopenharmony_ci { "IN5L", NULL, "DMICCLK5" }, 19518c2ecf20Sopenharmony_ci { "IN5L", NULL, "DMICDAT5" }, 19528c2ecf20Sopenharmony_ci { "IN5R", NULL, "DMICCLK5" }, 19538c2ecf20Sopenharmony_ci { "IN5R", NULL, "DMICDAT5" }, 19548c2ecf20Sopenharmony_ci 19558c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("OUT1L", "HPOUT1L"), 19568c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("OUT1R", "HPOUT1R"), 19578c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("OUT2L", "HPOUT2L"), 19588c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("OUT2R", "HPOUT2R"), 19598c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("OUT3L", "HPOUT3L"), 19608c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("OUT3R", "HPOUT3R"), 19618c2ecf20Sopenharmony_ci 19628c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("OUT5L", "SPKDAT1L"), 19638c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("OUT5R", "SPKDAT1R"), 19648c2ecf20Sopenharmony_ci 19658c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("PWM1 Driver", "PWM1"), 19668c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("PWM2 Driver", "PWM2"), 19678c2ecf20Sopenharmony_ci 19688c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF1TX1", "AIF1TX1"), 19698c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF1TX2", "AIF1TX2"), 19708c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF1TX3", "AIF1TX3"), 19718c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF1TX4", "AIF1TX4"), 19728c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF1TX5", "AIF1TX5"), 19738c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF1TX6", "AIF1TX6"), 19748c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF1TX7", "AIF1TX7"), 19758c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF1TX8", "AIF1TX8"), 19768c2ecf20Sopenharmony_ci 19778c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF2TX1", "AIF2TX1"), 19788c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF2TX2", "AIF2TX2"), 19798c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF2TX3", "AIF2TX3"), 19808c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF2TX4", "AIF2TX4"), 19818c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF2TX5", "AIF2TX5"), 19828c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF2TX6", "AIF2TX6"), 19838c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF2TX7", "AIF2TX7"), 19848c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF2TX8", "AIF2TX8"), 19858c2ecf20Sopenharmony_ci 19868c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF3TX1", "AIF3TX1"), 19878c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF3TX2", "AIF3TX2"), 19888c2ecf20Sopenharmony_ci 19898c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF4TX1", "AIF4TX1"), 19908c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("AIF4TX2", "AIF4TX2"), 19918c2ecf20Sopenharmony_ci 19928c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("SLIMTX1", "SLIMTX1"), 19938c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("SLIMTX2", "SLIMTX2"), 19948c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("SLIMTX3", "SLIMTX3"), 19958c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("SLIMTX4", "SLIMTX4"), 19968c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("SLIMTX5", "SLIMTX5"), 19978c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("SLIMTX6", "SLIMTX6"), 19988c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("SLIMTX7", "SLIMTX7"), 19998c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("SLIMTX8", "SLIMTX8"), 20008c2ecf20Sopenharmony_ci 20018c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("SPD1TX1", "SPDIF1TX1"), 20028c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("SPD1TX2", "SPDIF1TX2"), 20038c2ecf20Sopenharmony_ci 20048c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("EQ1", "EQ1"), 20058c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("EQ2", "EQ2"), 20068c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("EQ3", "EQ3"), 20078c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("EQ4", "EQ4"), 20088c2ecf20Sopenharmony_ci 20098c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("DRC1L", "DRC1L"), 20108c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("DRC1R", "DRC1R"), 20118c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("DRC2L", "DRC2L"), 20128c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("DRC2R", "DRC2R"), 20138c2ecf20Sopenharmony_ci 20148c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("LHPF1", "LHPF1"), 20158c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("LHPF2", "LHPF2"), 20168c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("LHPF3", "LHPF3"), 20178c2ecf20Sopenharmony_ci MADERA_MIXER_ROUTES("LHPF4", "LHPF4"), 20188c2ecf20Sopenharmony_ci 20198c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ASRC1IN1L", "ASRC1IN1L"), 20208c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ASRC1IN1R", "ASRC1IN1R"), 20218c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ASRC1IN2L", "ASRC1IN2L"), 20228c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ASRC1IN2R", "ASRC1IN2R"), 20238c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ASRC2IN1L", "ASRC2IN1L"), 20248c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ASRC2IN1R", "ASRC2IN1R"), 20258c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ASRC2IN2L", "ASRC2IN2L"), 20268c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ASRC2IN2R", "ASRC2IN2R"), 20278c2ecf20Sopenharmony_ci 20288c2ecf20Sopenharmony_ci MADERA_DSP_ROUTES("DSP1"), 20298c2ecf20Sopenharmony_ci MADERA_DSP_ROUTES("DSP2"), 20308c2ecf20Sopenharmony_ci MADERA_DSP_ROUTES("DSP3"), 20318c2ecf20Sopenharmony_ci MADERA_DSP_ROUTES("DSP4"), 20328c2ecf20Sopenharmony_ci MADERA_DSP_ROUTES("DSP5"), 20338c2ecf20Sopenharmony_ci MADERA_DSP_ROUTES("DSP6"), 20348c2ecf20Sopenharmony_ci MADERA_DSP_ROUTES("DSP7"), 20358c2ecf20Sopenharmony_ci 20368c2ecf20Sopenharmony_ci { "DSP Trigger Out", NULL, "DSP1 Trigger Output" }, 20378c2ecf20Sopenharmony_ci { "DSP Trigger Out", NULL, "DSP2 Trigger Output" }, 20388c2ecf20Sopenharmony_ci { "DSP Trigger Out", NULL, "DSP3 Trigger Output" }, 20398c2ecf20Sopenharmony_ci { "DSP Trigger Out", NULL, "DSP4 Trigger Output" }, 20408c2ecf20Sopenharmony_ci { "DSP Trigger Out", NULL, "DSP5 Trigger Output" }, 20418c2ecf20Sopenharmony_ci { "DSP Trigger Out", NULL, "DSP6 Trigger Output" }, 20428c2ecf20Sopenharmony_ci { "DSP Trigger Out", NULL, "DSP7 Trigger Output" }, 20438c2ecf20Sopenharmony_ci 20448c2ecf20Sopenharmony_ci { "DSP1 Trigger Output", "Switch", "DSP1" }, 20458c2ecf20Sopenharmony_ci { "DSP2 Trigger Output", "Switch", "DSP2" }, 20468c2ecf20Sopenharmony_ci { "DSP3 Trigger Output", "Switch", "DSP3" }, 20478c2ecf20Sopenharmony_ci { "DSP4 Trigger Output", "Switch", "DSP4" }, 20488c2ecf20Sopenharmony_ci { "DSP5 Trigger Output", "Switch", "DSP5" }, 20498c2ecf20Sopenharmony_ci { "DSP6 Trigger Output", "Switch", "DSP6" }, 20508c2ecf20Sopenharmony_ci { "DSP7 Trigger Output", "Switch", "DSP7" }, 20518c2ecf20Sopenharmony_ci 20528c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC1INT1", "ISRC1INT1"), 20538c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC1INT2", "ISRC1INT2"), 20548c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC1INT3", "ISRC1INT3"), 20558c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC1INT4", "ISRC1INT4"), 20568c2ecf20Sopenharmony_ci 20578c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC1DEC1", "ISRC1DEC1"), 20588c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC1DEC2", "ISRC1DEC2"), 20598c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC1DEC3", "ISRC1DEC3"), 20608c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC1DEC4", "ISRC1DEC4"), 20618c2ecf20Sopenharmony_ci 20628c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC2INT1", "ISRC2INT1"), 20638c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC2INT2", "ISRC2INT2"), 20648c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC2INT3", "ISRC2INT3"), 20658c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC2INT4", "ISRC2INT4"), 20668c2ecf20Sopenharmony_ci 20678c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC2DEC1", "ISRC2DEC1"), 20688c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC2DEC2", "ISRC2DEC2"), 20698c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC2DEC3", "ISRC2DEC3"), 20708c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC2DEC4", "ISRC2DEC4"), 20718c2ecf20Sopenharmony_ci 20728c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC3INT1", "ISRC3INT1"), 20738c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC3INT2", "ISRC3INT2"), 20748c2ecf20Sopenharmony_ci 20758c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC3DEC1", "ISRC3DEC1"), 20768c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC3DEC2", "ISRC3DEC2"), 20778c2ecf20Sopenharmony_ci 20788c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC4INT1", "ISRC4INT1"), 20798c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC4INT2", "ISRC4INT2"), 20808c2ecf20Sopenharmony_ci 20818c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC4DEC1", "ISRC4DEC1"), 20828c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("ISRC4DEC2", "ISRC4DEC2"), 20838c2ecf20Sopenharmony_ci 20848c2ecf20Sopenharmony_ci { "AEC1 Loopback", "HPOUT1L", "OUT1L" }, 20858c2ecf20Sopenharmony_ci { "AEC1 Loopback", "HPOUT1R", "OUT1R" }, 20868c2ecf20Sopenharmony_ci { "AEC2 Loopback", "HPOUT1L", "OUT1L" }, 20878c2ecf20Sopenharmony_ci { "AEC2 Loopback", "HPOUT1R", "OUT1R" }, 20888c2ecf20Sopenharmony_ci { "HPOUT1L", NULL, "OUT1L" }, 20898c2ecf20Sopenharmony_ci { "HPOUT1R", NULL, "OUT1R" }, 20908c2ecf20Sopenharmony_ci 20918c2ecf20Sopenharmony_ci { "AEC1 Loopback", "HPOUT2L", "OUT2L" }, 20928c2ecf20Sopenharmony_ci { "AEC1 Loopback", "HPOUT2R", "OUT2R" }, 20938c2ecf20Sopenharmony_ci { "AEC2 Loopback", "HPOUT2L", "OUT2L" }, 20948c2ecf20Sopenharmony_ci { "AEC2 Loopback", "HPOUT2R", "OUT2R" }, 20958c2ecf20Sopenharmony_ci { "HPOUT2L", NULL, "OUT2L" }, 20968c2ecf20Sopenharmony_ci { "HPOUT2R", NULL, "OUT2R" }, 20978c2ecf20Sopenharmony_ci 20988c2ecf20Sopenharmony_ci { "AEC1 Loopback", "HPOUT3L", "OUT3L" }, 20998c2ecf20Sopenharmony_ci { "AEC1 Loopback", "HPOUT3R", "OUT3R" }, 21008c2ecf20Sopenharmony_ci { "AEC2 Loopback", "HPOUT3L", "OUT3L" }, 21018c2ecf20Sopenharmony_ci { "AEC2 Loopback", "HPOUT3R", "OUT3R" }, 21028c2ecf20Sopenharmony_ci { "HPOUT3L", NULL, "OUT3L" }, 21038c2ecf20Sopenharmony_ci { "HPOUT3R", NULL, "OUT3R" }, 21048c2ecf20Sopenharmony_ci 21058c2ecf20Sopenharmony_ci { "AEC1 Loopback", "SPKDAT1L", "OUT5L" }, 21068c2ecf20Sopenharmony_ci { "AEC1 Loopback", "SPKDAT1R", "OUT5R" }, 21078c2ecf20Sopenharmony_ci { "AEC2 Loopback", "SPKDAT1L", "OUT5L" }, 21088c2ecf20Sopenharmony_ci { "AEC2 Loopback", "SPKDAT1R", "OUT5R" }, 21098c2ecf20Sopenharmony_ci { "SPKDAT1L", NULL, "OUT5L" }, 21108c2ecf20Sopenharmony_ci { "SPKDAT1R", NULL, "OUT5R" }, 21118c2ecf20Sopenharmony_ci 21128c2ecf20Sopenharmony_ci CS47L90_RXANC_INPUT_ROUTES("RXANCL", "RXANCL"), 21138c2ecf20Sopenharmony_ci CS47L90_RXANC_INPUT_ROUTES("RXANCR", "RXANCR"), 21148c2ecf20Sopenharmony_ci 21158c2ecf20Sopenharmony_ci CS47L90_RXANC_OUTPUT_ROUTES("OUT1L", "HPOUT1L"), 21168c2ecf20Sopenharmony_ci CS47L90_RXANC_OUTPUT_ROUTES("OUT1R", "HPOUT1R"), 21178c2ecf20Sopenharmony_ci CS47L90_RXANC_OUTPUT_ROUTES("OUT2L", "HPOUT2L"), 21188c2ecf20Sopenharmony_ci CS47L90_RXANC_OUTPUT_ROUTES("OUT2R", "HPOUT2R"), 21198c2ecf20Sopenharmony_ci CS47L90_RXANC_OUTPUT_ROUTES("OUT3L", "HPOUT3L"), 21208c2ecf20Sopenharmony_ci CS47L90_RXANC_OUTPUT_ROUTES("OUT3R", "HPOUT3R"), 21218c2ecf20Sopenharmony_ci CS47L90_RXANC_OUTPUT_ROUTES("OUT5L", "SPKDAT1L"), 21228c2ecf20Sopenharmony_ci CS47L90_RXANC_OUTPUT_ROUTES("OUT5R", "SPKDAT1R"), 21238c2ecf20Sopenharmony_ci 21248c2ecf20Sopenharmony_ci { "SPDIF1", NULL, "SPD1" }, 21258c2ecf20Sopenharmony_ci 21268c2ecf20Sopenharmony_ci { "MICSUPP", NULL, "SYSCLK" }, 21278c2ecf20Sopenharmony_ci 21288c2ecf20Sopenharmony_ci { "DRC1 Signal Activity", NULL, "DRC1 Activity Output" }, 21298c2ecf20Sopenharmony_ci { "DRC2 Signal Activity", NULL, "DRC2 Activity Output" }, 21308c2ecf20Sopenharmony_ci { "DRC1 Activity Output", "Switch", "DRC1L" }, 21318c2ecf20Sopenharmony_ci { "DRC1 Activity Output", "Switch", "DRC1R" }, 21328c2ecf20Sopenharmony_ci { "DRC2 Activity Output", "Switch", "DRC2L" }, 21338c2ecf20Sopenharmony_ci { "DRC2 Activity Output", "Switch", "DRC2R" }, 21348c2ecf20Sopenharmony_ci 21358c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("DFC1", "DFC1"), 21368c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("DFC2", "DFC2"), 21378c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("DFC3", "DFC3"), 21388c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("DFC4", "DFC4"), 21398c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("DFC5", "DFC5"), 21408c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("DFC6", "DFC6"), 21418c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("DFC7", "DFC7"), 21428c2ecf20Sopenharmony_ci MADERA_MUX_ROUTES("DFC8", "DFC8"), 21438c2ecf20Sopenharmony_ci}; 21448c2ecf20Sopenharmony_ci 21458c2ecf20Sopenharmony_cistatic int cs47l90_set_fll(struct snd_soc_component *component, int fll_id, 21468c2ecf20Sopenharmony_ci int source, unsigned int fref, unsigned int fout) 21478c2ecf20Sopenharmony_ci{ 21488c2ecf20Sopenharmony_ci struct cs47l90 *cs47l90 = snd_soc_component_get_drvdata(component); 21498c2ecf20Sopenharmony_ci 21508c2ecf20Sopenharmony_ci switch (fll_id) { 21518c2ecf20Sopenharmony_ci case MADERA_FLL1_REFCLK: 21528c2ecf20Sopenharmony_ci return madera_set_fll_refclk(&cs47l90->fll[0], source, fref, 21538c2ecf20Sopenharmony_ci fout); 21548c2ecf20Sopenharmony_ci case MADERA_FLL2_REFCLK: 21558c2ecf20Sopenharmony_ci return madera_set_fll_refclk(&cs47l90->fll[1], source, fref, 21568c2ecf20Sopenharmony_ci fout); 21578c2ecf20Sopenharmony_ci case MADERA_FLLAO_REFCLK: 21588c2ecf20Sopenharmony_ci return madera_set_fll_ao_refclk(&cs47l90->fll[2], source, fref, 21598c2ecf20Sopenharmony_ci fout); 21608c2ecf20Sopenharmony_ci case MADERA_FLL1_SYNCCLK: 21618c2ecf20Sopenharmony_ci return madera_set_fll_syncclk(&cs47l90->fll[0], source, fref, 21628c2ecf20Sopenharmony_ci fout); 21638c2ecf20Sopenharmony_ci case MADERA_FLL2_SYNCCLK: 21648c2ecf20Sopenharmony_ci return madera_set_fll_syncclk(&cs47l90->fll[1], source, fref, 21658c2ecf20Sopenharmony_ci fout); 21668c2ecf20Sopenharmony_ci default: 21678c2ecf20Sopenharmony_ci return -EINVAL; 21688c2ecf20Sopenharmony_ci } 21698c2ecf20Sopenharmony_ci} 21708c2ecf20Sopenharmony_ci 21718c2ecf20Sopenharmony_cistatic struct snd_soc_dai_driver cs47l90_dai[] = { 21728c2ecf20Sopenharmony_ci { 21738c2ecf20Sopenharmony_ci .name = "cs47l90-aif1", 21748c2ecf20Sopenharmony_ci .id = 1, 21758c2ecf20Sopenharmony_ci .base = MADERA_AIF1_BCLK_CTRL, 21768c2ecf20Sopenharmony_ci .playback = { 21778c2ecf20Sopenharmony_ci .stream_name = "AIF1 Playback", 21788c2ecf20Sopenharmony_ci .channels_min = 1, 21798c2ecf20Sopenharmony_ci .channels_max = 8, 21808c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 21818c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 21828c2ecf20Sopenharmony_ci }, 21838c2ecf20Sopenharmony_ci .capture = { 21848c2ecf20Sopenharmony_ci .stream_name = "AIF1 Capture", 21858c2ecf20Sopenharmony_ci .channels_min = 1, 21868c2ecf20Sopenharmony_ci .channels_max = 8, 21878c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 21888c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 21898c2ecf20Sopenharmony_ci }, 21908c2ecf20Sopenharmony_ci .ops = &madera_dai_ops, 21918c2ecf20Sopenharmony_ci .symmetric_rates = 1, 21928c2ecf20Sopenharmony_ci .symmetric_samplebits = 1, 21938c2ecf20Sopenharmony_ci }, 21948c2ecf20Sopenharmony_ci { 21958c2ecf20Sopenharmony_ci .name = "cs47l90-aif2", 21968c2ecf20Sopenharmony_ci .id = 2, 21978c2ecf20Sopenharmony_ci .base = MADERA_AIF2_BCLK_CTRL, 21988c2ecf20Sopenharmony_ci .playback = { 21998c2ecf20Sopenharmony_ci .stream_name = "AIF2 Playback", 22008c2ecf20Sopenharmony_ci .channels_min = 1, 22018c2ecf20Sopenharmony_ci .channels_max = 8, 22028c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 22038c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 22048c2ecf20Sopenharmony_ci }, 22058c2ecf20Sopenharmony_ci .capture = { 22068c2ecf20Sopenharmony_ci .stream_name = "AIF2 Capture", 22078c2ecf20Sopenharmony_ci .channels_min = 1, 22088c2ecf20Sopenharmony_ci .channels_max = 8, 22098c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 22108c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 22118c2ecf20Sopenharmony_ci }, 22128c2ecf20Sopenharmony_ci .ops = &madera_dai_ops, 22138c2ecf20Sopenharmony_ci .symmetric_rates = 1, 22148c2ecf20Sopenharmony_ci .symmetric_samplebits = 1, 22158c2ecf20Sopenharmony_ci }, 22168c2ecf20Sopenharmony_ci { 22178c2ecf20Sopenharmony_ci .name = "cs47l90-aif3", 22188c2ecf20Sopenharmony_ci .id = 3, 22198c2ecf20Sopenharmony_ci .base = MADERA_AIF3_BCLK_CTRL, 22208c2ecf20Sopenharmony_ci .playback = { 22218c2ecf20Sopenharmony_ci .stream_name = "AIF3 Playback", 22228c2ecf20Sopenharmony_ci .channels_min = 1, 22238c2ecf20Sopenharmony_ci .channels_max = 2, 22248c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 22258c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 22268c2ecf20Sopenharmony_ci }, 22278c2ecf20Sopenharmony_ci .capture = { 22288c2ecf20Sopenharmony_ci .stream_name = "AIF3 Capture", 22298c2ecf20Sopenharmony_ci .channels_min = 1, 22308c2ecf20Sopenharmony_ci .channels_max = 2, 22318c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 22328c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 22338c2ecf20Sopenharmony_ci }, 22348c2ecf20Sopenharmony_ci .ops = &madera_dai_ops, 22358c2ecf20Sopenharmony_ci .symmetric_rates = 1, 22368c2ecf20Sopenharmony_ci .symmetric_samplebits = 1, 22378c2ecf20Sopenharmony_ci }, 22388c2ecf20Sopenharmony_ci { 22398c2ecf20Sopenharmony_ci .name = "cs47l90-aif4", 22408c2ecf20Sopenharmony_ci .id = 4, 22418c2ecf20Sopenharmony_ci .base = MADERA_AIF4_BCLK_CTRL, 22428c2ecf20Sopenharmony_ci .playback = { 22438c2ecf20Sopenharmony_ci .stream_name = "AIF4 Playback", 22448c2ecf20Sopenharmony_ci .channels_min = 1, 22458c2ecf20Sopenharmony_ci .channels_max = 2, 22468c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 22478c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 22488c2ecf20Sopenharmony_ci }, 22498c2ecf20Sopenharmony_ci .capture = { 22508c2ecf20Sopenharmony_ci .stream_name = "AIF4 Capture", 22518c2ecf20Sopenharmony_ci .channels_min = 1, 22528c2ecf20Sopenharmony_ci .channels_max = 2, 22538c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 22548c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 22558c2ecf20Sopenharmony_ci }, 22568c2ecf20Sopenharmony_ci .ops = &madera_dai_ops, 22578c2ecf20Sopenharmony_ci .symmetric_rates = 1, 22588c2ecf20Sopenharmony_ci .symmetric_samplebits = 1, 22598c2ecf20Sopenharmony_ci }, 22608c2ecf20Sopenharmony_ci { 22618c2ecf20Sopenharmony_ci .name = "cs47l90-slim1", 22628c2ecf20Sopenharmony_ci .id = 5, 22638c2ecf20Sopenharmony_ci .playback = { 22648c2ecf20Sopenharmony_ci .stream_name = "Slim1 Playback", 22658c2ecf20Sopenharmony_ci .channels_min = 1, 22668c2ecf20Sopenharmony_ci .channels_max = 4, 22678c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 22688c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 22698c2ecf20Sopenharmony_ci }, 22708c2ecf20Sopenharmony_ci .capture = { 22718c2ecf20Sopenharmony_ci .stream_name = "Slim1 Capture", 22728c2ecf20Sopenharmony_ci .channels_min = 1, 22738c2ecf20Sopenharmony_ci .channels_max = 4, 22748c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 22758c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 22768c2ecf20Sopenharmony_ci }, 22778c2ecf20Sopenharmony_ci .ops = &madera_simple_dai_ops, 22788c2ecf20Sopenharmony_ci }, 22798c2ecf20Sopenharmony_ci { 22808c2ecf20Sopenharmony_ci .name = "cs47l90-slim2", 22818c2ecf20Sopenharmony_ci .id = 6, 22828c2ecf20Sopenharmony_ci .playback = { 22838c2ecf20Sopenharmony_ci .stream_name = "Slim2 Playback", 22848c2ecf20Sopenharmony_ci .channels_min = 1, 22858c2ecf20Sopenharmony_ci .channels_max = 2, 22868c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 22878c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 22888c2ecf20Sopenharmony_ci }, 22898c2ecf20Sopenharmony_ci .capture = { 22908c2ecf20Sopenharmony_ci .stream_name = "Slim2 Capture", 22918c2ecf20Sopenharmony_ci .channels_min = 1, 22928c2ecf20Sopenharmony_ci .channels_max = 2, 22938c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 22948c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 22958c2ecf20Sopenharmony_ci }, 22968c2ecf20Sopenharmony_ci .ops = &madera_simple_dai_ops, 22978c2ecf20Sopenharmony_ci }, 22988c2ecf20Sopenharmony_ci { 22998c2ecf20Sopenharmony_ci .name = "cs47l90-slim3", 23008c2ecf20Sopenharmony_ci .id = 7, 23018c2ecf20Sopenharmony_ci .playback = { 23028c2ecf20Sopenharmony_ci .stream_name = "Slim3 Playback", 23038c2ecf20Sopenharmony_ci .channels_min = 1, 23048c2ecf20Sopenharmony_ci .channels_max = 2, 23058c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 23068c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 23078c2ecf20Sopenharmony_ci }, 23088c2ecf20Sopenharmony_ci .capture = { 23098c2ecf20Sopenharmony_ci .stream_name = "Slim3 Capture", 23108c2ecf20Sopenharmony_ci .channels_min = 1, 23118c2ecf20Sopenharmony_ci .channels_max = 2, 23128c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 23138c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 23148c2ecf20Sopenharmony_ci }, 23158c2ecf20Sopenharmony_ci .ops = &madera_simple_dai_ops, 23168c2ecf20Sopenharmony_ci }, 23178c2ecf20Sopenharmony_ci { 23188c2ecf20Sopenharmony_ci .name = "cs47l90-cpu-voicectrl", 23198c2ecf20Sopenharmony_ci .capture = { 23208c2ecf20Sopenharmony_ci .stream_name = "Voice Control CPU", 23218c2ecf20Sopenharmony_ci .channels_min = 1, 23228c2ecf20Sopenharmony_ci .channels_max = 1, 23238c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 23248c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 23258c2ecf20Sopenharmony_ci }, 23268c2ecf20Sopenharmony_ci .compress_new = &snd_soc_new_compress, 23278c2ecf20Sopenharmony_ci }, 23288c2ecf20Sopenharmony_ci { 23298c2ecf20Sopenharmony_ci .name = "cs47l90-dsp-voicectrl", 23308c2ecf20Sopenharmony_ci .capture = { 23318c2ecf20Sopenharmony_ci .stream_name = "Voice Control DSP", 23328c2ecf20Sopenharmony_ci .channels_min = 1, 23338c2ecf20Sopenharmony_ci .channels_max = 1, 23348c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 23358c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 23368c2ecf20Sopenharmony_ci }, 23378c2ecf20Sopenharmony_ci }, 23388c2ecf20Sopenharmony_ci { 23398c2ecf20Sopenharmony_ci .name = "cs47l90-cpu-trace", 23408c2ecf20Sopenharmony_ci .capture = { 23418c2ecf20Sopenharmony_ci .stream_name = "Audio Trace CPU", 23428c2ecf20Sopenharmony_ci .channels_min = 1, 23438c2ecf20Sopenharmony_ci .channels_max = 6, 23448c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 23458c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 23468c2ecf20Sopenharmony_ci }, 23478c2ecf20Sopenharmony_ci .compress_new = &snd_soc_new_compress, 23488c2ecf20Sopenharmony_ci }, 23498c2ecf20Sopenharmony_ci { 23508c2ecf20Sopenharmony_ci .name = "cs47l90-dsp-trace", 23518c2ecf20Sopenharmony_ci .capture = { 23528c2ecf20Sopenharmony_ci .stream_name = "Audio Trace DSP", 23538c2ecf20Sopenharmony_ci .channels_min = 1, 23548c2ecf20Sopenharmony_ci .channels_max = 6, 23558c2ecf20Sopenharmony_ci .rates = MADERA_RATES, 23568c2ecf20Sopenharmony_ci .formats = MADERA_FORMATS, 23578c2ecf20Sopenharmony_ci }, 23588c2ecf20Sopenharmony_ci }, 23598c2ecf20Sopenharmony_ci}; 23608c2ecf20Sopenharmony_ci 23618c2ecf20Sopenharmony_cistatic int cs47l90_open(struct snd_soc_component *component, 23628c2ecf20Sopenharmony_ci struct snd_compr_stream *stream) 23638c2ecf20Sopenharmony_ci{ 23648c2ecf20Sopenharmony_ci struct snd_soc_pcm_runtime *rtd = stream->private_data; 23658c2ecf20Sopenharmony_ci struct cs47l90 *cs47l90 = snd_soc_component_get_drvdata(component); 23668c2ecf20Sopenharmony_ci struct madera_priv *priv = &cs47l90->core; 23678c2ecf20Sopenharmony_ci struct madera *madera = priv->madera; 23688c2ecf20Sopenharmony_ci int n_adsp; 23698c2ecf20Sopenharmony_ci 23708c2ecf20Sopenharmony_ci if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "cs47l90-dsp-voicectrl") == 0) { 23718c2ecf20Sopenharmony_ci n_adsp = 5; 23728c2ecf20Sopenharmony_ci } else if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "cs47l90-dsp-trace") == 0) { 23738c2ecf20Sopenharmony_ci n_adsp = 0; 23748c2ecf20Sopenharmony_ci } else { 23758c2ecf20Sopenharmony_ci dev_err(madera->dev, 23768c2ecf20Sopenharmony_ci "No suitable compressed stream for DAI '%s'\n", 23778c2ecf20Sopenharmony_ci asoc_rtd_to_codec(rtd, 0)->name); 23788c2ecf20Sopenharmony_ci return -EINVAL; 23798c2ecf20Sopenharmony_ci } 23808c2ecf20Sopenharmony_ci 23818c2ecf20Sopenharmony_ci return wm_adsp_compr_open(&priv->adsp[n_adsp], stream); 23828c2ecf20Sopenharmony_ci} 23838c2ecf20Sopenharmony_ci 23848c2ecf20Sopenharmony_cistatic irqreturn_t cs47l90_adsp2_irq(int irq, void *data) 23858c2ecf20Sopenharmony_ci{ 23868c2ecf20Sopenharmony_ci struct cs47l90 *cs47l90 = data; 23878c2ecf20Sopenharmony_ci struct madera_priv *priv = &cs47l90->core; 23888c2ecf20Sopenharmony_ci struct madera *madera = priv->madera; 23898c2ecf20Sopenharmony_ci struct madera_voice_trigger_info trig_info; 23908c2ecf20Sopenharmony_ci int serviced = 0; 23918c2ecf20Sopenharmony_ci int i, ret; 23928c2ecf20Sopenharmony_ci 23938c2ecf20Sopenharmony_ci for (i = 0; i < CS47L90_NUM_ADSP; ++i) { 23948c2ecf20Sopenharmony_ci ret = wm_adsp_compr_handle_irq(&priv->adsp[i]); 23958c2ecf20Sopenharmony_ci if (ret != -ENODEV) 23968c2ecf20Sopenharmony_ci serviced++; 23978c2ecf20Sopenharmony_ci if (ret == WM_ADSP_COMPR_VOICE_TRIGGER) { 23988c2ecf20Sopenharmony_ci trig_info.core_num = i + 1; 23998c2ecf20Sopenharmony_ci blocking_notifier_call_chain(&madera->notifier, 24008c2ecf20Sopenharmony_ci MADERA_NOTIFY_VOICE_TRIGGER, 24018c2ecf20Sopenharmony_ci &trig_info); 24028c2ecf20Sopenharmony_ci } 24038c2ecf20Sopenharmony_ci } 24048c2ecf20Sopenharmony_ci 24058c2ecf20Sopenharmony_ci if (!serviced) { 24068c2ecf20Sopenharmony_ci dev_err(madera->dev, "Spurious compressed data IRQ\n"); 24078c2ecf20Sopenharmony_ci return IRQ_NONE; 24088c2ecf20Sopenharmony_ci } 24098c2ecf20Sopenharmony_ci 24108c2ecf20Sopenharmony_ci return IRQ_HANDLED; 24118c2ecf20Sopenharmony_ci} 24128c2ecf20Sopenharmony_ci 24138c2ecf20Sopenharmony_cistatic int cs47l90_component_probe(struct snd_soc_component *component) 24148c2ecf20Sopenharmony_ci{ 24158c2ecf20Sopenharmony_ci struct cs47l90 *cs47l90 = snd_soc_component_get_drvdata(component); 24168c2ecf20Sopenharmony_ci struct madera *madera = cs47l90->core.madera; 24178c2ecf20Sopenharmony_ci int ret, i; 24188c2ecf20Sopenharmony_ci 24198c2ecf20Sopenharmony_ci snd_soc_component_init_regmap(component, madera->regmap); 24208c2ecf20Sopenharmony_ci 24218c2ecf20Sopenharmony_ci mutex_lock(&madera->dapm_ptr_lock); 24228c2ecf20Sopenharmony_ci madera->dapm = snd_soc_component_get_dapm(component); 24238c2ecf20Sopenharmony_ci mutex_unlock(&madera->dapm_ptr_lock); 24248c2ecf20Sopenharmony_ci 24258c2ecf20Sopenharmony_ci ret = madera_init_inputs(component); 24268c2ecf20Sopenharmony_ci if (ret) 24278c2ecf20Sopenharmony_ci return ret; 24288c2ecf20Sopenharmony_ci 24298c2ecf20Sopenharmony_ci ret = madera_init_outputs(component, NULL, CS47L90_MONO_OUTPUTS, 24308c2ecf20Sopenharmony_ci CS47L90_MONO_OUTPUTS); 24318c2ecf20Sopenharmony_ci if (ret) 24328c2ecf20Sopenharmony_ci return ret; 24338c2ecf20Sopenharmony_ci 24348c2ecf20Sopenharmony_ci snd_soc_component_disable_pin(component, "HAPTICS"); 24358c2ecf20Sopenharmony_ci 24368c2ecf20Sopenharmony_ci ret = snd_soc_add_component_controls(component, 24378c2ecf20Sopenharmony_ci madera_adsp_rate_controls, 24388c2ecf20Sopenharmony_ci CS47L90_NUM_ADSP); 24398c2ecf20Sopenharmony_ci if (ret) 24408c2ecf20Sopenharmony_ci return ret; 24418c2ecf20Sopenharmony_ci 24428c2ecf20Sopenharmony_ci for (i = 0; i < CS47L90_NUM_ADSP; i++) 24438c2ecf20Sopenharmony_ci wm_adsp2_component_probe(&cs47l90->core.adsp[i], component); 24448c2ecf20Sopenharmony_ci 24458c2ecf20Sopenharmony_ci return 0; 24468c2ecf20Sopenharmony_ci} 24478c2ecf20Sopenharmony_ci 24488c2ecf20Sopenharmony_cistatic void cs47l90_component_remove(struct snd_soc_component *component) 24498c2ecf20Sopenharmony_ci{ 24508c2ecf20Sopenharmony_ci struct cs47l90 *cs47l90 = snd_soc_component_get_drvdata(component); 24518c2ecf20Sopenharmony_ci struct madera *madera = cs47l90->core.madera; 24528c2ecf20Sopenharmony_ci int i; 24538c2ecf20Sopenharmony_ci 24548c2ecf20Sopenharmony_ci mutex_lock(&madera->dapm_ptr_lock); 24558c2ecf20Sopenharmony_ci madera->dapm = NULL; 24568c2ecf20Sopenharmony_ci mutex_unlock(&madera->dapm_ptr_lock); 24578c2ecf20Sopenharmony_ci 24588c2ecf20Sopenharmony_ci for (i = 0; i < CS47L90_NUM_ADSP; i++) 24598c2ecf20Sopenharmony_ci wm_adsp2_component_remove(&cs47l90->core.adsp[i], component); 24608c2ecf20Sopenharmony_ci} 24618c2ecf20Sopenharmony_ci 24628c2ecf20Sopenharmony_ci#define CS47L90_DIG_VU 0x0200 24638c2ecf20Sopenharmony_ci 24648c2ecf20Sopenharmony_cistatic unsigned int cs47l90_digital_vu[] = { 24658c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_1L, 24668c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_1R, 24678c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_2L, 24688c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_2R, 24698c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_3L, 24708c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_3R, 24718c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_5L, 24728c2ecf20Sopenharmony_ci MADERA_DAC_DIGITAL_VOLUME_5R, 24738c2ecf20Sopenharmony_ci}; 24748c2ecf20Sopenharmony_ci 24758c2ecf20Sopenharmony_cistatic const struct snd_compress_ops cs47l90_compress_ops = { 24768c2ecf20Sopenharmony_ci .open = &cs47l90_open, 24778c2ecf20Sopenharmony_ci .free = &wm_adsp_compr_free, 24788c2ecf20Sopenharmony_ci .set_params = &wm_adsp_compr_set_params, 24798c2ecf20Sopenharmony_ci .get_caps = &wm_adsp_compr_get_caps, 24808c2ecf20Sopenharmony_ci .trigger = &wm_adsp_compr_trigger, 24818c2ecf20Sopenharmony_ci .pointer = &wm_adsp_compr_pointer, 24828c2ecf20Sopenharmony_ci .copy = &wm_adsp_compr_copy, 24838c2ecf20Sopenharmony_ci}; 24848c2ecf20Sopenharmony_ci 24858c2ecf20Sopenharmony_cistatic const struct snd_soc_component_driver soc_component_dev_cs47l90 = { 24868c2ecf20Sopenharmony_ci .probe = &cs47l90_component_probe, 24878c2ecf20Sopenharmony_ci .remove = &cs47l90_component_remove, 24888c2ecf20Sopenharmony_ci .set_sysclk = &madera_set_sysclk, 24898c2ecf20Sopenharmony_ci .set_pll = &cs47l90_set_fll, 24908c2ecf20Sopenharmony_ci .name = DRV_NAME, 24918c2ecf20Sopenharmony_ci .compress_ops = &cs47l90_compress_ops, 24928c2ecf20Sopenharmony_ci .controls = cs47l90_snd_controls, 24938c2ecf20Sopenharmony_ci .num_controls = ARRAY_SIZE(cs47l90_snd_controls), 24948c2ecf20Sopenharmony_ci .dapm_widgets = cs47l90_dapm_widgets, 24958c2ecf20Sopenharmony_ci .num_dapm_widgets = ARRAY_SIZE(cs47l90_dapm_widgets), 24968c2ecf20Sopenharmony_ci .dapm_routes = cs47l90_dapm_routes, 24978c2ecf20Sopenharmony_ci .num_dapm_routes = ARRAY_SIZE(cs47l90_dapm_routes), 24988c2ecf20Sopenharmony_ci .use_pmdown_time = 1, 24998c2ecf20Sopenharmony_ci .endianness = 1, 25008c2ecf20Sopenharmony_ci .non_legacy_dai_naming = 1, 25018c2ecf20Sopenharmony_ci}; 25028c2ecf20Sopenharmony_ci 25038c2ecf20Sopenharmony_cistatic int cs47l90_probe(struct platform_device *pdev) 25048c2ecf20Sopenharmony_ci{ 25058c2ecf20Sopenharmony_ci struct madera *madera = dev_get_drvdata(pdev->dev.parent); 25068c2ecf20Sopenharmony_ci struct cs47l90 *cs47l90; 25078c2ecf20Sopenharmony_ci int i, ret; 25088c2ecf20Sopenharmony_ci 25098c2ecf20Sopenharmony_ci BUILD_BUG_ON(ARRAY_SIZE(cs47l90_dai) > MADERA_MAX_DAI); 25108c2ecf20Sopenharmony_ci 25118c2ecf20Sopenharmony_ci /* quick exit if Madera irqchip driver hasn't completed probe */ 25128c2ecf20Sopenharmony_ci if (!madera->irq_dev) { 25138c2ecf20Sopenharmony_ci dev_dbg(&pdev->dev, "irqchip driver not ready\n"); 25148c2ecf20Sopenharmony_ci return -EPROBE_DEFER; 25158c2ecf20Sopenharmony_ci } 25168c2ecf20Sopenharmony_ci 25178c2ecf20Sopenharmony_ci cs47l90 = devm_kzalloc(&pdev->dev, sizeof(struct cs47l90), 25188c2ecf20Sopenharmony_ci GFP_KERNEL); 25198c2ecf20Sopenharmony_ci if (!cs47l90) 25208c2ecf20Sopenharmony_ci return -ENOMEM; 25218c2ecf20Sopenharmony_ci 25228c2ecf20Sopenharmony_ci platform_set_drvdata(pdev, cs47l90); 25238c2ecf20Sopenharmony_ci 25248c2ecf20Sopenharmony_ci cs47l90->core.madera = madera; 25258c2ecf20Sopenharmony_ci cs47l90->core.dev = &pdev->dev; 25268c2ecf20Sopenharmony_ci cs47l90->core.num_inputs = 10; 25278c2ecf20Sopenharmony_ci 25288c2ecf20Sopenharmony_ci ret = madera_core_init(&cs47l90->core); 25298c2ecf20Sopenharmony_ci if (ret) 25308c2ecf20Sopenharmony_ci return ret; 25318c2ecf20Sopenharmony_ci 25328c2ecf20Sopenharmony_ci ret = madera_request_irq(madera, MADERA_IRQ_DSP_IRQ1, 25338c2ecf20Sopenharmony_ci "ADSP2 Compressed IRQ", cs47l90_adsp2_irq, 25348c2ecf20Sopenharmony_ci cs47l90); 25358c2ecf20Sopenharmony_ci if (ret != 0) { 25368c2ecf20Sopenharmony_ci dev_err(&pdev->dev, "Failed to request DSP IRQ: %d\n", ret); 25378c2ecf20Sopenharmony_ci goto error_core; 25388c2ecf20Sopenharmony_ci } 25398c2ecf20Sopenharmony_ci 25408c2ecf20Sopenharmony_ci ret = madera_set_irq_wake(madera, MADERA_IRQ_DSP_IRQ1, 1); 25418c2ecf20Sopenharmony_ci if (ret) 25428c2ecf20Sopenharmony_ci dev_warn(&pdev->dev, "Failed to set DSP IRQ wake: %d\n", ret); 25438c2ecf20Sopenharmony_ci 25448c2ecf20Sopenharmony_ci for (i = 0; i < CS47L90_NUM_ADSP; i++) { 25458c2ecf20Sopenharmony_ci cs47l90->core.adsp[i].part = "cs47l90"; 25468c2ecf20Sopenharmony_ci cs47l90->core.adsp[i].num = i + 1; 25478c2ecf20Sopenharmony_ci cs47l90->core.adsp[i].type = WMFW_ADSP2; 25488c2ecf20Sopenharmony_ci cs47l90->core.adsp[i].rev = 2; 25498c2ecf20Sopenharmony_ci cs47l90->core.adsp[i].dev = madera->dev; 25508c2ecf20Sopenharmony_ci cs47l90->core.adsp[i].regmap = madera->regmap_32bit; 25518c2ecf20Sopenharmony_ci 25528c2ecf20Sopenharmony_ci cs47l90->core.adsp[i].base = cs47l90_dsp_control_bases[i]; 25538c2ecf20Sopenharmony_ci cs47l90->core.adsp[i].mem = cs47l90_dsp_regions[i]; 25548c2ecf20Sopenharmony_ci cs47l90->core.adsp[i].num_mems = 25558c2ecf20Sopenharmony_ci ARRAY_SIZE(cs47l90_dsp1_regions); 25568c2ecf20Sopenharmony_ci 25578c2ecf20Sopenharmony_ci cs47l90->core.adsp[i].lock_regions = WM_ADSP2_REGION_1_9; 25588c2ecf20Sopenharmony_ci 25598c2ecf20Sopenharmony_ci ret = wm_adsp2_init(&cs47l90->core.adsp[i]); 25608c2ecf20Sopenharmony_ci 25618c2ecf20Sopenharmony_ci if (ret == 0) { 25628c2ecf20Sopenharmony_ci ret = madera_init_bus_error_irq(&cs47l90->core, i, 25638c2ecf20Sopenharmony_ci wm_adsp2_bus_error); 25648c2ecf20Sopenharmony_ci if (ret != 0) 25658c2ecf20Sopenharmony_ci wm_adsp2_remove(&cs47l90->core.adsp[i]); 25668c2ecf20Sopenharmony_ci } 25678c2ecf20Sopenharmony_ci 25688c2ecf20Sopenharmony_ci if (ret) { 25698c2ecf20Sopenharmony_ci for (--i; i >= 0; --i) { 25708c2ecf20Sopenharmony_ci madera_free_bus_error_irq(&cs47l90->core, i); 25718c2ecf20Sopenharmony_ci wm_adsp2_remove(&cs47l90->core.adsp[i]); 25728c2ecf20Sopenharmony_ci } 25738c2ecf20Sopenharmony_ci goto error_dsp_irq; 25748c2ecf20Sopenharmony_ci } 25758c2ecf20Sopenharmony_ci } 25768c2ecf20Sopenharmony_ci 25778c2ecf20Sopenharmony_ci madera_init_fll(madera, 1, MADERA_FLL1_CONTROL_1 - 1, 25788c2ecf20Sopenharmony_ci &cs47l90->fll[0]); 25798c2ecf20Sopenharmony_ci madera_init_fll(madera, 2, MADERA_FLL2_CONTROL_1 - 1, 25808c2ecf20Sopenharmony_ci &cs47l90->fll[1]); 25818c2ecf20Sopenharmony_ci madera_init_fll(madera, 4, MADERA_FLLAO_CONTROL_1 - 1, 25828c2ecf20Sopenharmony_ci &cs47l90->fll[2]); 25838c2ecf20Sopenharmony_ci 25848c2ecf20Sopenharmony_ci for (i = 0; i < ARRAY_SIZE(cs47l90_dai); i++) 25858c2ecf20Sopenharmony_ci madera_init_dai(&cs47l90->core, i); 25868c2ecf20Sopenharmony_ci 25878c2ecf20Sopenharmony_ci /* Latch volume update bits */ 25888c2ecf20Sopenharmony_ci for (i = 0; i < ARRAY_SIZE(cs47l90_digital_vu); i++) 25898c2ecf20Sopenharmony_ci regmap_update_bits(madera->regmap, cs47l90_digital_vu[i], 25908c2ecf20Sopenharmony_ci CS47L90_DIG_VU, CS47L90_DIG_VU); 25918c2ecf20Sopenharmony_ci 25928c2ecf20Sopenharmony_ci pm_runtime_enable(&pdev->dev); 25938c2ecf20Sopenharmony_ci pm_runtime_idle(&pdev->dev); 25948c2ecf20Sopenharmony_ci 25958c2ecf20Sopenharmony_ci ret = devm_snd_soc_register_component(&pdev->dev, 25968c2ecf20Sopenharmony_ci &soc_component_dev_cs47l90, 25978c2ecf20Sopenharmony_ci cs47l90_dai, 25988c2ecf20Sopenharmony_ci ARRAY_SIZE(cs47l90_dai)); 25998c2ecf20Sopenharmony_ci if (ret < 0) { 26008c2ecf20Sopenharmony_ci dev_err(&pdev->dev, "Failed to register component: %d\n", ret); 26018c2ecf20Sopenharmony_ci goto error_pm_runtime; 26028c2ecf20Sopenharmony_ci } 26038c2ecf20Sopenharmony_ci 26048c2ecf20Sopenharmony_ci return ret; 26058c2ecf20Sopenharmony_ci 26068c2ecf20Sopenharmony_cierror_pm_runtime: 26078c2ecf20Sopenharmony_ci pm_runtime_disable(&pdev->dev); 26088c2ecf20Sopenharmony_ci 26098c2ecf20Sopenharmony_ci for (i = 0; i < CS47L90_NUM_ADSP; i++) { 26108c2ecf20Sopenharmony_ci madera_free_bus_error_irq(&cs47l90->core, i); 26118c2ecf20Sopenharmony_ci wm_adsp2_remove(&cs47l90->core.adsp[i]); 26128c2ecf20Sopenharmony_ci } 26138c2ecf20Sopenharmony_cierror_dsp_irq: 26148c2ecf20Sopenharmony_ci madera_set_irq_wake(madera, MADERA_IRQ_DSP_IRQ1, 0); 26158c2ecf20Sopenharmony_ci madera_free_irq(madera, MADERA_IRQ_DSP_IRQ1, cs47l90); 26168c2ecf20Sopenharmony_cierror_core: 26178c2ecf20Sopenharmony_ci madera_core_free(&cs47l90->core); 26188c2ecf20Sopenharmony_ci 26198c2ecf20Sopenharmony_ci return ret; 26208c2ecf20Sopenharmony_ci} 26218c2ecf20Sopenharmony_ci 26228c2ecf20Sopenharmony_cistatic int cs47l90_remove(struct platform_device *pdev) 26238c2ecf20Sopenharmony_ci{ 26248c2ecf20Sopenharmony_ci struct cs47l90 *cs47l90 = platform_get_drvdata(pdev); 26258c2ecf20Sopenharmony_ci int i; 26268c2ecf20Sopenharmony_ci 26278c2ecf20Sopenharmony_ci pm_runtime_disable(&pdev->dev); 26288c2ecf20Sopenharmony_ci 26298c2ecf20Sopenharmony_ci for (i = 0; i < CS47L90_NUM_ADSP; i++) { 26308c2ecf20Sopenharmony_ci madera_free_bus_error_irq(&cs47l90->core, i); 26318c2ecf20Sopenharmony_ci wm_adsp2_remove(&cs47l90->core.adsp[i]); 26328c2ecf20Sopenharmony_ci } 26338c2ecf20Sopenharmony_ci 26348c2ecf20Sopenharmony_ci madera_set_irq_wake(cs47l90->core.madera, MADERA_IRQ_DSP_IRQ1, 0); 26358c2ecf20Sopenharmony_ci madera_free_irq(cs47l90->core.madera, MADERA_IRQ_DSP_IRQ1, cs47l90); 26368c2ecf20Sopenharmony_ci madera_core_free(&cs47l90->core); 26378c2ecf20Sopenharmony_ci 26388c2ecf20Sopenharmony_ci return 0; 26398c2ecf20Sopenharmony_ci} 26408c2ecf20Sopenharmony_ci 26418c2ecf20Sopenharmony_cistatic struct platform_driver cs47l90_codec_driver = { 26428c2ecf20Sopenharmony_ci .driver = { 26438c2ecf20Sopenharmony_ci .name = "cs47l90-codec", 26448c2ecf20Sopenharmony_ci }, 26458c2ecf20Sopenharmony_ci .probe = &cs47l90_probe, 26468c2ecf20Sopenharmony_ci .remove = &cs47l90_remove, 26478c2ecf20Sopenharmony_ci}; 26488c2ecf20Sopenharmony_ci 26498c2ecf20Sopenharmony_cimodule_platform_driver(cs47l90_codec_driver); 26508c2ecf20Sopenharmony_ci 26518c2ecf20Sopenharmony_ciMODULE_SOFTDEP("pre: madera irq-madera arizona-micsupp"); 26528c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("ASoC CS47L90 driver"); 26538c2ecf20Sopenharmony_ciMODULE_AUTHOR("Nikesh Oswal <nikesh@opensource.cirrus.com>"); 26548c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL v2"); 26558c2ecf20Sopenharmony_ciMODULE_ALIAS("platform:cs47l90-codec"); 2656