1472e5df0SCharles Keepax // SPDX-License-Identifier: GPL-2.0-only
295a9049bSRichard Fitzgerald //
395a9049bSRichard Fitzgerald // ALSA SoC Audio driver for CS47L85 codec
495a9049bSRichard Fitzgerald //
595a9049bSRichard Fitzgerald // Copyright (C) 2015-2019 Cirrus Logic, Inc. and
695a9049bSRichard Fitzgerald // Cirrus Logic International Semiconductor Ltd.
795a9049bSRichard Fitzgerald //
895a9049bSRichard Fitzgerald
995a9049bSRichard Fitzgerald #include <linux/module.h>
1095a9049bSRichard Fitzgerald #include <linux/moduleparam.h>
1195a9049bSRichard Fitzgerald #include <linux/device.h>
1295a9049bSRichard Fitzgerald #include <linux/delay.h>
1395a9049bSRichard Fitzgerald #include <linux/init.h>
1495a9049bSRichard Fitzgerald #include <linux/pm.h>
1595a9049bSRichard Fitzgerald #include <linux/pm_runtime.h>
1695a9049bSRichard Fitzgerald #include <linux/regmap.h>
1795a9049bSRichard Fitzgerald #include <sound/core.h>
1895a9049bSRichard Fitzgerald #include <sound/pcm.h>
1995a9049bSRichard Fitzgerald #include <sound/pcm_params.h>
2095a9049bSRichard Fitzgerald #include <sound/soc.h>
2195a9049bSRichard Fitzgerald #include <sound/tlv.h>
2295a9049bSRichard Fitzgerald
2395a9049bSRichard Fitzgerald #include <linux/irqchip/irq-madera.h>
2495a9049bSRichard Fitzgerald #include <linux/mfd/madera/core.h>
2595a9049bSRichard Fitzgerald #include <linux/mfd/madera/registers.h>
2695a9049bSRichard Fitzgerald
2795a9049bSRichard Fitzgerald #include "madera.h"
2895a9049bSRichard Fitzgerald #include "wm_adsp.h"
2995a9049bSRichard Fitzgerald
3095a9049bSRichard Fitzgerald #define DRV_NAME "cs47l85-codec"
3195a9049bSRichard Fitzgerald
3295a9049bSRichard Fitzgerald #define CS47L85_NUM_ADSP 7
3395a9049bSRichard Fitzgerald #define CS47L85_MONO_OUTPUTS 4
3495a9049bSRichard Fitzgerald
3595a9049bSRichard Fitzgerald struct cs47l85 {
3695a9049bSRichard Fitzgerald struct madera_priv core;
3795a9049bSRichard Fitzgerald struct madera_fll fll[3];
3895a9049bSRichard Fitzgerald };
3995a9049bSRichard Fitzgerald
405beb8eeaSSimon Trimmer static const struct cs_dsp_region cs47l85_dsp1_regions[] = {
4195a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_PM, .base = 0x080000 },
4295a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_ZM, .base = 0x0e0000 },
4395a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_XM, .base = 0x0a0000 },
4495a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_YM, .base = 0x0c0000 },
4595a9049bSRichard Fitzgerald };
4695a9049bSRichard Fitzgerald
475beb8eeaSSimon Trimmer static const struct cs_dsp_region cs47l85_dsp2_regions[] = {
4895a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_PM, .base = 0x100000 },
4995a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_ZM, .base = 0x160000 },
5095a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_XM, .base = 0x120000 },
5195a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_YM, .base = 0x140000 },
5295a9049bSRichard Fitzgerald };
5395a9049bSRichard Fitzgerald
545beb8eeaSSimon Trimmer static const struct cs_dsp_region cs47l85_dsp3_regions[] = {
5595a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_PM, .base = 0x180000 },
5695a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_ZM, .base = 0x1e0000 },
5795a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_XM, .base = 0x1a0000 },
5895a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_YM, .base = 0x1c0000 },
5995a9049bSRichard Fitzgerald };
6095a9049bSRichard Fitzgerald
615beb8eeaSSimon Trimmer static const struct cs_dsp_region cs47l85_dsp4_regions[] = {
6295a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_PM, .base = 0x200000 },
6395a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_ZM, .base = 0x260000 },
6495a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_XM, .base = 0x220000 },
6595a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_YM, .base = 0x240000 },
6695a9049bSRichard Fitzgerald };
6795a9049bSRichard Fitzgerald
685beb8eeaSSimon Trimmer static const struct cs_dsp_region cs47l85_dsp5_regions[] = {
6995a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_PM, .base = 0x280000 },
7095a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_ZM, .base = 0x2e0000 },
7195a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_XM, .base = 0x2a0000 },
7295a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_YM, .base = 0x2c0000 },
7395a9049bSRichard Fitzgerald };
7495a9049bSRichard Fitzgerald
755beb8eeaSSimon Trimmer static const struct cs_dsp_region cs47l85_dsp6_regions[] = {
7695a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_PM, .base = 0x300000 },
7795a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_ZM, .base = 0x360000 },
7895a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_XM, .base = 0x320000 },
7995a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_YM, .base = 0x340000 },
8095a9049bSRichard Fitzgerald };
8195a9049bSRichard Fitzgerald
825beb8eeaSSimon Trimmer static const struct cs_dsp_region cs47l85_dsp7_regions[] = {
8395a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_PM, .base = 0x380000 },
8495a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_ZM, .base = 0x3e0000 },
8595a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_XM, .base = 0x3a0000 },
8695a9049bSRichard Fitzgerald { .type = WMFW_ADSP2_YM, .base = 0x3c0000 },
8795a9049bSRichard Fitzgerald };
8895a9049bSRichard Fitzgerald
895beb8eeaSSimon Trimmer static const struct cs_dsp_region *cs47l85_dsp_regions[] = {
9095a9049bSRichard Fitzgerald cs47l85_dsp1_regions,
9195a9049bSRichard Fitzgerald cs47l85_dsp2_regions,
9295a9049bSRichard Fitzgerald cs47l85_dsp3_regions,
9395a9049bSRichard Fitzgerald cs47l85_dsp4_regions,
9495a9049bSRichard Fitzgerald cs47l85_dsp5_regions,
9595a9049bSRichard Fitzgerald cs47l85_dsp6_regions,
9695a9049bSRichard Fitzgerald cs47l85_dsp7_regions,
9795a9049bSRichard Fitzgerald };
9895a9049bSRichard Fitzgerald
9995a9049bSRichard Fitzgerald static const unsigned int wm_adsp2_control_bases[] = {
10095a9049bSRichard Fitzgerald MADERA_DSP1_CONFIG_1,
10195a9049bSRichard Fitzgerald MADERA_DSP2_CONFIG_1,
10295a9049bSRichard Fitzgerald MADERA_DSP3_CONFIG_1,
10395a9049bSRichard Fitzgerald MADERA_DSP4_CONFIG_1,
10495a9049bSRichard Fitzgerald MADERA_DSP5_CONFIG_1,
10595a9049bSRichard Fitzgerald MADERA_DSP6_CONFIG_1,
10695a9049bSRichard Fitzgerald MADERA_DSP7_CONFIG_1,
10795a9049bSRichard Fitzgerald };
10895a9049bSRichard Fitzgerald
cs47l85_adsp_power_ev(struct snd_soc_dapm_widget * w,struct snd_kcontrol * kcontrol,int event)10995a9049bSRichard Fitzgerald static int cs47l85_adsp_power_ev(struct snd_soc_dapm_widget *w,
11095a9049bSRichard Fitzgerald struct snd_kcontrol *kcontrol,
11195a9049bSRichard Fitzgerald int event)
11295a9049bSRichard Fitzgerald {
11395a9049bSRichard Fitzgerald struct snd_soc_component *component =
11495a9049bSRichard Fitzgerald snd_soc_dapm_to_component(w->dapm);
11595a9049bSRichard Fitzgerald struct cs47l85 *cs47l85 = snd_soc_component_get_drvdata(component);
11695a9049bSRichard Fitzgerald struct madera_priv *priv = &cs47l85->core;
11795a9049bSRichard Fitzgerald struct madera *madera = priv->madera;
11895a9049bSRichard Fitzgerald unsigned int freq;
11995a9049bSRichard Fitzgerald int ret;
12095a9049bSRichard Fitzgerald
12195a9049bSRichard Fitzgerald ret = regmap_read(madera->regmap, MADERA_DSP_CLOCK_1, &freq);
12295a9049bSRichard Fitzgerald if (ret != 0) {
12395a9049bSRichard Fitzgerald dev_err(madera->dev,
12495a9049bSRichard Fitzgerald "Failed to read MADERA_DSP_CLOCK_1: %d\n", ret);
12595a9049bSRichard Fitzgerald return ret;
12695a9049bSRichard Fitzgerald }
12795a9049bSRichard Fitzgerald
12895a9049bSRichard Fitzgerald freq &= MADERA_DSP_CLK_FREQ_LEGACY_MASK;
12995a9049bSRichard Fitzgerald freq >>= MADERA_DSP_CLK_FREQ_LEGACY_SHIFT;
13095a9049bSRichard Fitzgerald
13195a9049bSRichard Fitzgerald switch (event) {
13295a9049bSRichard Fitzgerald case SND_SOC_DAPM_PRE_PMU:
13395a9049bSRichard Fitzgerald ret = madera_set_adsp_clk(&cs47l85->core, w->shift, freq);
13495a9049bSRichard Fitzgerald if (ret)
13595a9049bSRichard Fitzgerald return ret;
13695a9049bSRichard Fitzgerald break;
13795a9049bSRichard Fitzgerald default:
13895a9049bSRichard Fitzgerald break;
13995a9049bSRichard Fitzgerald }
14095a9049bSRichard Fitzgerald
14195a9049bSRichard Fitzgerald return wm_adsp_early_event(w, kcontrol, event);
14295a9049bSRichard Fitzgerald }
14395a9049bSRichard Fitzgerald
14495a9049bSRichard Fitzgerald #define CS47L85_NG_SRC(name, base) \
14595a9049bSRichard Fitzgerald SOC_SINGLE(name " NG HPOUT1L Switch", base, 0, 1, 0), \
14695a9049bSRichard Fitzgerald SOC_SINGLE(name " NG HPOUT1R Switch", base, 1, 1, 0), \
14795a9049bSRichard Fitzgerald SOC_SINGLE(name " NG HPOUT2L Switch", base, 2, 1, 0), \
14895a9049bSRichard Fitzgerald SOC_SINGLE(name " NG HPOUT2R Switch", base, 3, 1, 0), \
14995a9049bSRichard Fitzgerald SOC_SINGLE(name " NG HPOUT3L Switch", base, 4, 1, 0), \
15095a9049bSRichard Fitzgerald SOC_SINGLE(name " NG HPOUT3R Switch", base, 5, 1, 0), \
15195a9049bSRichard Fitzgerald SOC_SINGLE(name " NG SPKOUTL Switch", base, 6, 1, 0), \
15295a9049bSRichard Fitzgerald SOC_SINGLE(name " NG SPKOUTR Switch", base, 7, 1, 0), \
15395a9049bSRichard Fitzgerald SOC_SINGLE(name " NG SPKDAT1L Switch", base, 8, 1, 0), \
15495a9049bSRichard Fitzgerald SOC_SINGLE(name " NG SPKDAT1R Switch", base, 9, 1, 0), \
15595a9049bSRichard Fitzgerald SOC_SINGLE(name " NG SPKDAT2L Switch", base, 10, 1, 0), \
15695a9049bSRichard Fitzgerald SOC_SINGLE(name " NG SPKDAT2R Switch", base, 11, 1, 0)
15795a9049bSRichard Fitzgerald
15895a9049bSRichard Fitzgerald #define CS47L85_RXANC_INPUT_ROUTES(widget, name) \
15995a9049bSRichard Fitzgerald { widget, NULL, name " NG Mux" }, \
16095a9049bSRichard Fitzgerald { name " NG Internal", NULL, "RXANC NG Clock" }, \
16195a9049bSRichard Fitzgerald { name " NG Internal", NULL, name " Channel" }, \
16295a9049bSRichard Fitzgerald { name " NG External", NULL, "RXANC NG External Clock" }, \
16395a9049bSRichard Fitzgerald { name " NG External", NULL, name " Channel" }, \
16495a9049bSRichard Fitzgerald { name " NG Mux", "None", name " Channel" }, \
16595a9049bSRichard Fitzgerald { name " NG Mux", "Internal", name " NG Internal" }, \
16695a9049bSRichard Fitzgerald { name " NG Mux", "External", name " NG External" }, \
16795a9049bSRichard Fitzgerald { name " Channel", "Left", name " Left Input" }, \
16895a9049bSRichard Fitzgerald { name " Channel", "Combine", name " Left Input" }, \
16995a9049bSRichard Fitzgerald { name " Channel", "Right", name " Right Input" }, \
17095a9049bSRichard Fitzgerald { name " Channel", "Combine", name " Right Input" }, \
17195a9049bSRichard Fitzgerald { name " Left Input", "IN1", "IN1L" }, \
17295a9049bSRichard Fitzgerald { name " Right Input", "IN1", "IN1R" }, \
17395a9049bSRichard Fitzgerald { name " Left Input", "IN2", "IN2L" }, \
17495a9049bSRichard Fitzgerald { name " Right Input", "IN2", "IN2R" }, \
17595a9049bSRichard Fitzgerald { name " Left Input", "IN3", "IN3L" }, \
17695a9049bSRichard Fitzgerald { name " Right Input", "IN3", "IN3R" }, \
17795a9049bSRichard Fitzgerald { name " Left Input", "IN4", "IN4L" }, \
17895a9049bSRichard Fitzgerald { name " Right Input", "IN4", "IN4R" }, \
17995a9049bSRichard Fitzgerald { name " Left Input", "IN5", "IN5L" }, \
18095a9049bSRichard Fitzgerald { name " Right Input", "IN5", "IN5R" }, \
18195a9049bSRichard Fitzgerald { name " Left Input", "IN6", "IN6L" }, \
18295a9049bSRichard Fitzgerald { name " Right Input", "IN6", "IN6R" }
18395a9049bSRichard Fitzgerald
18495a9049bSRichard Fitzgerald #define CS47L85_RXANC_OUTPUT_ROUTES(widget, name) \
18595a9049bSRichard Fitzgerald { widget, NULL, name " ANC Source" }, \
18695a9049bSRichard Fitzgerald { name " ANC Source", "RXANCL", "RXANCL" }, \
18795a9049bSRichard Fitzgerald { name " ANC Source", "RXANCR", "RXANCR" }
18895a9049bSRichard Fitzgerald
cs47l85_hp_post_enable(struct snd_soc_dapm_widget * w)18995a9049bSRichard Fitzgerald static void cs47l85_hp_post_enable(struct snd_soc_dapm_widget *w)
19095a9049bSRichard Fitzgerald {
19195a9049bSRichard Fitzgerald struct snd_soc_component *component =
19295a9049bSRichard Fitzgerald snd_soc_dapm_to_component(w->dapm);
19395a9049bSRichard Fitzgerald unsigned int val;
19495a9049bSRichard Fitzgerald
19595a9049bSRichard Fitzgerald switch (w->shift) {
19695a9049bSRichard Fitzgerald case MADERA_OUT1L_ENA_SHIFT:
19795a9049bSRichard Fitzgerald case MADERA_OUT1R_ENA_SHIFT:
198cf6e26c7SKuninori Morimoto val = snd_soc_component_read(component, MADERA_OUTPUT_ENABLES_1);
19995a9049bSRichard Fitzgerald val &= (MADERA_OUT1L_ENA | MADERA_OUT1R_ENA);
20095a9049bSRichard Fitzgerald
20195a9049bSRichard Fitzgerald if (val != (MADERA_OUT1L_ENA | MADERA_OUT1R_ENA))
20295a9049bSRichard Fitzgerald break;
20395a9049bSRichard Fitzgerald
20495a9049bSRichard Fitzgerald snd_soc_component_update_bits(component,
20595a9049bSRichard Fitzgerald MADERA_EDRE_HP_STEREO_CONTROL,
20695a9049bSRichard Fitzgerald 0x0001, 1);
20795a9049bSRichard Fitzgerald break;
20895a9049bSRichard Fitzgerald default:
20995a9049bSRichard Fitzgerald break;
21095a9049bSRichard Fitzgerald }
21195a9049bSRichard Fitzgerald }
21295a9049bSRichard Fitzgerald
cs47l85_hp_post_disable(struct snd_soc_dapm_widget * w)21395a9049bSRichard Fitzgerald static void cs47l85_hp_post_disable(struct snd_soc_dapm_widget *w)
21495a9049bSRichard Fitzgerald {
21595a9049bSRichard Fitzgerald struct snd_soc_component *component =
21695a9049bSRichard Fitzgerald snd_soc_dapm_to_component(w->dapm);
21795a9049bSRichard Fitzgerald
21895a9049bSRichard Fitzgerald switch (w->shift) {
21995a9049bSRichard Fitzgerald case MADERA_OUT1L_ENA_SHIFT:
22095a9049bSRichard Fitzgerald snd_soc_component_write(component, MADERA_DCS_HP1L_CONTROL,
22195a9049bSRichard Fitzgerald 0x2006);
22295a9049bSRichard Fitzgerald break;
22395a9049bSRichard Fitzgerald case MADERA_OUT1R_ENA_SHIFT:
22495a9049bSRichard Fitzgerald snd_soc_component_write(component, MADERA_DCS_HP1R_CONTROL,
22595a9049bSRichard Fitzgerald 0x2006);
22695a9049bSRichard Fitzgerald break;
22795a9049bSRichard Fitzgerald default:
22895a9049bSRichard Fitzgerald return;
22995a9049bSRichard Fitzgerald }
23095a9049bSRichard Fitzgerald
23195a9049bSRichard Fitzgerald /* Only get to here for OUT1L and OUT1R */
23295a9049bSRichard Fitzgerald snd_soc_component_update_bits(component,
23395a9049bSRichard Fitzgerald MADERA_EDRE_HP_STEREO_CONTROL,
23495a9049bSRichard Fitzgerald 0x0001, 0);
23595a9049bSRichard Fitzgerald }
23695a9049bSRichard Fitzgerald
cs47l85_hp_ev(struct snd_soc_dapm_widget * w,struct snd_kcontrol * kcontrol,int event)23795a9049bSRichard Fitzgerald static int cs47l85_hp_ev(struct snd_soc_dapm_widget *w,
23895a9049bSRichard Fitzgerald struct snd_kcontrol *kcontrol, int event)
23995a9049bSRichard Fitzgerald {
24095a9049bSRichard Fitzgerald int ret;
24195a9049bSRichard Fitzgerald
24295a9049bSRichard Fitzgerald switch (event) {
24395a9049bSRichard Fitzgerald case SND_SOC_DAPM_PRE_PMU:
24495a9049bSRichard Fitzgerald case SND_SOC_DAPM_PRE_PMD:
24595a9049bSRichard Fitzgerald return madera_hp_ev(w, kcontrol, event);
24695a9049bSRichard Fitzgerald case SND_SOC_DAPM_POST_PMU:
24795a9049bSRichard Fitzgerald ret = madera_hp_ev(w, kcontrol, event);
24895a9049bSRichard Fitzgerald if (ret < 0)
24995a9049bSRichard Fitzgerald return ret;
25095a9049bSRichard Fitzgerald
25195a9049bSRichard Fitzgerald cs47l85_hp_post_enable(w);
25295a9049bSRichard Fitzgerald return 0;
25395a9049bSRichard Fitzgerald case SND_SOC_DAPM_POST_PMD:
25495a9049bSRichard Fitzgerald ret = madera_hp_ev(w, kcontrol, event);
25595a9049bSRichard Fitzgerald cs47l85_hp_post_disable(w);
25695a9049bSRichard Fitzgerald return ret;
25795a9049bSRichard Fitzgerald default:
25895a9049bSRichard Fitzgerald return -EINVAL;
25995a9049bSRichard Fitzgerald }
26095a9049bSRichard Fitzgerald }
26195a9049bSRichard Fitzgerald
26295a9049bSRichard Fitzgerald static const struct snd_kcontrol_new cs47l85_snd_controls[] = {
26395a9049bSRichard Fitzgerald SOC_ENUM("IN1 OSR", madera_in_dmic_osr[0]),
26495a9049bSRichard Fitzgerald SOC_ENUM("IN2 OSR", madera_in_dmic_osr[1]),
26595a9049bSRichard Fitzgerald SOC_ENUM("IN3 OSR", madera_in_dmic_osr[2]),
26695a9049bSRichard Fitzgerald SOC_ENUM("IN4 OSR", madera_in_dmic_osr[3]),
26795a9049bSRichard Fitzgerald SOC_ENUM("IN5 OSR", madera_in_dmic_osr[4]),
26895a9049bSRichard Fitzgerald SOC_ENUM("IN6 OSR", madera_in_dmic_osr[5]),
26995a9049bSRichard Fitzgerald
27095a9049bSRichard Fitzgerald SOC_SINGLE_RANGE_TLV("IN1L Volume", MADERA_IN1L_CONTROL,
27195a9049bSRichard Fitzgerald MADERA_IN1L_PGA_VOL_SHIFT, 0x40, 0x5f, 0, madera_ana_tlv),
27295a9049bSRichard Fitzgerald SOC_SINGLE_RANGE_TLV("IN1R Volume", MADERA_IN1R_CONTROL,
27395a9049bSRichard Fitzgerald MADERA_IN1R_PGA_VOL_SHIFT, 0x40, 0x5f, 0, madera_ana_tlv),
27495a9049bSRichard Fitzgerald SOC_SINGLE_RANGE_TLV("IN2L Volume", MADERA_IN2L_CONTROL,
27595a9049bSRichard Fitzgerald MADERA_IN2L_PGA_VOL_SHIFT, 0x40, 0x5f, 0, madera_ana_tlv),
27695a9049bSRichard Fitzgerald SOC_SINGLE_RANGE_TLV("IN2R Volume", MADERA_IN2R_CONTROL,
27795a9049bSRichard Fitzgerald MADERA_IN2R_PGA_VOL_SHIFT, 0x40, 0x5f, 0, madera_ana_tlv),
27895a9049bSRichard Fitzgerald SOC_SINGLE_RANGE_TLV("IN3L Volume", MADERA_IN3L_CONTROL,
27995a9049bSRichard Fitzgerald MADERA_IN3L_PGA_VOL_SHIFT, 0x40, 0x5f, 0, madera_ana_tlv),
28095a9049bSRichard Fitzgerald SOC_SINGLE_RANGE_TLV("IN3R Volume", MADERA_IN3R_CONTROL,
28195a9049bSRichard Fitzgerald MADERA_IN3R_PGA_VOL_SHIFT, 0x40, 0x5f, 0, madera_ana_tlv),
28295a9049bSRichard Fitzgerald
28395a9049bSRichard Fitzgerald SOC_ENUM("IN HPF Cutoff Frequency", madera_in_hpf_cut_enum),
28495a9049bSRichard Fitzgerald
28595a9049bSRichard Fitzgerald SOC_SINGLE("IN1L HPF Switch", MADERA_IN1L_CONTROL,
28695a9049bSRichard Fitzgerald MADERA_IN1L_HPF_SHIFT, 1, 0),
28795a9049bSRichard Fitzgerald SOC_SINGLE("IN1R HPF Switch", MADERA_IN1R_CONTROL,
28895a9049bSRichard Fitzgerald MADERA_IN1R_HPF_SHIFT, 1, 0),
28995a9049bSRichard Fitzgerald SOC_SINGLE("IN2L HPF Switch", MADERA_IN2L_CONTROL,
29095a9049bSRichard Fitzgerald MADERA_IN2L_HPF_SHIFT, 1, 0),
29195a9049bSRichard Fitzgerald SOC_SINGLE("IN2R HPF Switch", MADERA_IN2R_CONTROL,
29295a9049bSRichard Fitzgerald MADERA_IN2R_HPF_SHIFT, 1, 0),
29395a9049bSRichard Fitzgerald SOC_SINGLE("IN3L HPF Switch", MADERA_IN3L_CONTROL,
29495a9049bSRichard Fitzgerald MADERA_IN3L_HPF_SHIFT, 1, 0),
29595a9049bSRichard Fitzgerald SOC_SINGLE("IN3R HPF Switch", MADERA_IN3R_CONTROL,
29695a9049bSRichard Fitzgerald MADERA_IN3R_HPF_SHIFT, 1, 0),
29795a9049bSRichard Fitzgerald SOC_SINGLE("IN4L HPF Switch", MADERA_IN4L_CONTROL,
29895a9049bSRichard Fitzgerald MADERA_IN4L_HPF_SHIFT, 1, 0),
29995a9049bSRichard Fitzgerald SOC_SINGLE("IN4R HPF Switch", MADERA_IN4R_CONTROL,
30095a9049bSRichard Fitzgerald MADERA_IN4R_HPF_SHIFT, 1, 0),
30195a9049bSRichard Fitzgerald SOC_SINGLE("IN5L HPF Switch", MADERA_IN5L_CONTROL,
30295a9049bSRichard Fitzgerald MADERA_IN5L_HPF_SHIFT, 1, 0),
30395a9049bSRichard Fitzgerald SOC_SINGLE("IN5R HPF Switch", MADERA_IN5R_CONTROL,
30495a9049bSRichard Fitzgerald MADERA_IN5R_HPF_SHIFT, 1, 0),
30595a9049bSRichard Fitzgerald SOC_SINGLE("IN6L HPF Switch", MADERA_IN6L_CONTROL,
30695a9049bSRichard Fitzgerald MADERA_IN6L_HPF_SHIFT, 1, 0),
30795a9049bSRichard Fitzgerald SOC_SINGLE("IN6R HPF Switch", MADERA_IN6R_CONTROL,
30895a9049bSRichard Fitzgerald MADERA_IN6R_HPF_SHIFT, 1, 0),
30995a9049bSRichard Fitzgerald
31095a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN1L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_1L,
31195a9049bSRichard Fitzgerald MADERA_IN1L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
31295a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN1R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_1R,
31395a9049bSRichard Fitzgerald MADERA_IN1R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
31495a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN2L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_2L,
31595a9049bSRichard Fitzgerald MADERA_IN2L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
31695a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN2R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_2R,
31795a9049bSRichard Fitzgerald MADERA_IN2R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
31895a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN3L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_3L,
31995a9049bSRichard Fitzgerald MADERA_IN3L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
32095a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN3R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_3R,
32195a9049bSRichard Fitzgerald MADERA_IN3R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
32295a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN4L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_4L,
32395a9049bSRichard Fitzgerald MADERA_IN4L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
32495a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN4R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_4R,
32595a9049bSRichard Fitzgerald MADERA_IN4R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
32695a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN5L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_5L,
32795a9049bSRichard Fitzgerald MADERA_IN5L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
32895a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN5R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_5R,
32995a9049bSRichard Fitzgerald MADERA_IN5R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
33095a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN6L Digital Volume", MADERA_ADC_DIGITAL_VOLUME_6L,
33195a9049bSRichard Fitzgerald MADERA_IN6L_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
33295a9049bSRichard Fitzgerald SOC_SINGLE_TLV("IN6R Digital Volume", MADERA_ADC_DIGITAL_VOLUME_6R,
33395a9049bSRichard Fitzgerald MADERA_IN6R_DIG_VOL_SHIFT, 0xbf, 0, madera_digital_tlv),
33495a9049bSRichard Fitzgerald
33595a9049bSRichard Fitzgerald SOC_ENUM("Input Ramp Up", madera_in_vi_ramp),
33695a9049bSRichard Fitzgerald SOC_ENUM("Input Ramp Down", madera_in_vd_ramp),
33795a9049bSRichard Fitzgerald
33895a9049bSRichard Fitzgerald SND_SOC_BYTES("RXANC Coefficients", MADERA_ANC_COEFF_START,
33995a9049bSRichard Fitzgerald MADERA_ANC_COEFF_END - MADERA_ANC_COEFF_START + 1),
34095a9049bSRichard Fitzgerald SND_SOC_BYTES("RXANCL Config", MADERA_FCL_FILTER_CONTROL, 1),
34195a9049bSRichard Fitzgerald SND_SOC_BYTES("RXANCL Coefficients", MADERA_FCL_COEFF_START,
34295a9049bSRichard Fitzgerald MADERA_FCL_COEFF_END - MADERA_FCL_COEFF_START + 1),
34395a9049bSRichard Fitzgerald SND_SOC_BYTES("RXANCR Config", MADERA_FCR_FILTER_CONTROL, 1),
34495a9049bSRichard Fitzgerald SND_SOC_BYTES("RXANCR Coefficients", MADERA_FCR_COEFF_START,
34595a9049bSRichard Fitzgerald MADERA_FCR_COEFF_END - MADERA_FCR_COEFF_START + 1),
34695a9049bSRichard Fitzgerald
34795a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("EQ1", MADERA_EQ1MIX_INPUT_1_SOURCE),
34895a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("EQ2", MADERA_EQ2MIX_INPUT_1_SOURCE),
34995a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("EQ3", MADERA_EQ3MIX_INPUT_1_SOURCE),
35095a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("EQ4", MADERA_EQ4MIX_INPUT_1_SOURCE),
35195a9049bSRichard Fitzgerald
35295a9049bSRichard Fitzgerald MADERA_EQ_CONTROL("EQ1 Coefficients", MADERA_EQ1_2),
35395a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ1 B1 Volume", MADERA_EQ1_1, MADERA_EQ1_B1_GAIN_SHIFT,
35495a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
35595a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ1 B2 Volume", MADERA_EQ1_1, MADERA_EQ1_B2_GAIN_SHIFT,
35695a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
35795a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ1 B3 Volume", MADERA_EQ1_1, MADERA_EQ1_B3_GAIN_SHIFT,
35895a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
35995a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ1 B4 Volume", MADERA_EQ1_2, MADERA_EQ1_B4_GAIN_SHIFT,
36095a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
36195a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ1 B5 Volume", MADERA_EQ1_2, MADERA_EQ1_B5_GAIN_SHIFT,
36295a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
36395a9049bSRichard Fitzgerald
36495a9049bSRichard Fitzgerald MADERA_EQ_CONTROL("EQ2 Coefficients", MADERA_EQ2_2),
36595a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ2 B1 Volume", MADERA_EQ2_1, MADERA_EQ2_B1_GAIN_SHIFT,
36695a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
36795a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ2 B2 Volume", MADERA_EQ2_1, MADERA_EQ2_B2_GAIN_SHIFT,
36895a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
36995a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ2 B3 Volume", MADERA_EQ2_1, MADERA_EQ2_B3_GAIN_SHIFT,
37095a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
37195a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ2 B4 Volume", MADERA_EQ2_2, MADERA_EQ2_B4_GAIN_SHIFT,
37295a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
37395a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ2 B5 Volume", MADERA_EQ2_2, MADERA_EQ2_B5_GAIN_SHIFT,
37495a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
37595a9049bSRichard Fitzgerald
37695a9049bSRichard Fitzgerald MADERA_EQ_CONTROL("EQ3 Coefficients", MADERA_EQ3_2),
37795a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ3 B1 Volume", MADERA_EQ3_1, MADERA_EQ3_B1_GAIN_SHIFT,
37895a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
37995a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ3 B2 Volume", MADERA_EQ3_1, MADERA_EQ3_B2_GAIN_SHIFT,
38095a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
38195a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ3 B3 Volume", MADERA_EQ3_1, MADERA_EQ3_B3_GAIN_SHIFT,
38295a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
38395a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ3 B4 Volume", MADERA_EQ3_2, MADERA_EQ3_B4_GAIN_SHIFT,
38495a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
38595a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ3 B5 Volume", MADERA_EQ3_2, MADERA_EQ3_B5_GAIN_SHIFT,
38695a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
38795a9049bSRichard Fitzgerald
38895a9049bSRichard Fitzgerald MADERA_EQ_CONTROL("EQ4 Coefficients", MADERA_EQ4_2),
38995a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ4 B1 Volume", MADERA_EQ4_1, MADERA_EQ4_B1_GAIN_SHIFT,
39095a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
39195a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ4 B2 Volume", MADERA_EQ4_1, MADERA_EQ4_B2_GAIN_SHIFT,
39295a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
39395a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ4 B3 Volume", MADERA_EQ4_1, MADERA_EQ4_B3_GAIN_SHIFT,
39495a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
39595a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ4 B4 Volume", MADERA_EQ4_2, MADERA_EQ4_B4_GAIN_SHIFT,
39695a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
39795a9049bSRichard Fitzgerald SOC_SINGLE_TLV("EQ4 B5 Volume", MADERA_EQ4_2, MADERA_EQ4_B5_GAIN_SHIFT,
39895a9049bSRichard Fitzgerald 24, 0, madera_eq_tlv),
39995a9049bSRichard Fitzgerald
40095a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DRC1L", MADERA_DRC1LMIX_INPUT_1_SOURCE),
40195a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DRC1R", MADERA_DRC1RMIX_INPUT_1_SOURCE),
40295a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DRC2L", MADERA_DRC2LMIX_INPUT_1_SOURCE),
40395a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DRC2R", MADERA_DRC2RMIX_INPUT_1_SOURCE),
40495a9049bSRichard Fitzgerald
40595a9049bSRichard Fitzgerald SND_SOC_BYTES_MASK("DRC1", MADERA_DRC1_CTRL1, 5,
40695a9049bSRichard Fitzgerald MADERA_DRC1R_ENA | MADERA_DRC1L_ENA),
40795a9049bSRichard Fitzgerald SND_SOC_BYTES_MASK("DRC2", MADERA_DRC2_CTRL1, 5,
40895a9049bSRichard Fitzgerald MADERA_DRC2R_ENA | MADERA_DRC2L_ENA),
40995a9049bSRichard Fitzgerald
41095a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("LHPF1", MADERA_HPLP1MIX_INPUT_1_SOURCE),
41195a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("LHPF2", MADERA_HPLP2MIX_INPUT_1_SOURCE),
41295a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("LHPF3", MADERA_HPLP3MIX_INPUT_1_SOURCE),
41395a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("LHPF4", MADERA_HPLP4MIX_INPUT_1_SOURCE),
41495a9049bSRichard Fitzgerald
41595a9049bSRichard Fitzgerald MADERA_LHPF_CONTROL("LHPF1 Coefficients", MADERA_HPLPF1_2),
41695a9049bSRichard Fitzgerald MADERA_LHPF_CONTROL("LHPF2 Coefficients", MADERA_HPLPF2_2),
41795a9049bSRichard Fitzgerald MADERA_LHPF_CONTROL("LHPF3 Coefficients", MADERA_HPLPF3_2),
41895a9049bSRichard Fitzgerald MADERA_LHPF_CONTROL("LHPF4 Coefficients", MADERA_HPLPF4_2),
41995a9049bSRichard Fitzgerald
42095a9049bSRichard Fitzgerald SOC_ENUM("LHPF1 Mode", madera_lhpf1_mode),
42195a9049bSRichard Fitzgerald SOC_ENUM("LHPF2 Mode", madera_lhpf2_mode),
42295a9049bSRichard Fitzgerald SOC_ENUM("LHPF3 Mode", madera_lhpf3_mode),
42395a9049bSRichard Fitzgerald SOC_ENUM("LHPF4 Mode", madera_lhpf4_mode),
42495a9049bSRichard Fitzgerald
42595a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ISRC1 FSL", madera_isrc_fsl[0]),
42695a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ISRC2 FSL", madera_isrc_fsl[1]),
42795a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ISRC3 FSL", madera_isrc_fsl[2]),
42895a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ISRC4 FSL", madera_isrc_fsl[3]),
42995a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ISRC1 FSH", madera_isrc_fsh[0]),
43095a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ISRC2 FSH", madera_isrc_fsh[1]),
43195a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ISRC3 FSH", madera_isrc_fsh[2]),
43295a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ISRC4 FSH", madera_isrc_fsh[3]),
43395a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ASRC1 Rate 1", madera_asrc1_rate[0]),
43495a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ASRC1 Rate 2", madera_asrc1_rate[1]),
43595a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ASRC2 Rate 1", madera_asrc2_rate[0]),
43695a9049bSRichard Fitzgerald MADERA_RATE_ENUM("ASRC2 Rate 2", madera_asrc2_rate[1]),
43795a9049bSRichard Fitzgerald
43895a9049bSRichard Fitzgerald WM_ADSP2_PRELOAD_SWITCH("DSP1", 1),
43995a9049bSRichard Fitzgerald WM_ADSP2_PRELOAD_SWITCH("DSP2", 2),
44095a9049bSRichard Fitzgerald WM_ADSP2_PRELOAD_SWITCH("DSP3", 3),
44195a9049bSRichard Fitzgerald WM_ADSP2_PRELOAD_SWITCH("DSP4", 4),
44295a9049bSRichard Fitzgerald WM_ADSP2_PRELOAD_SWITCH("DSP5", 5),
44395a9049bSRichard Fitzgerald WM_ADSP2_PRELOAD_SWITCH("DSP6", 6),
44495a9049bSRichard Fitzgerald WM_ADSP2_PRELOAD_SWITCH("DSP7", 7),
44595a9049bSRichard Fitzgerald
44695a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP1L", MADERA_DSP1LMIX_INPUT_1_SOURCE),
44795a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP1R", MADERA_DSP1RMIX_INPUT_1_SOURCE),
44895a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP2L", MADERA_DSP2LMIX_INPUT_1_SOURCE),
44995a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP2R", MADERA_DSP2RMIX_INPUT_1_SOURCE),
45095a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP3L", MADERA_DSP3LMIX_INPUT_1_SOURCE),
45195a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP3R", MADERA_DSP3RMIX_INPUT_1_SOURCE),
45295a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP4L", MADERA_DSP4LMIX_INPUT_1_SOURCE),
45395a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP4R", MADERA_DSP4RMIX_INPUT_1_SOURCE),
45495a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP5L", MADERA_DSP5LMIX_INPUT_1_SOURCE),
45595a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP5R", MADERA_DSP5RMIX_INPUT_1_SOURCE),
45695a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP6L", MADERA_DSP6LMIX_INPUT_1_SOURCE),
45795a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP6R", MADERA_DSP6RMIX_INPUT_1_SOURCE),
45895a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP7L", MADERA_DSP7LMIX_INPUT_1_SOURCE),
45995a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("DSP7R", MADERA_DSP7RMIX_INPUT_1_SOURCE),
46095a9049bSRichard Fitzgerald
46195a9049bSRichard Fitzgerald SOC_SINGLE_TLV("Noise Generator Volume", MADERA_COMFORT_NOISE_GENERATOR,
46295a9049bSRichard Fitzgerald MADERA_NOISE_GEN_GAIN_SHIFT, 0x16, 0, madera_noise_tlv),
46395a9049bSRichard Fitzgerald
46495a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("HPOUT1L", MADERA_OUT1LMIX_INPUT_1_SOURCE),
46595a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("HPOUT1R", MADERA_OUT1RMIX_INPUT_1_SOURCE),
46695a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("HPOUT2L", MADERA_OUT2LMIX_INPUT_1_SOURCE),
46795a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("HPOUT2R", MADERA_OUT2RMIX_INPUT_1_SOURCE),
46895a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("HPOUT3L", MADERA_OUT3LMIX_INPUT_1_SOURCE),
46995a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("HPOUT3R", MADERA_OUT3RMIX_INPUT_1_SOURCE),
47095a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SPKOUTL", MADERA_OUT4LMIX_INPUT_1_SOURCE),
47195a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SPKOUTR", MADERA_OUT4RMIX_INPUT_1_SOURCE),
47295a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SPKDAT1L", MADERA_OUT5LMIX_INPUT_1_SOURCE),
47395a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SPKDAT1R", MADERA_OUT5RMIX_INPUT_1_SOURCE),
47495a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SPKDAT2L", MADERA_OUT6LMIX_INPUT_1_SOURCE),
47595a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SPKDAT2R", MADERA_OUT6RMIX_INPUT_1_SOURCE),
47695a9049bSRichard Fitzgerald
47795a9049bSRichard Fitzgerald SOC_SINGLE("HPOUT1 SC Protect Switch", MADERA_HP1_SHORT_CIRCUIT_CTRL,
47895a9049bSRichard Fitzgerald MADERA_HP1_SC_ENA_SHIFT, 1, 0),
47995a9049bSRichard Fitzgerald SOC_SINGLE("HPOUT2 SC Protect Switch", MADERA_HP2_SHORT_CIRCUIT_CTRL,
48095a9049bSRichard Fitzgerald MADERA_HP2_SC_ENA_SHIFT, 1, 0),
48195a9049bSRichard Fitzgerald SOC_SINGLE("HPOUT3 SC Protect Switch", MADERA_HP3_SHORT_CIRCUIT_CTRL,
48295a9049bSRichard Fitzgerald MADERA_HP3_SC_ENA_SHIFT, 1, 0),
48395a9049bSRichard Fitzgerald
48495a9049bSRichard Fitzgerald SOC_SINGLE("SPKDAT1 High Performance Switch", MADERA_OUTPUT_PATH_CONFIG_5L,
48595a9049bSRichard Fitzgerald MADERA_OUT5_OSR_SHIFT, 1, 0),
48695a9049bSRichard Fitzgerald SOC_SINGLE("SPKDAT2 High Performance Switch", MADERA_OUTPUT_PATH_CONFIG_6L,
48795a9049bSRichard Fitzgerald MADERA_OUT6_OSR_SHIFT, 1, 0),
48895a9049bSRichard Fitzgerald
48995a9049bSRichard Fitzgerald SOC_DOUBLE_R("HPOUT1 Digital Switch", MADERA_DAC_DIGITAL_VOLUME_1L,
49095a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_1R, MADERA_OUT1L_MUTE_SHIFT, 1, 1),
49195a9049bSRichard Fitzgerald SOC_DOUBLE_R("HPOUT2 Digital Switch", MADERA_DAC_DIGITAL_VOLUME_2L,
49295a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_2R, MADERA_OUT2L_MUTE_SHIFT, 1, 1),
49395a9049bSRichard Fitzgerald SOC_DOUBLE_R("HPOUT3 Digital Switch", MADERA_DAC_DIGITAL_VOLUME_3L,
49495a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_3R, MADERA_OUT3L_MUTE_SHIFT, 1, 1),
49595a9049bSRichard Fitzgerald SOC_DOUBLE_R("Speaker Digital Switch", MADERA_DAC_DIGITAL_VOLUME_4L,
49695a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_4R, MADERA_OUT4L_MUTE_SHIFT, 1, 1),
49795a9049bSRichard Fitzgerald SOC_DOUBLE_R("SPKDAT1 Digital Switch", MADERA_DAC_DIGITAL_VOLUME_5L,
49895a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_5R, MADERA_OUT5L_MUTE_SHIFT, 1, 1),
49995a9049bSRichard Fitzgerald SOC_DOUBLE_R("SPKDAT2 Digital Switch", MADERA_DAC_DIGITAL_VOLUME_6L,
50095a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_6R, MADERA_OUT6L_MUTE_SHIFT, 1, 1),
50195a9049bSRichard Fitzgerald
50295a9049bSRichard Fitzgerald SOC_DOUBLE_R_TLV("HPOUT1 Digital Volume", MADERA_DAC_DIGITAL_VOLUME_1L,
50395a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_1R, MADERA_OUT1L_VOL_SHIFT,
50495a9049bSRichard Fitzgerald 0xbf, 0, madera_digital_tlv),
50595a9049bSRichard Fitzgerald SOC_DOUBLE_R_TLV("HPOUT2 Digital Volume", MADERA_DAC_DIGITAL_VOLUME_2L,
50695a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_2R, MADERA_OUT2L_VOL_SHIFT,
50795a9049bSRichard Fitzgerald 0xbf, 0, madera_digital_tlv),
50895a9049bSRichard Fitzgerald SOC_DOUBLE_R_TLV("HPOUT3 Digital Volume", MADERA_DAC_DIGITAL_VOLUME_3L,
50995a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_3R, MADERA_OUT3L_VOL_SHIFT,
51095a9049bSRichard Fitzgerald 0xbf, 0, madera_digital_tlv),
51195a9049bSRichard Fitzgerald SOC_DOUBLE_R_TLV("Speaker Digital Volume", MADERA_DAC_DIGITAL_VOLUME_4L,
51295a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_4R, MADERA_OUT4L_VOL_SHIFT,
51395a9049bSRichard Fitzgerald 0xbf, 0, madera_digital_tlv),
51495a9049bSRichard Fitzgerald SOC_DOUBLE_R_TLV("SPKDAT1 Digital Volume", MADERA_DAC_DIGITAL_VOLUME_5L,
51595a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_5R, MADERA_OUT5L_VOL_SHIFT,
51695a9049bSRichard Fitzgerald 0xbf, 0, madera_digital_tlv),
51795a9049bSRichard Fitzgerald SOC_DOUBLE_R_TLV("SPKDAT2 Digital Volume", MADERA_DAC_DIGITAL_VOLUME_6L,
51895a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_6R, MADERA_OUT6L_VOL_SHIFT,
51995a9049bSRichard Fitzgerald 0xbf, 0, madera_digital_tlv),
52095a9049bSRichard Fitzgerald
52195a9049bSRichard Fitzgerald SOC_DOUBLE("SPKDAT1 Switch", MADERA_PDM_SPK1_CTRL_1, MADERA_SPK1L_MUTE_SHIFT,
52295a9049bSRichard Fitzgerald MADERA_SPK1R_MUTE_SHIFT, 1, 1),
52395a9049bSRichard Fitzgerald SOC_DOUBLE("SPKDAT2 Switch", MADERA_PDM_SPK2_CTRL_1, MADERA_SPK2L_MUTE_SHIFT,
52495a9049bSRichard Fitzgerald MADERA_SPK2R_MUTE_SHIFT, 1, 1),
52595a9049bSRichard Fitzgerald
52695a9049bSRichard Fitzgerald SOC_ENUM("Output Ramp Up", madera_out_vi_ramp),
52795a9049bSRichard Fitzgerald SOC_ENUM("Output Ramp Down", madera_out_vd_ramp),
52895a9049bSRichard Fitzgerald
52995a9049bSRichard Fitzgerald SOC_SINGLE("Noise Gate Switch", MADERA_NOISE_GATE_CONTROL,
53095a9049bSRichard Fitzgerald MADERA_NGATE_ENA_SHIFT, 1, 0),
53195a9049bSRichard Fitzgerald SOC_SINGLE_TLV("Noise Gate Threshold Volume", MADERA_NOISE_GATE_CONTROL,
53295a9049bSRichard Fitzgerald MADERA_NGATE_THR_SHIFT, 7, 1, madera_ng_tlv),
53395a9049bSRichard Fitzgerald SOC_ENUM("Noise Gate Hold", madera_ng_hold),
53495a9049bSRichard Fitzgerald
53595a9049bSRichard Fitzgerald CS47L85_NG_SRC("HPOUT1L", MADERA_NOISE_GATE_SELECT_1L),
53695a9049bSRichard Fitzgerald CS47L85_NG_SRC("HPOUT1R", MADERA_NOISE_GATE_SELECT_1R),
53795a9049bSRichard Fitzgerald CS47L85_NG_SRC("HPOUT2L", MADERA_NOISE_GATE_SELECT_2L),
53895a9049bSRichard Fitzgerald CS47L85_NG_SRC("HPOUT2R", MADERA_NOISE_GATE_SELECT_2R),
53995a9049bSRichard Fitzgerald CS47L85_NG_SRC("HPOUT3L", MADERA_NOISE_GATE_SELECT_3L),
54095a9049bSRichard Fitzgerald CS47L85_NG_SRC("HPOUT3R", MADERA_NOISE_GATE_SELECT_3R),
54195a9049bSRichard Fitzgerald CS47L85_NG_SRC("SPKOUTL", MADERA_NOISE_GATE_SELECT_4L),
54295a9049bSRichard Fitzgerald CS47L85_NG_SRC("SPKOUTR", MADERA_NOISE_GATE_SELECT_4R),
54395a9049bSRichard Fitzgerald CS47L85_NG_SRC("SPKDAT1L", MADERA_NOISE_GATE_SELECT_5L),
54495a9049bSRichard Fitzgerald CS47L85_NG_SRC("SPKDAT1R", MADERA_NOISE_GATE_SELECT_5R),
54595a9049bSRichard Fitzgerald CS47L85_NG_SRC("SPKDAT2L", MADERA_NOISE_GATE_SELECT_6L),
54695a9049bSRichard Fitzgerald CS47L85_NG_SRC("SPKDAT2R", MADERA_NOISE_GATE_SELECT_6R),
54795a9049bSRichard Fitzgerald
54895a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF1TX1", MADERA_AIF1TX1MIX_INPUT_1_SOURCE),
54995a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF1TX2", MADERA_AIF1TX2MIX_INPUT_1_SOURCE),
55095a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF1TX3", MADERA_AIF1TX3MIX_INPUT_1_SOURCE),
55195a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF1TX4", MADERA_AIF1TX4MIX_INPUT_1_SOURCE),
55295a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF1TX5", MADERA_AIF1TX5MIX_INPUT_1_SOURCE),
55395a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF1TX6", MADERA_AIF1TX6MIX_INPUT_1_SOURCE),
55495a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF1TX7", MADERA_AIF1TX7MIX_INPUT_1_SOURCE),
55595a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF1TX8", MADERA_AIF1TX8MIX_INPUT_1_SOURCE),
55695a9049bSRichard Fitzgerald
55795a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF2TX1", MADERA_AIF2TX1MIX_INPUT_1_SOURCE),
55895a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF2TX2", MADERA_AIF2TX2MIX_INPUT_1_SOURCE),
55995a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF2TX3", MADERA_AIF2TX3MIX_INPUT_1_SOURCE),
56095a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF2TX4", MADERA_AIF2TX4MIX_INPUT_1_SOURCE),
56195a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF2TX5", MADERA_AIF2TX5MIX_INPUT_1_SOURCE),
56295a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF2TX6", MADERA_AIF2TX6MIX_INPUT_1_SOURCE),
56395a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF2TX7", MADERA_AIF2TX7MIX_INPUT_1_SOURCE),
56495a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF2TX8", MADERA_AIF2TX8MIX_INPUT_1_SOURCE),
56595a9049bSRichard Fitzgerald
56695a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF3TX1", MADERA_AIF3TX1MIX_INPUT_1_SOURCE),
56795a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF3TX2", MADERA_AIF3TX2MIX_INPUT_1_SOURCE),
56895a9049bSRichard Fitzgerald
56995a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF4TX1", MADERA_AIF4TX1MIX_INPUT_1_SOURCE),
57095a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("AIF4TX2", MADERA_AIF4TX2MIX_INPUT_1_SOURCE),
57195a9049bSRichard Fitzgerald
57295a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SLIMTX1", MADERA_SLIMTX1MIX_INPUT_1_SOURCE),
57395a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SLIMTX2", MADERA_SLIMTX2MIX_INPUT_1_SOURCE),
57495a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SLIMTX3", MADERA_SLIMTX3MIX_INPUT_1_SOURCE),
57595a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SLIMTX4", MADERA_SLIMTX4MIX_INPUT_1_SOURCE),
57695a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SLIMTX5", MADERA_SLIMTX5MIX_INPUT_1_SOURCE),
57795a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SLIMTX6", MADERA_SLIMTX6MIX_INPUT_1_SOURCE),
57895a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SLIMTX7", MADERA_SLIMTX7MIX_INPUT_1_SOURCE),
57995a9049bSRichard Fitzgerald MADERA_MIXER_CONTROLS("SLIMTX8", MADERA_SLIMTX8MIX_INPUT_1_SOURCE),
58095a9049bSRichard Fitzgerald
58195a9049bSRichard Fitzgerald MADERA_GAINMUX_CONTROLS("SPDIF1TX1", MADERA_SPDIF1TX1MIX_INPUT_1_SOURCE),
58295a9049bSRichard Fitzgerald MADERA_GAINMUX_CONTROLS("SPDIF1TX2", MADERA_SPDIF1TX2MIX_INPUT_1_SOURCE),
58395a9049bSRichard Fitzgerald
58495a9049bSRichard Fitzgerald WM_ADSP_FW_CONTROL("DSP1", 0),
58595a9049bSRichard Fitzgerald WM_ADSP_FW_CONTROL("DSP2", 1),
58695a9049bSRichard Fitzgerald WM_ADSP_FW_CONTROL("DSP3", 2),
58795a9049bSRichard Fitzgerald WM_ADSP_FW_CONTROL("DSP4", 3),
58895a9049bSRichard Fitzgerald WM_ADSP_FW_CONTROL("DSP5", 4),
58995a9049bSRichard Fitzgerald WM_ADSP_FW_CONTROL("DSP6", 5),
59095a9049bSRichard Fitzgerald WM_ADSP_FW_CONTROL("DSP7", 6),
59195a9049bSRichard Fitzgerald };
59295a9049bSRichard Fitzgerald
59395a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(EQ1, MADERA_EQ1MIX_INPUT_1_SOURCE);
59495a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(EQ2, MADERA_EQ2MIX_INPUT_1_SOURCE);
59595a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(EQ3, MADERA_EQ3MIX_INPUT_1_SOURCE);
59695a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(EQ4, MADERA_EQ4MIX_INPUT_1_SOURCE);
59795a9049bSRichard Fitzgerald
59895a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DRC1L, MADERA_DRC1LMIX_INPUT_1_SOURCE);
59995a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DRC1R, MADERA_DRC1RMIX_INPUT_1_SOURCE);
60095a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DRC2L, MADERA_DRC2LMIX_INPUT_1_SOURCE);
60195a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DRC2R, MADERA_DRC2RMIX_INPUT_1_SOURCE);
60295a9049bSRichard Fitzgerald
60395a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(LHPF1, MADERA_HPLP1MIX_INPUT_1_SOURCE);
60495a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(LHPF2, MADERA_HPLP2MIX_INPUT_1_SOURCE);
60595a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(LHPF3, MADERA_HPLP3MIX_INPUT_1_SOURCE);
60695a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(LHPF4, MADERA_HPLP4MIX_INPUT_1_SOURCE);
60795a9049bSRichard Fitzgerald
60895a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP1L, MADERA_DSP1LMIX_INPUT_1_SOURCE);
60995a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP1R, MADERA_DSP1RMIX_INPUT_1_SOURCE);
61095a9049bSRichard Fitzgerald MADERA_DSP_AUX_ENUMS(DSP1, MADERA_DSP1AUX1MIX_INPUT_1_SOURCE);
61195a9049bSRichard Fitzgerald
61295a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP2L, MADERA_DSP2LMIX_INPUT_1_SOURCE);
61395a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP2R, MADERA_DSP2RMIX_INPUT_1_SOURCE);
61495a9049bSRichard Fitzgerald MADERA_DSP_AUX_ENUMS(DSP2, MADERA_DSP2AUX1MIX_INPUT_1_SOURCE);
61595a9049bSRichard Fitzgerald
61695a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP3L, MADERA_DSP3LMIX_INPUT_1_SOURCE);
61795a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP3R, MADERA_DSP3RMIX_INPUT_1_SOURCE);
61895a9049bSRichard Fitzgerald MADERA_DSP_AUX_ENUMS(DSP3, MADERA_DSP3AUX1MIX_INPUT_1_SOURCE);
61995a9049bSRichard Fitzgerald
62095a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP4L, MADERA_DSP4LMIX_INPUT_1_SOURCE);
62195a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP4R, MADERA_DSP4RMIX_INPUT_1_SOURCE);
62295a9049bSRichard Fitzgerald MADERA_DSP_AUX_ENUMS(DSP4, MADERA_DSP4AUX1MIX_INPUT_1_SOURCE);
62395a9049bSRichard Fitzgerald
62495a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP5L, MADERA_DSP5LMIX_INPUT_1_SOURCE);
62595a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP5R, MADERA_DSP5RMIX_INPUT_1_SOURCE);
62695a9049bSRichard Fitzgerald MADERA_DSP_AUX_ENUMS(DSP5, MADERA_DSP5AUX1MIX_INPUT_1_SOURCE);
62795a9049bSRichard Fitzgerald
62895a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP6L, MADERA_DSP6LMIX_INPUT_1_SOURCE);
62995a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP6R, MADERA_DSP6RMIX_INPUT_1_SOURCE);
63095a9049bSRichard Fitzgerald MADERA_DSP_AUX_ENUMS(DSP6, MADERA_DSP6AUX1MIX_INPUT_1_SOURCE);
63195a9049bSRichard Fitzgerald
63295a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP7L, MADERA_DSP7LMIX_INPUT_1_SOURCE);
63395a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(DSP7R, MADERA_DSP7RMIX_INPUT_1_SOURCE);
63495a9049bSRichard Fitzgerald MADERA_DSP_AUX_ENUMS(DSP7, MADERA_DSP7AUX1MIX_INPUT_1_SOURCE);
63595a9049bSRichard Fitzgerald
63695a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(PWM1, MADERA_PWM1MIX_INPUT_1_SOURCE);
63795a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(PWM2, MADERA_PWM2MIX_INPUT_1_SOURCE);
63895a9049bSRichard Fitzgerald
63995a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(OUT1L, MADERA_OUT1LMIX_INPUT_1_SOURCE);
64095a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(OUT1R, MADERA_OUT1RMIX_INPUT_1_SOURCE);
64195a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(OUT2L, MADERA_OUT2LMIX_INPUT_1_SOURCE);
64295a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(OUT2R, MADERA_OUT2RMIX_INPUT_1_SOURCE);
64395a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(OUT3L, MADERA_OUT3LMIX_INPUT_1_SOURCE);
64495a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(OUT3R, MADERA_OUT3RMIX_INPUT_1_SOURCE);
64595a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SPKOUTL, MADERA_OUT4LMIX_INPUT_1_SOURCE);
64695a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SPKOUTR, MADERA_OUT4RMIX_INPUT_1_SOURCE);
64795a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SPKDAT1L, MADERA_OUT5LMIX_INPUT_1_SOURCE);
64895a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SPKDAT1R, MADERA_OUT5RMIX_INPUT_1_SOURCE);
64995a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SPKDAT2L, MADERA_OUT6LMIX_INPUT_1_SOURCE);
65095a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SPKDAT2R, MADERA_OUT6RMIX_INPUT_1_SOURCE);
65195a9049bSRichard Fitzgerald
65295a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF1TX1, MADERA_AIF1TX1MIX_INPUT_1_SOURCE);
65395a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF1TX2, MADERA_AIF1TX2MIX_INPUT_1_SOURCE);
65495a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF1TX3, MADERA_AIF1TX3MIX_INPUT_1_SOURCE);
65595a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF1TX4, MADERA_AIF1TX4MIX_INPUT_1_SOURCE);
65695a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF1TX5, MADERA_AIF1TX5MIX_INPUT_1_SOURCE);
65795a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF1TX6, MADERA_AIF1TX6MIX_INPUT_1_SOURCE);
65895a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF1TX7, MADERA_AIF1TX7MIX_INPUT_1_SOURCE);
65995a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF1TX8, MADERA_AIF1TX8MIX_INPUT_1_SOURCE);
66095a9049bSRichard Fitzgerald
66195a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF2TX1, MADERA_AIF2TX1MIX_INPUT_1_SOURCE);
66295a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF2TX2, MADERA_AIF2TX2MIX_INPUT_1_SOURCE);
66395a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF2TX3, MADERA_AIF2TX3MIX_INPUT_1_SOURCE);
66495a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF2TX4, MADERA_AIF2TX4MIX_INPUT_1_SOURCE);
66595a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF2TX5, MADERA_AIF2TX5MIX_INPUT_1_SOURCE);
66695a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF2TX6, MADERA_AIF2TX6MIX_INPUT_1_SOURCE);
66795a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF2TX7, MADERA_AIF2TX7MIX_INPUT_1_SOURCE);
66895a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF2TX8, MADERA_AIF2TX8MIX_INPUT_1_SOURCE);
66995a9049bSRichard Fitzgerald
67095a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF3TX1, MADERA_AIF3TX1MIX_INPUT_1_SOURCE);
67195a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF3TX2, MADERA_AIF3TX2MIX_INPUT_1_SOURCE);
67295a9049bSRichard Fitzgerald
67395a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF4TX1, MADERA_AIF4TX1MIX_INPUT_1_SOURCE);
67495a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(AIF4TX2, MADERA_AIF4TX2MIX_INPUT_1_SOURCE);
67595a9049bSRichard Fitzgerald
67695a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SLIMTX1, MADERA_SLIMTX1MIX_INPUT_1_SOURCE);
67795a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SLIMTX2, MADERA_SLIMTX2MIX_INPUT_1_SOURCE);
67895a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SLIMTX3, MADERA_SLIMTX3MIX_INPUT_1_SOURCE);
67995a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SLIMTX4, MADERA_SLIMTX4MIX_INPUT_1_SOURCE);
68095a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SLIMTX5, MADERA_SLIMTX5MIX_INPUT_1_SOURCE);
68195a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SLIMTX6, MADERA_SLIMTX6MIX_INPUT_1_SOURCE);
68295a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SLIMTX7, MADERA_SLIMTX7MIX_INPUT_1_SOURCE);
68395a9049bSRichard Fitzgerald MADERA_MIXER_ENUMS(SLIMTX8, MADERA_SLIMTX8MIX_INPUT_1_SOURCE);
68495a9049bSRichard Fitzgerald
68595a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(SPD1TX1, MADERA_SPDIF1TX1MIX_INPUT_1_SOURCE);
68695a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(SPD1TX2, MADERA_SPDIF1TX2MIX_INPUT_1_SOURCE);
68795a9049bSRichard Fitzgerald
68895a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ASRC1IN1L, MADERA_ASRC1_1LMIX_INPUT_1_SOURCE);
68995a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ASRC1IN1R, MADERA_ASRC1_1RMIX_INPUT_1_SOURCE);
69095a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ASRC1IN2L, MADERA_ASRC1_2LMIX_INPUT_1_SOURCE);
69195a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ASRC1IN2R, MADERA_ASRC1_2RMIX_INPUT_1_SOURCE);
69295a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ASRC2IN1L, MADERA_ASRC2_1LMIX_INPUT_1_SOURCE);
69395a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ASRC2IN1R, MADERA_ASRC2_1RMIX_INPUT_1_SOURCE);
69495a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ASRC2IN2L, MADERA_ASRC2_2LMIX_INPUT_1_SOURCE);
69595a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ASRC2IN2R, MADERA_ASRC2_2RMIX_INPUT_1_SOURCE);
69695a9049bSRichard Fitzgerald
69795a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC1INT1, MADERA_ISRC1INT1MIX_INPUT_1_SOURCE);
69895a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC1INT2, MADERA_ISRC1INT2MIX_INPUT_1_SOURCE);
69995a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC1INT3, MADERA_ISRC1INT3MIX_INPUT_1_SOURCE);
70095a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC1INT4, MADERA_ISRC1INT4MIX_INPUT_1_SOURCE);
70195a9049bSRichard Fitzgerald
70295a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC1DEC1, MADERA_ISRC1DEC1MIX_INPUT_1_SOURCE);
70395a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC1DEC2, MADERA_ISRC1DEC2MIX_INPUT_1_SOURCE);
70495a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC1DEC3, MADERA_ISRC1DEC3MIX_INPUT_1_SOURCE);
70595a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC1DEC4, MADERA_ISRC1DEC4MIX_INPUT_1_SOURCE);
70695a9049bSRichard Fitzgerald
70795a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC2INT1, MADERA_ISRC2INT1MIX_INPUT_1_SOURCE);
70895a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC2INT2, MADERA_ISRC2INT2MIX_INPUT_1_SOURCE);
70995a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC2INT3, MADERA_ISRC2INT3MIX_INPUT_1_SOURCE);
71095a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC2INT4, MADERA_ISRC2INT4MIX_INPUT_1_SOURCE);
71195a9049bSRichard Fitzgerald
71295a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC2DEC1, MADERA_ISRC2DEC1MIX_INPUT_1_SOURCE);
71395a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC2DEC2, MADERA_ISRC2DEC2MIX_INPUT_1_SOURCE);
71495a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC2DEC3, MADERA_ISRC2DEC3MIX_INPUT_1_SOURCE);
71595a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC2DEC4, MADERA_ISRC2DEC4MIX_INPUT_1_SOURCE);
71695a9049bSRichard Fitzgerald
71795a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC3INT1, MADERA_ISRC3INT1MIX_INPUT_1_SOURCE);
71895a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC3INT2, MADERA_ISRC3INT2MIX_INPUT_1_SOURCE);
71995a9049bSRichard Fitzgerald
72095a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC3DEC1, MADERA_ISRC3DEC1MIX_INPUT_1_SOURCE);
72195a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC3DEC2, MADERA_ISRC3DEC2MIX_INPUT_1_SOURCE);
72295a9049bSRichard Fitzgerald
72395a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC4INT1, MADERA_ISRC4INT1MIX_INPUT_1_SOURCE);
72495a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC4INT2, MADERA_ISRC4INT2MIX_INPUT_1_SOURCE);
72595a9049bSRichard Fitzgerald
72695a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC4DEC1, MADERA_ISRC4DEC1MIX_INPUT_1_SOURCE);
72795a9049bSRichard Fitzgerald MADERA_MUX_ENUMS(ISRC4DEC2, MADERA_ISRC4DEC2MIX_INPUT_1_SOURCE);
72895a9049bSRichard Fitzgerald
72995a9049bSRichard Fitzgerald static const char * const cs47l85_aec_loopback_texts[] = {
73095a9049bSRichard Fitzgerald "HPOUT1L", "HPOUT1R", "HPOUT2L", "HPOUT2R", "HPOUT3L", "HPOUT3R",
73195a9049bSRichard Fitzgerald "SPKOUTL", "SPKOUTR", "SPKDAT1L", "SPKDAT1R", "SPKDAT2L", "SPKDAT2R",
73295a9049bSRichard Fitzgerald };
73395a9049bSRichard Fitzgerald
73495a9049bSRichard Fitzgerald static const unsigned int cs47l85_aec_loopback_values[] = {
73595a9049bSRichard Fitzgerald 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
73695a9049bSRichard Fitzgerald };
73795a9049bSRichard Fitzgerald
73895a9049bSRichard Fitzgerald static const struct soc_enum cs47l85_aec1_loopback =
73995a9049bSRichard Fitzgerald SOC_VALUE_ENUM_SINGLE(MADERA_DAC_AEC_CONTROL_1,
74095a9049bSRichard Fitzgerald MADERA_AEC1_LOOPBACK_SRC_SHIFT, 0xf,
74195a9049bSRichard Fitzgerald ARRAY_SIZE(cs47l85_aec_loopback_texts),
74295a9049bSRichard Fitzgerald cs47l85_aec_loopback_texts,
74395a9049bSRichard Fitzgerald cs47l85_aec_loopback_values);
74495a9049bSRichard Fitzgerald
74595a9049bSRichard Fitzgerald static const struct soc_enum cs47l85_aec2_loopback =
74695a9049bSRichard Fitzgerald SOC_VALUE_ENUM_SINGLE(MADERA_DAC_AEC_CONTROL_2,
74795a9049bSRichard Fitzgerald MADERA_AEC2_LOOPBACK_SRC_SHIFT, 0xf,
74895a9049bSRichard Fitzgerald ARRAY_SIZE(cs47l85_aec_loopback_texts),
74995a9049bSRichard Fitzgerald cs47l85_aec_loopback_texts,
75095a9049bSRichard Fitzgerald cs47l85_aec_loopback_values);
75195a9049bSRichard Fitzgerald
75295a9049bSRichard Fitzgerald static const struct snd_kcontrol_new cs47l85_aec_loopback_mux[] = {
75395a9049bSRichard Fitzgerald SOC_DAPM_ENUM("AEC1 Loopback", cs47l85_aec1_loopback),
75495a9049bSRichard Fitzgerald SOC_DAPM_ENUM("AEC2 Loopback", cs47l85_aec2_loopback),
75595a9049bSRichard Fitzgerald };
75695a9049bSRichard Fitzgerald
75795a9049bSRichard Fitzgerald static const struct snd_kcontrol_new cs47l85_anc_input_mux[] = {
75895a9049bSRichard Fitzgerald SOC_DAPM_ENUM("RXANCL Input", madera_anc_input_src[0]),
75995a9049bSRichard Fitzgerald SOC_DAPM_ENUM("RXANCL Channel", madera_anc_input_src[1]),
76095a9049bSRichard Fitzgerald SOC_DAPM_ENUM("RXANCR Input", madera_anc_input_src[2]),
76195a9049bSRichard Fitzgerald SOC_DAPM_ENUM("RXANCR Channel", madera_anc_input_src[3]),
76295a9049bSRichard Fitzgerald };
76395a9049bSRichard Fitzgerald
76495a9049bSRichard Fitzgerald static const struct snd_kcontrol_new cs47l85_anc_ng_mux =
76595a9049bSRichard Fitzgerald SOC_DAPM_ENUM("RXANC NG Source", madera_anc_ng_enum);
76695a9049bSRichard Fitzgerald
76795a9049bSRichard Fitzgerald static const struct snd_kcontrol_new cs47l85_output_anc_src[] = {
76895a9049bSRichard Fitzgerald SOC_DAPM_ENUM("HPOUT1L ANC Source", madera_output_anc_src[0]),
76995a9049bSRichard Fitzgerald SOC_DAPM_ENUM("HPOUT1R ANC Source", madera_output_anc_src[1]),
77095a9049bSRichard Fitzgerald SOC_DAPM_ENUM("HPOUT2L ANC Source", madera_output_anc_src[2]),
77195a9049bSRichard Fitzgerald SOC_DAPM_ENUM("HPOUT2R ANC Source", madera_output_anc_src[3]),
77295a9049bSRichard Fitzgerald SOC_DAPM_ENUM("HPOUT3L ANC Source", madera_output_anc_src[4]),
77395a9049bSRichard Fitzgerald SOC_DAPM_ENUM("HPOUT3R ANC Source", madera_output_anc_src[5]),
77495a9049bSRichard Fitzgerald SOC_DAPM_ENUM("SPKOUTL ANC Source", madera_output_anc_src[6]),
77595a9049bSRichard Fitzgerald SOC_DAPM_ENUM("SPKOUTR ANC Source", madera_output_anc_src[7]),
77695a9049bSRichard Fitzgerald SOC_DAPM_ENUM("SPKDAT1L ANC Source", madera_output_anc_src[8]),
77795a9049bSRichard Fitzgerald SOC_DAPM_ENUM("SPKDAT1R ANC Source", madera_output_anc_src[9]),
77895a9049bSRichard Fitzgerald SOC_DAPM_ENUM("SPKDAT2L ANC Source", madera_output_anc_src[10]),
77995a9049bSRichard Fitzgerald SOC_DAPM_ENUM("SPKDAT2R ANC Source", madera_output_anc_src[11]),
78095a9049bSRichard Fitzgerald };
78195a9049bSRichard Fitzgerald
78295a9049bSRichard Fitzgerald static const struct snd_soc_dapm_widget cs47l85_dapm_widgets[] = {
78395a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("SYSCLK", MADERA_SYSTEM_CLOCK_1, MADERA_SYSCLK_ENA_SHIFT,
78495a9049bSRichard Fitzgerald 0, madera_sysclk_ev,
7851094af11SCharles Keepax SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
7861094af11SCharles Keepax SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD),
78795a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("ASYNCCLK", MADERA_ASYNC_CLOCK_1,
7881094af11SCharles Keepax MADERA_ASYNC_CLK_ENA_SHIFT, 0, madera_clk_ev,
7891094af11SCharles Keepax SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
79095a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("OPCLK", MADERA_OUTPUT_SYSTEM_CLOCK,
79195a9049bSRichard Fitzgerald MADERA_OPCLK_ENA_SHIFT, 0, NULL, 0),
79295a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("ASYNCOPCLK", MADERA_OUTPUT_ASYNC_CLOCK,
79395a9049bSRichard Fitzgerald MADERA_OPCLK_ASYNC_ENA_SHIFT, 0, NULL, 0),
7941094af11SCharles Keepax SND_SOC_DAPM_SUPPLY("DSPCLK", MADERA_DSP_CLOCK_1, MADERA_DSP_CLK_ENA_SHIFT,
7951094af11SCharles Keepax 0, madera_clk_ev,
7961094af11SCharles Keepax SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
79795a9049bSRichard Fitzgerald
79895a9049bSRichard Fitzgerald SND_SOC_DAPM_REGULATOR_SUPPLY("DBVDD2", 0, 0),
79995a9049bSRichard Fitzgerald SND_SOC_DAPM_REGULATOR_SUPPLY("DBVDD3", 0, 0),
80095a9049bSRichard Fitzgerald SND_SOC_DAPM_REGULATOR_SUPPLY("DBVDD4", 0, 0),
80195a9049bSRichard Fitzgerald SND_SOC_DAPM_REGULATOR_SUPPLY("CPVDD1", 20, 0),
80295a9049bSRichard Fitzgerald SND_SOC_DAPM_REGULATOR_SUPPLY("CPVDD2", 20, 0),
80395a9049bSRichard Fitzgerald SND_SOC_DAPM_REGULATOR_SUPPLY("MICVDD", 0, SND_SOC_DAPM_REGULATOR_BYPASS),
80495a9049bSRichard Fitzgerald SND_SOC_DAPM_REGULATOR_SUPPLY("SPKVDDL", 0, 0),
80595a9049bSRichard Fitzgerald SND_SOC_DAPM_REGULATOR_SUPPLY("SPKVDDR", 0, 0),
80695a9049bSRichard Fitzgerald
80795a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("MICBIAS1", MADERA_MIC_BIAS_CTRL_1,
80895a9049bSRichard Fitzgerald MADERA_MICB1_ENA_SHIFT, 0, NULL, 0),
80995a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("MICBIAS2", MADERA_MIC_BIAS_CTRL_2,
81095a9049bSRichard Fitzgerald MADERA_MICB1_ENA_SHIFT, 0, NULL, 0),
81195a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("MICBIAS3", MADERA_MIC_BIAS_CTRL_3,
81295a9049bSRichard Fitzgerald MADERA_MICB1_ENA_SHIFT, 0, NULL, 0),
81395a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("MICBIAS4", MADERA_MIC_BIAS_CTRL_4,
81495a9049bSRichard Fitzgerald MADERA_MICB1_ENA_SHIFT, 0, NULL, 0),
81595a9049bSRichard Fitzgerald
81695a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("FXCLK", SND_SOC_NOPM,
81795a9049bSRichard Fitzgerald MADERA_DOM_GRP_FX, 0,
81895a9049bSRichard Fitzgerald madera_domain_clk_ev,
81995a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
82095a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("ASRC1CLK", SND_SOC_NOPM,
82195a9049bSRichard Fitzgerald MADERA_DOM_GRP_ASRC1, 0,
82295a9049bSRichard Fitzgerald madera_domain_clk_ev,
82395a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
82495a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("ASRC2CLK", SND_SOC_NOPM,
82595a9049bSRichard Fitzgerald MADERA_DOM_GRP_ASRC2, 0,
82695a9049bSRichard Fitzgerald madera_domain_clk_ev,
82795a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
82895a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("ISRC1CLK", SND_SOC_NOPM,
82995a9049bSRichard Fitzgerald MADERA_DOM_GRP_ISRC1, 0,
83095a9049bSRichard Fitzgerald madera_domain_clk_ev,
83195a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
83295a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("ISRC2CLK", SND_SOC_NOPM,
83395a9049bSRichard Fitzgerald MADERA_DOM_GRP_ISRC2, 0,
83495a9049bSRichard Fitzgerald madera_domain_clk_ev,
83595a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
83695a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("ISRC3CLK", SND_SOC_NOPM,
83795a9049bSRichard Fitzgerald MADERA_DOM_GRP_ISRC3, 0,
83895a9049bSRichard Fitzgerald madera_domain_clk_ev,
83995a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
84095a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("ISRC4CLK", SND_SOC_NOPM,
84195a9049bSRichard Fitzgerald MADERA_DOM_GRP_ISRC4, 0,
84295a9049bSRichard Fitzgerald madera_domain_clk_ev,
84395a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
84495a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("OUTCLK", SND_SOC_NOPM,
84595a9049bSRichard Fitzgerald MADERA_DOM_GRP_OUT, 0,
84695a9049bSRichard Fitzgerald madera_domain_clk_ev,
84795a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
84895a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("SPDCLK", SND_SOC_NOPM,
84995a9049bSRichard Fitzgerald MADERA_DOM_GRP_SPD, 0,
85095a9049bSRichard Fitzgerald madera_domain_clk_ev,
85195a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
85295a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("DSP1CLK", SND_SOC_NOPM,
85395a9049bSRichard Fitzgerald MADERA_DOM_GRP_DSP1, 0,
85495a9049bSRichard Fitzgerald madera_domain_clk_ev,
85595a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
85695a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("DSP2CLK", SND_SOC_NOPM,
85795a9049bSRichard Fitzgerald MADERA_DOM_GRP_DSP2, 0,
85895a9049bSRichard Fitzgerald madera_domain_clk_ev,
85995a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
86095a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("DSP3CLK", SND_SOC_NOPM,
86195a9049bSRichard Fitzgerald MADERA_DOM_GRP_DSP3, 0,
86295a9049bSRichard Fitzgerald madera_domain_clk_ev,
86395a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
86495a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("DSP4CLK", SND_SOC_NOPM,
86595a9049bSRichard Fitzgerald MADERA_DOM_GRP_DSP4, 0,
86695a9049bSRichard Fitzgerald madera_domain_clk_ev,
86795a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
86895a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("DSP5CLK", SND_SOC_NOPM,
86995a9049bSRichard Fitzgerald MADERA_DOM_GRP_DSP5, 0,
87095a9049bSRichard Fitzgerald madera_domain_clk_ev,
87195a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
87295a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("DSP6CLK", SND_SOC_NOPM,
87395a9049bSRichard Fitzgerald MADERA_DOM_GRP_DSP6, 0,
87495a9049bSRichard Fitzgerald madera_domain_clk_ev,
87595a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
87695a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("DSP7CLK", SND_SOC_NOPM,
87795a9049bSRichard Fitzgerald MADERA_DOM_GRP_DSP7, 0,
87895a9049bSRichard Fitzgerald madera_domain_clk_ev,
87995a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
88095a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("AIF1TXCLK", SND_SOC_NOPM,
88195a9049bSRichard Fitzgerald MADERA_DOM_GRP_AIF1, 0,
88295a9049bSRichard Fitzgerald madera_domain_clk_ev,
88395a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
88495a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("AIF2TXCLK", SND_SOC_NOPM,
88595a9049bSRichard Fitzgerald MADERA_DOM_GRP_AIF2, 0,
88695a9049bSRichard Fitzgerald madera_domain_clk_ev,
88795a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
88895a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("AIF3TXCLK", SND_SOC_NOPM,
88995a9049bSRichard Fitzgerald MADERA_DOM_GRP_AIF3, 0,
89095a9049bSRichard Fitzgerald madera_domain_clk_ev,
89195a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
89295a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("AIF4TXCLK", SND_SOC_NOPM,
89395a9049bSRichard Fitzgerald MADERA_DOM_GRP_AIF4, 0,
89495a9049bSRichard Fitzgerald madera_domain_clk_ev,
89595a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
89695a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("SLIMBUSCLK", SND_SOC_NOPM,
89795a9049bSRichard Fitzgerald MADERA_DOM_GRP_SLIMBUS, 0,
89895a9049bSRichard Fitzgerald madera_domain_clk_ev,
89995a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
90095a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("PWMCLK", SND_SOC_NOPM,
90195a9049bSRichard Fitzgerald MADERA_DOM_GRP_PWM, 0,
90295a9049bSRichard Fitzgerald madera_domain_clk_ev,
90395a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
90495a9049bSRichard Fitzgerald
90595a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("RXANC NG External Clock", SND_SOC_NOPM,
90695a9049bSRichard Fitzgerald MADERA_EXT_NG_SEL_SET_SHIFT, 0, madera_anc_ev,
90795a9049bSRichard Fitzgerald SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
90895a9049bSRichard Fitzgerald
90995a9049bSRichard Fitzgerald SND_SOC_DAPM_SUPPLY("RXANC NG Clock", SND_SOC_NOPM,
91095a9049bSRichard Fitzgerald MADERA_CLK_NG_ENA_SET_SHIFT, 0, madera_anc_ev,
91195a9049bSRichard Fitzgerald SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
91295a9049bSRichard Fitzgerald
91395a9049bSRichard Fitzgerald SND_SOC_DAPM_SIGGEN("TONE"),
91495a9049bSRichard Fitzgerald SND_SOC_DAPM_SIGGEN("NOISE"),
91595a9049bSRichard Fitzgerald
91695a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN1ALN"),
91795a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN1ALP"),
91895a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN1BN"),
91995a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN1BP"),
92095a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN1RN"),
92195a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN1RP"),
92295a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN2ALN"),
92395a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN2ALP"),
92495a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN2ARN"),
92595a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN2ARP"),
92695a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN2BLN"),
92795a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN2BLP"),
92895a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN2BRN"),
92995a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN2BRP"),
93095a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN3LN"),
93195a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN3LP"),
93295a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN3RN"),
93395a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("IN3RP"),
93495a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("DMICCLK4"),
93595a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("DMICDAT4"),
93695a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("DMICCLK5"),
93795a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("DMICDAT5"),
93895a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("DMICCLK6"),
93995a9049bSRichard Fitzgerald SND_SOC_DAPM_INPUT("DMICDAT6"),
94095a9049bSRichard Fitzgerald
94195a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("IN1L Analog Mux", SND_SOC_NOPM, 0, 0, &madera_inmux[0]),
94295a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("IN2L Analog Mux", SND_SOC_NOPM, 0, 0, &madera_inmux[2]),
94395a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("IN2R Analog Mux", SND_SOC_NOPM, 0, 0, &madera_inmux[3]),
94495a9049bSRichard Fitzgerald
94595a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("IN1L Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[0]),
94695a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("IN1R Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[0]),
94795a9049bSRichard Fitzgerald
94895a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("IN2L Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[1]),
94995a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("IN2R Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[1]),
95095a9049bSRichard Fitzgerald
95195a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("IN3L Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[2]),
95295a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("IN3R Mode", SND_SOC_NOPM, 0, 0, &madera_inmode[2]),
95395a9049bSRichard Fitzgerald
95495a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("DRC1 Signal Activity"),
95595a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("DRC2 Signal Activity"),
95695a9049bSRichard Fitzgerald
95795a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("DSP Trigger Out"),
95895a9049bSRichard Fitzgerald
95995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("PWM1 Driver", MADERA_PWM_DRIVE_1, MADERA_PWM1_ENA_SHIFT,
96095a9049bSRichard Fitzgerald 0, NULL, 0),
96195a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("PWM2 Driver", MADERA_PWM_DRIVE_1, MADERA_PWM2_ENA_SHIFT,
96295a9049bSRichard Fitzgerald 0, NULL, 0),
96395a9049bSRichard Fitzgerald
96495a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("RXANCL NG External", SND_SOC_NOPM, 0, 0, NULL, 0),
96595a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("RXANCR NG External", SND_SOC_NOPM, 0, 0, NULL, 0),
96695a9049bSRichard Fitzgerald
96795a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("RXANCL NG Internal", SND_SOC_NOPM, 0, 0, NULL, 0),
96895a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("RXANCR NG Internal", SND_SOC_NOPM, 0, 0, NULL, 0),
96995a9049bSRichard Fitzgerald
97095a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("RXANCL Left Input", SND_SOC_NOPM, 0, 0,
97195a9049bSRichard Fitzgerald &cs47l85_anc_input_mux[0]),
97295a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("RXANCL Right Input", SND_SOC_NOPM, 0, 0,
97395a9049bSRichard Fitzgerald &cs47l85_anc_input_mux[0]),
97495a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("RXANCL Channel", SND_SOC_NOPM, 0, 0,
97595a9049bSRichard Fitzgerald &cs47l85_anc_input_mux[1]),
97695a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("RXANCL NG Mux", SND_SOC_NOPM, 0, 0, &cs47l85_anc_ng_mux),
97795a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("RXANCR Left Input", SND_SOC_NOPM, 0, 0,
97895a9049bSRichard Fitzgerald &cs47l85_anc_input_mux[2]),
97995a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("RXANCR Right Input", SND_SOC_NOPM, 0, 0,
98095a9049bSRichard Fitzgerald &cs47l85_anc_input_mux[2]),
98195a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("RXANCR Channel", SND_SOC_NOPM, 0, 0,
98295a9049bSRichard Fitzgerald &cs47l85_anc_input_mux[3]),
98395a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("RXANCR NG Mux", SND_SOC_NOPM, 0, 0, &cs47l85_anc_ng_mux),
98495a9049bSRichard Fitzgerald
98595a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("RXANCL", SND_SOC_NOPM, MADERA_CLK_L_ENA_SET_SHIFT,
98695a9049bSRichard Fitzgerald 0, NULL, 0, madera_anc_ev,
98795a9049bSRichard Fitzgerald SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
98895a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("RXANCR", SND_SOC_NOPM, MADERA_CLK_R_ENA_SET_SHIFT,
98995a9049bSRichard Fitzgerald 0, NULL, 0, madera_anc_ev,
99095a9049bSRichard Fitzgerald SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
99195a9049bSRichard Fitzgerald
99295a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("HPOUT1L ANC Source", SND_SOC_NOPM, 0, 0,
99395a9049bSRichard Fitzgerald &cs47l85_output_anc_src[0]),
99495a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("HPOUT1R ANC Source", SND_SOC_NOPM, 0, 0,
99595a9049bSRichard Fitzgerald &cs47l85_output_anc_src[1]),
99695a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("HPOUT2L ANC Source", SND_SOC_NOPM, 0, 0,
99795a9049bSRichard Fitzgerald &cs47l85_output_anc_src[2]),
99895a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("HPOUT2R ANC Source", SND_SOC_NOPM, 0, 0,
99995a9049bSRichard Fitzgerald &cs47l85_output_anc_src[3]),
100095a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("HPOUT3L ANC Source", SND_SOC_NOPM, 0, 0,
100195a9049bSRichard Fitzgerald &cs47l85_output_anc_src[4]),
100295a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("HPOUT3R ANC Source", SND_SOC_NOPM, 0, 0,
100395a9049bSRichard Fitzgerald &cs47l85_output_anc_src[5]),
100495a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("SPKOUTL ANC Source", SND_SOC_NOPM, 0, 0,
100595a9049bSRichard Fitzgerald &cs47l85_output_anc_src[6]),
100695a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("SPKOUTR ANC Source", SND_SOC_NOPM, 0, 0,
100795a9049bSRichard Fitzgerald &cs47l85_output_anc_src[7]),
100895a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("SPKDAT1L ANC Source", SND_SOC_NOPM, 0, 0,
100995a9049bSRichard Fitzgerald &cs47l85_output_anc_src[8]),
101095a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("SPKDAT1R ANC Source", SND_SOC_NOPM, 0, 0,
101195a9049bSRichard Fitzgerald &cs47l85_output_anc_src[9]),
101295a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("SPKDAT2L ANC Source", SND_SOC_NOPM, 0, 0,
101395a9049bSRichard Fitzgerald &cs47l85_output_anc_src[10]),
101495a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("SPKDAT2R ANC Source", SND_SOC_NOPM, 0, 0,
101595a9049bSRichard Fitzgerald &cs47l85_output_anc_src[11]),
101695a9049bSRichard Fitzgerald
101795a9049bSRichard Fitzgerald SND_SOC_DAPM_AIF_OUT("AIF1TX1", NULL, 0,
101895a9049bSRichard Fitzgerald MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX1_ENA_SHIFT, 0),
10193570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 1,
102095a9049bSRichard Fitzgerald MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX2_ENA_SHIFT, 0),
10213570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF1TX3", NULL, 2,
102295a9049bSRichard Fitzgerald MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX3_ENA_SHIFT, 0),
10233570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF1TX4", NULL, 3,
102495a9049bSRichard Fitzgerald MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX4_ENA_SHIFT, 0),
10253570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF1TX5", NULL, 4,
102695a9049bSRichard Fitzgerald MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX5_ENA_SHIFT, 0),
10273570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF1TX6", NULL, 5,
102895a9049bSRichard Fitzgerald MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX6_ENA_SHIFT, 0),
10293570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF1TX7", NULL, 6,
103095a9049bSRichard Fitzgerald MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX7_ENA_SHIFT, 0),
10313570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF1TX8", NULL, 7,
103295a9049bSRichard Fitzgerald MADERA_AIF1_TX_ENABLES, MADERA_AIF1TX8_ENA_SHIFT, 0),
103395a9049bSRichard Fitzgerald
103495a9049bSRichard Fitzgerald SND_SOC_DAPM_AIF_OUT("AIF2TX1", NULL, 0,
103595a9049bSRichard Fitzgerald MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX1_ENA_SHIFT, 0),
10363570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF2TX2", NULL, 1,
103795a9049bSRichard Fitzgerald MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX2_ENA_SHIFT, 0),
10383570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF2TX3", NULL, 2,
103995a9049bSRichard Fitzgerald MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX3_ENA_SHIFT, 0),
10403570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF2TX4", NULL, 3,
104195a9049bSRichard Fitzgerald MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX4_ENA_SHIFT, 0),
10423570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF2TX5", NULL, 4,
104395a9049bSRichard Fitzgerald MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX5_ENA_SHIFT, 0),
10443570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF2TX6", NULL, 5,
104595a9049bSRichard Fitzgerald MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX6_ENA_SHIFT, 0),
10463570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF2TX7", NULL, 6,
104795a9049bSRichard Fitzgerald MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX7_ENA_SHIFT, 0),
10483570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF2TX8", NULL, 7,
104995a9049bSRichard Fitzgerald MADERA_AIF2_TX_ENABLES, MADERA_AIF2TX8_ENA_SHIFT, 0),
105095a9049bSRichard Fitzgerald
105195a9049bSRichard Fitzgerald SND_SOC_DAPM_AIF_OUT("SLIMTX1", NULL, 0,
105295a9049bSRichard Fitzgerald MADERA_SLIMBUS_TX_CHANNEL_ENABLE,
105395a9049bSRichard Fitzgerald MADERA_SLIMTX1_ENA_SHIFT, 0),
10543570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 1,
105595a9049bSRichard Fitzgerald MADERA_SLIMBUS_TX_CHANNEL_ENABLE,
105695a9049bSRichard Fitzgerald MADERA_SLIMTX2_ENA_SHIFT, 0),
10573570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 2,
105895a9049bSRichard Fitzgerald MADERA_SLIMBUS_TX_CHANNEL_ENABLE,
105995a9049bSRichard Fitzgerald MADERA_SLIMTX3_ENA_SHIFT, 0),
10603570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 3,
106195a9049bSRichard Fitzgerald MADERA_SLIMBUS_TX_CHANNEL_ENABLE,
106295a9049bSRichard Fitzgerald MADERA_SLIMTX4_ENA_SHIFT, 0),
10633570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 4,
106495a9049bSRichard Fitzgerald MADERA_SLIMBUS_TX_CHANNEL_ENABLE,
106595a9049bSRichard Fitzgerald MADERA_SLIMTX5_ENA_SHIFT, 0),
10663570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 5,
106795a9049bSRichard Fitzgerald MADERA_SLIMBUS_TX_CHANNEL_ENABLE,
106895a9049bSRichard Fitzgerald MADERA_SLIMTX6_ENA_SHIFT, 0),
10693570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("SLIMTX7", NULL, 6,
107095a9049bSRichard Fitzgerald MADERA_SLIMBUS_TX_CHANNEL_ENABLE,
107195a9049bSRichard Fitzgerald MADERA_SLIMTX7_ENA_SHIFT, 0),
10723570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("SLIMTX8", NULL, 7,
107395a9049bSRichard Fitzgerald MADERA_SLIMBUS_TX_CHANNEL_ENABLE,
107495a9049bSRichard Fitzgerald MADERA_SLIMTX8_ENA_SHIFT, 0),
107595a9049bSRichard Fitzgerald
107695a9049bSRichard Fitzgerald SND_SOC_DAPM_AIF_OUT("AIF3TX1", NULL, 0,
107795a9049bSRichard Fitzgerald MADERA_AIF3_TX_ENABLES, MADERA_AIF3TX1_ENA_SHIFT, 0),
10783570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF3TX2", NULL, 1,
107995a9049bSRichard Fitzgerald MADERA_AIF3_TX_ENABLES, MADERA_AIF3TX2_ENA_SHIFT, 0),
108095a9049bSRichard Fitzgerald
108195a9049bSRichard Fitzgerald SND_SOC_DAPM_AIF_OUT("AIF4TX1", NULL, 0,
108295a9049bSRichard Fitzgerald MADERA_AIF4_TX_ENABLES, MADERA_AIF4TX1_ENA_SHIFT, 0),
10833570922cSCharles Keepax SND_SOC_DAPM_AIF_OUT("AIF4TX2", NULL, 1,
108495a9049bSRichard Fitzgerald MADERA_AIF4_TX_ENABLES, MADERA_AIF4TX2_ENA_SHIFT, 0),
108595a9049bSRichard Fitzgerald
108695a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT1L", SND_SOC_NOPM,
108795a9049bSRichard Fitzgerald MADERA_OUT1L_ENA_SHIFT, 0, NULL, 0, cs47l85_hp_ev,
108895a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
108995a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
109095a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT1R", SND_SOC_NOPM,
109195a9049bSRichard Fitzgerald MADERA_OUT1R_ENA_SHIFT, 0, NULL, 0, cs47l85_hp_ev,
109295a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
109395a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
109495a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT2L", MADERA_OUTPUT_ENABLES_1,
109595a9049bSRichard Fitzgerald MADERA_OUT2L_ENA_SHIFT, 0, NULL, 0, madera_out_ev,
109695a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
109795a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
109895a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT2R", MADERA_OUTPUT_ENABLES_1,
109995a9049bSRichard Fitzgerald MADERA_OUT2R_ENA_SHIFT, 0, NULL, 0, madera_out_ev,
110095a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
110195a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
110295a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT3L", MADERA_OUTPUT_ENABLES_1,
110395a9049bSRichard Fitzgerald MADERA_OUT3L_ENA_SHIFT, 0, NULL, 0, madera_out_ev,
110495a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
110595a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
110695a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT3R", MADERA_OUTPUT_ENABLES_1,
110795a9049bSRichard Fitzgerald MADERA_OUT3R_ENA_SHIFT, 0, NULL, 0, madera_out_ev,
110895a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
110995a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
111095a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT4L", SND_SOC_NOPM,
111195a9049bSRichard Fitzgerald MADERA_OUT4L_ENA_SHIFT, 0, NULL, 0, madera_spk_ev,
111295a9049bSRichard Fitzgerald SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
111395a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT4R", SND_SOC_NOPM,
111495a9049bSRichard Fitzgerald MADERA_OUT4R_ENA_SHIFT, 0, NULL, 0, madera_spk_ev,
111595a9049bSRichard Fitzgerald SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
111695a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT5L", MADERA_OUTPUT_ENABLES_1,
111795a9049bSRichard Fitzgerald MADERA_OUT5L_ENA_SHIFT, 0, NULL, 0, madera_out_ev,
111895a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU),
111995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT5R", MADERA_OUTPUT_ENABLES_1,
112095a9049bSRichard Fitzgerald MADERA_OUT5R_ENA_SHIFT, 0, NULL, 0, madera_out_ev,
112195a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU),
112295a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT6L", MADERA_OUTPUT_ENABLES_1,
112395a9049bSRichard Fitzgerald MADERA_OUT6L_ENA_SHIFT, 0, NULL, 0, madera_out_ev,
112495a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU),
112595a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("OUT6R", MADERA_OUTPUT_ENABLES_1,
112695a9049bSRichard Fitzgerald MADERA_OUT6R_ENA_SHIFT, 0, NULL, 0, madera_out_ev,
112795a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU),
112895a9049bSRichard Fitzgerald
112995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("SPD1TX1", MADERA_SPD1_TX_CONTROL,
113095a9049bSRichard Fitzgerald MADERA_SPD1_VAL1_SHIFT, 0, NULL, 0),
113195a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("SPD1TX2", MADERA_SPD1_TX_CONTROL,
113295a9049bSRichard Fitzgerald MADERA_SPD1_VAL2_SHIFT, 0, NULL, 0),
113395a9049bSRichard Fitzgerald SND_SOC_DAPM_OUT_DRV("SPD1", MADERA_SPD1_TX_CONTROL,
113495a9049bSRichard Fitzgerald MADERA_SPD1_ENA_SHIFT, 0, NULL, 0),
113595a9049bSRichard Fitzgerald
113695a9049bSRichard Fitzgerald /*
113795a9049bSRichard Fitzgerald * Input mux widgets arranged in order of sources in MADERA_MIXER_INPUT_ROUTES
113895a9049bSRichard Fitzgerald * to take advantage of cache lookup in DAPM
113995a9049bSRichard Fitzgerald */
114095a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("Noise Generator", MADERA_COMFORT_NOISE_GENERATOR,
114195a9049bSRichard Fitzgerald MADERA_NOISE_GEN_ENA_SHIFT, 0, NULL, 0),
114295a9049bSRichard Fitzgerald
114395a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("Tone Generator 1", MADERA_TONE_GENERATOR_1,
114495a9049bSRichard Fitzgerald MADERA_TONE1_ENA_SHIFT, 0, NULL, 0),
114595a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("Tone Generator 2", MADERA_TONE_GENERATOR_1,
114695a9049bSRichard Fitzgerald MADERA_TONE2_ENA_SHIFT, 0, NULL, 0),
114795a9049bSRichard Fitzgerald
114895a9049bSRichard Fitzgerald SND_SOC_DAPM_SIGGEN("HAPTICS"),
114995a9049bSRichard Fitzgerald
115095a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("AEC1 Loopback", MADERA_DAC_AEC_CONTROL_1,
115195a9049bSRichard Fitzgerald MADERA_AEC1_LOOPBACK_ENA_SHIFT, 0,
115295a9049bSRichard Fitzgerald &cs47l85_aec_loopback_mux[0]),
115395a9049bSRichard Fitzgerald SND_SOC_DAPM_MUX("AEC2 Loopback", MADERA_DAC_AEC_CONTROL_2,
115495a9049bSRichard Fitzgerald MADERA_AEC2_LOOPBACK_ENA_SHIFT, 0,
115595a9049bSRichard Fitzgerald &cs47l85_aec_loopback_mux[1]),
115695a9049bSRichard Fitzgerald
115795a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN1L", MADERA_INPUT_ENABLES, MADERA_IN1L_ENA_SHIFT,
115895a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
115995a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
116095a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
116195a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN1R", MADERA_INPUT_ENABLES, MADERA_IN1R_ENA_SHIFT,
116295a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
116395a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
116495a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
116595a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN2L", MADERA_INPUT_ENABLES, MADERA_IN2L_ENA_SHIFT,
116695a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
116795a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
116895a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
116995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN2R", MADERA_INPUT_ENABLES, MADERA_IN2R_ENA_SHIFT,
117095a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
117195a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
117295a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
117395a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN3L", MADERA_INPUT_ENABLES, MADERA_IN3L_ENA_SHIFT,
117495a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
117595a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
117695a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
117795a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN3R", MADERA_INPUT_ENABLES, MADERA_IN3R_ENA_SHIFT,
117895a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
117995a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
118095a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
118195a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN4L", MADERA_INPUT_ENABLES, MADERA_IN4L_ENA_SHIFT,
118295a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
118395a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
118495a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
118595a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN4R", MADERA_INPUT_ENABLES, MADERA_IN4R_ENA_SHIFT,
118695a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
118795a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
118895a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
118995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN5L", MADERA_INPUT_ENABLES, MADERA_IN5L_ENA_SHIFT,
119095a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
119195a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
119295a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
119395a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN5R", MADERA_INPUT_ENABLES, MADERA_IN5R_ENA_SHIFT,
119495a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
119595a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
119695a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
119795a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN6L", MADERA_INPUT_ENABLES, MADERA_IN6L_ENA_SHIFT,
119895a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
119995a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
120095a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
120195a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA_E("IN6R", MADERA_INPUT_ENABLES, MADERA_IN6R_ENA_SHIFT,
120295a9049bSRichard Fitzgerald 0, NULL, 0, madera_in_ev,
120395a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMD |
120495a9049bSRichard Fitzgerald SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU),
120595a9049bSRichard Fitzgerald
120695a9049bSRichard Fitzgerald SND_SOC_DAPM_AIF_IN("AIF1RX1", NULL, 0,
120795a9049bSRichard Fitzgerald MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX1_ENA_SHIFT, 0),
12083570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF1RX2", NULL, 1,
120995a9049bSRichard Fitzgerald MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX2_ENA_SHIFT, 0),
12103570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF1RX3", NULL, 2,
121195a9049bSRichard Fitzgerald MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX3_ENA_SHIFT, 0),
12123570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF1RX4", NULL, 3,
121395a9049bSRichard Fitzgerald MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX4_ENA_SHIFT, 0),
12143570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF1RX5", NULL, 4,
121595a9049bSRichard Fitzgerald MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX5_ENA_SHIFT, 0),
12163570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF1RX6", NULL, 5,
121795a9049bSRichard Fitzgerald MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX6_ENA_SHIFT, 0),
12183570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF1RX7", NULL, 6,
121995a9049bSRichard Fitzgerald MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX7_ENA_SHIFT, 0),
12203570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF1RX8", NULL, 7,
122195a9049bSRichard Fitzgerald MADERA_AIF1_RX_ENABLES, MADERA_AIF1RX8_ENA_SHIFT, 0),
122295a9049bSRichard Fitzgerald
122395a9049bSRichard Fitzgerald SND_SOC_DAPM_AIF_IN("AIF2RX1", NULL, 0,
122495a9049bSRichard Fitzgerald MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX1_ENA_SHIFT, 0),
12253570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF2RX2", NULL, 1,
122695a9049bSRichard Fitzgerald MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX2_ENA_SHIFT, 0),
12273570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF2RX3", NULL, 2,
122895a9049bSRichard Fitzgerald MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX3_ENA_SHIFT, 0),
12293570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF2RX4", NULL, 3,
123095a9049bSRichard Fitzgerald MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX4_ENA_SHIFT, 0),
12313570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF2RX5", NULL, 4,
123295a9049bSRichard Fitzgerald MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX5_ENA_SHIFT, 0),
12333570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF2RX6", NULL, 5,
123495a9049bSRichard Fitzgerald MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX6_ENA_SHIFT, 0),
12353570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF2RX7", NULL, 6,
123695a9049bSRichard Fitzgerald MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX7_ENA_SHIFT, 0),
12373570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF2RX8", NULL, 7,
123895a9049bSRichard Fitzgerald MADERA_AIF2_RX_ENABLES, MADERA_AIF2RX8_ENA_SHIFT, 0),
123995a9049bSRichard Fitzgerald
124095a9049bSRichard Fitzgerald SND_SOC_DAPM_AIF_IN("AIF3RX1", NULL, 0,
124195a9049bSRichard Fitzgerald MADERA_AIF3_RX_ENABLES, MADERA_AIF3RX1_ENA_SHIFT, 0),
12423570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 1,
124395a9049bSRichard Fitzgerald MADERA_AIF3_RX_ENABLES, MADERA_AIF3RX2_ENA_SHIFT, 0),
124495a9049bSRichard Fitzgerald
124595a9049bSRichard Fitzgerald SND_SOC_DAPM_AIF_IN("AIF4RX1", NULL, 0,
124695a9049bSRichard Fitzgerald MADERA_AIF4_RX_ENABLES, MADERA_AIF4RX1_ENA_SHIFT, 0),
12473570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("AIF4RX2", NULL, 1,
124895a9049bSRichard Fitzgerald MADERA_AIF4_RX_ENABLES, MADERA_AIF4RX2_ENA_SHIFT, 0),
124995a9049bSRichard Fitzgerald
125095a9049bSRichard Fitzgerald SND_SOC_DAPM_AIF_IN("SLIMRX1", NULL, 0,
125195a9049bSRichard Fitzgerald MADERA_SLIMBUS_RX_CHANNEL_ENABLE,
125295a9049bSRichard Fitzgerald MADERA_SLIMRX1_ENA_SHIFT, 0),
12533570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 1,
125495a9049bSRichard Fitzgerald MADERA_SLIMBUS_RX_CHANNEL_ENABLE,
125595a9049bSRichard Fitzgerald MADERA_SLIMRX2_ENA_SHIFT, 0),
12563570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 2,
125795a9049bSRichard Fitzgerald MADERA_SLIMBUS_RX_CHANNEL_ENABLE,
125895a9049bSRichard Fitzgerald MADERA_SLIMRX3_ENA_SHIFT, 0),
12593570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 3,
126095a9049bSRichard Fitzgerald MADERA_SLIMBUS_RX_CHANNEL_ENABLE,
126195a9049bSRichard Fitzgerald MADERA_SLIMRX4_ENA_SHIFT, 0),
12623570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("SLIMRX5", NULL, 4,
126395a9049bSRichard Fitzgerald MADERA_SLIMBUS_RX_CHANNEL_ENABLE,
126495a9049bSRichard Fitzgerald MADERA_SLIMRX5_ENA_SHIFT, 0),
12653570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("SLIMRX6", NULL, 5,
126695a9049bSRichard Fitzgerald MADERA_SLIMBUS_RX_CHANNEL_ENABLE,
126795a9049bSRichard Fitzgerald MADERA_SLIMRX6_ENA_SHIFT, 0),
12683570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("SLIMRX7", NULL, 6,
126995a9049bSRichard Fitzgerald MADERA_SLIMBUS_RX_CHANNEL_ENABLE,
127095a9049bSRichard Fitzgerald MADERA_SLIMRX7_ENA_SHIFT, 0),
12713570922cSCharles Keepax SND_SOC_DAPM_AIF_IN("SLIMRX8", NULL, 7,
127295a9049bSRichard Fitzgerald MADERA_SLIMBUS_RX_CHANNEL_ENABLE,
127395a9049bSRichard Fitzgerald MADERA_SLIMRX8_ENA_SHIFT, 0),
127495a9049bSRichard Fitzgerald
127595a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("EQ1", MADERA_EQ1_1, MADERA_EQ1_ENA_SHIFT, 0, NULL, 0),
127695a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("EQ2", MADERA_EQ2_1, MADERA_EQ2_ENA_SHIFT, 0, NULL, 0),
127795a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("EQ3", MADERA_EQ3_1, MADERA_EQ3_ENA_SHIFT, 0, NULL, 0),
127895a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("EQ4", MADERA_EQ4_1, MADERA_EQ4_ENA_SHIFT, 0, NULL, 0),
127995a9049bSRichard Fitzgerald
128095a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("DRC1L", MADERA_DRC1_CTRL1, MADERA_DRC1L_ENA_SHIFT, 0,
128195a9049bSRichard Fitzgerald NULL, 0),
128295a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("DRC1R", MADERA_DRC1_CTRL1, MADERA_DRC1R_ENA_SHIFT, 0,
128395a9049bSRichard Fitzgerald NULL, 0),
128495a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("DRC2L", MADERA_DRC2_CTRL1, MADERA_DRC2L_ENA_SHIFT, 0,
128595a9049bSRichard Fitzgerald NULL, 0),
128695a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("DRC2R", MADERA_DRC2_CTRL1, MADERA_DRC2R_ENA_SHIFT, 0,
128795a9049bSRichard Fitzgerald NULL, 0),
128895a9049bSRichard Fitzgerald
128995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("LHPF1", MADERA_HPLPF1_1, MADERA_LHPF1_ENA_SHIFT, 0,
129095a9049bSRichard Fitzgerald NULL, 0),
129195a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("LHPF2", MADERA_HPLPF2_1, MADERA_LHPF2_ENA_SHIFT, 0,
129295a9049bSRichard Fitzgerald NULL, 0),
129395a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("LHPF3", MADERA_HPLPF3_1, MADERA_LHPF3_ENA_SHIFT, 0,
129495a9049bSRichard Fitzgerald NULL, 0),
129595a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("LHPF4", MADERA_HPLPF4_1, MADERA_LHPF4_ENA_SHIFT, 0,
129695a9049bSRichard Fitzgerald NULL, 0),
129795a9049bSRichard Fitzgerald
129895a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ASRC1IN1L", MADERA_ASRC1_ENABLE, MADERA_ASRC1_IN1L_ENA_SHIFT,
129995a9049bSRichard Fitzgerald 0, NULL, 0),
130095a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ASRC1IN1R", MADERA_ASRC1_ENABLE, MADERA_ASRC1_IN1R_ENA_SHIFT,
130195a9049bSRichard Fitzgerald 0, NULL, 0),
130295a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ASRC1IN2L", MADERA_ASRC1_ENABLE, MADERA_ASRC1_IN2L_ENA_SHIFT,
130395a9049bSRichard Fitzgerald 0, NULL, 0),
130495a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ASRC1IN2R", MADERA_ASRC1_ENABLE, MADERA_ASRC1_IN2R_ENA_SHIFT,
130595a9049bSRichard Fitzgerald 0, NULL, 0),
130695a9049bSRichard Fitzgerald
130795a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ASRC2IN1L", MADERA_ASRC2_ENABLE, MADERA_ASRC2_IN1L_ENA_SHIFT,
130895a9049bSRichard Fitzgerald 0, NULL, 0),
130995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ASRC2IN1R", MADERA_ASRC2_ENABLE, MADERA_ASRC2_IN1R_ENA_SHIFT,
131095a9049bSRichard Fitzgerald 0, NULL, 0),
131195a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ASRC2IN2L", MADERA_ASRC2_ENABLE, MADERA_ASRC2_IN2L_ENA_SHIFT,
131295a9049bSRichard Fitzgerald 0, NULL, 0),
131395a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ASRC2IN2R", MADERA_ASRC2_ENABLE, MADERA_ASRC2_IN2R_ENA_SHIFT,
131495a9049bSRichard Fitzgerald 0, NULL, 0),
131595a9049bSRichard Fitzgerald
131695a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC1DEC1", MADERA_ISRC_1_CTRL_3,
131795a9049bSRichard Fitzgerald MADERA_ISRC1_DEC1_ENA_SHIFT, 0, NULL, 0),
131895a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC1DEC2", MADERA_ISRC_1_CTRL_3,
131995a9049bSRichard Fitzgerald MADERA_ISRC1_DEC2_ENA_SHIFT, 0, NULL, 0),
132095a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC1DEC3", MADERA_ISRC_1_CTRL_3,
132195a9049bSRichard Fitzgerald MADERA_ISRC1_DEC3_ENA_SHIFT, 0, NULL, 0),
132295a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC1DEC4", MADERA_ISRC_1_CTRL_3,
132395a9049bSRichard Fitzgerald MADERA_ISRC1_DEC4_ENA_SHIFT, 0, NULL, 0),
132495a9049bSRichard Fitzgerald
132595a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC1INT1", MADERA_ISRC_1_CTRL_3,
132695a9049bSRichard Fitzgerald MADERA_ISRC1_INT1_ENA_SHIFT, 0, NULL, 0),
132795a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC1INT2", MADERA_ISRC_1_CTRL_3,
132895a9049bSRichard Fitzgerald MADERA_ISRC1_INT2_ENA_SHIFT, 0, NULL, 0),
132995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC1INT3", MADERA_ISRC_1_CTRL_3,
133095a9049bSRichard Fitzgerald MADERA_ISRC1_INT3_ENA_SHIFT, 0, NULL, 0),
133195a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC1INT4", MADERA_ISRC_1_CTRL_3,
133295a9049bSRichard Fitzgerald MADERA_ISRC1_INT4_ENA_SHIFT, 0, NULL, 0),
133395a9049bSRichard Fitzgerald
133495a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC2DEC1", MADERA_ISRC_2_CTRL_3,
133595a9049bSRichard Fitzgerald MADERA_ISRC2_DEC1_ENA_SHIFT, 0, NULL, 0),
133695a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC2DEC2", MADERA_ISRC_2_CTRL_3,
133795a9049bSRichard Fitzgerald MADERA_ISRC2_DEC2_ENA_SHIFT, 0, NULL, 0),
133895a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC2DEC3", MADERA_ISRC_2_CTRL_3,
133995a9049bSRichard Fitzgerald MADERA_ISRC2_DEC3_ENA_SHIFT, 0, NULL, 0),
134095a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC2DEC4", MADERA_ISRC_2_CTRL_3,
134195a9049bSRichard Fitzgerald MADERA_ISRC2_DEC4_ENA_SHIFT, 0, NULL, 0),
134295a9049bSRichard Fitzgerald
134395a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC2INT1", MADERA_ISRC_2_CTRL_3,
134495a9049bSRichard Fitzgerald MADERA_ISRC2_INT1_ENA_SHIFT, 0, NULL, 0),
134595a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC2INT2", MADERA_ISRC_2_CTRL_3,
134695a9049bSRichard Fitzgerald MADERA_ISRC2_INT2_ENA_SHIFT, 0, NULL, 0),
134795a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC2INT3", MADERA_ISRC_2_CTRL_3,
134895a9049bSRichard Fitzgerald MADERA_ISRC2_INT3_ENA_SHIFT, 0, NULL, 0),
134995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC2INT4", MADERA_ISRC_2_CTRL_3,
135095a9049bSRichard Fitzgerald MADERA_ISRC2_INT4_ENA_SHIFT, 0, NULL, 0),
135195a9049bSRichard Fitzgerald
135295a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC3DEC1", MADERA_ISRC_3_CTRL_3,
135395a9049bSRichard Fitzgerald MADERA_ISRC3_DEC1_ENA_SHIFT, 0, NULL, 0),
135495a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC3DEC2", MADERA_ISRC_3_CTRL_3,
135595a9049bSRichard Fitzgerald MADERA_ISRC3_DEC2_ENA_SHIFT, 0, NULL, 0),
135695a9049bSRichard Fitzgerald
135795a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC3INT1", MADERA_ISRC_3_CTRL_3,
135895a9049bSRichard Fitzgerald MADERA_ISRC3_INT1_ENA_SHIFT, 0, NULL, 0),
135995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC3INT2", MADERA_ISRC_3_CTRL_3,
136095a9049bSRichard Fitzgerald MADERA_ISRC3_INT2_ENA_SHIFT, 0, NULL, 0),
136195a9049bSRichard Fitzgerald
136295a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC4DEC1", MADERA_ISRC_4_CTRL_3,
136395a9049bSRichard Fitzgerald MADERA_ISRC4_DEC1_ENA_SHIFT, 0, NULL, 0),
136495a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC4DEC2", MADERA_ISRC_4_CTRL_3,
136595a9049bSRichard Fitzgerald MADERA_ISRC4_DEC2_ENA_SHIFT, 0, NULL, 0),
136695a9049bSRichard Fitzgerald
136795a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC4INT1", MADERA_ISRC_4_CTRL_3,
136895a9049bSRichard Fitzgerald MADERA_ISRC4_INT1_ENA_SHIFT, 0, NULL, 0),
136995a9049bSRichard Fitzgerald SND_SOC_DAPM_PGA("ISRC4INT2", MADERA_ISRC_4_CTRL_3,
137095a9049bSRichard Fitzgerald MADERA_ISRC4_INT2_ENA_SHIFT, 0, NULL, 0),
137195a9049bSRichard Fitzgerald
137295a9049bSRichard Fitzgerald WM_ADSP2("DSP1", 0, cs47l85_adsp_power_ev),
137395a9049bSRichard Fitzgerald WM_ADSP2("DSP2", 1, cs47l85_adsp_power_ev),
137495a9049bSRichard Fitzgerald WM_ADSP2("DSP3", 2, cs47l85_adsp_power_ev),
137595a9049bSRichard Fitzgerald WM_ADSP2("DSP4", 3, cs47l85_adsp_power_ev),
137695a9049bSRichard Fitzgerald WM_ADSP2("DSP5", 4, cs47l85_adsp_power_ev),
137795a9049bSRichard Fitzgerald WM_ADSP2("DSP6", 5, cs47l85_adsp_power_ev),
137895a9049bSRichard Fitzgerald WM_ADSP2("DSP7", 6, cs47l85_adsp_power_ev),
137995a9049bSRichard Fitzgerald
138095a9049bSRichard Fitzgerald /* End of ordered input mux widgets */
138195a9049bSRichard Fitzgerald
138295a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(EQ1, "EQ1"),
138395a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(EQ2, "EQ2"),
138495a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(EQ3, "EQ3"),
138595a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(EQ4, "EQ4"),
138695a9049bSRichard Fitzgerald
138795a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(DRC1L, "DRC1L"),
138895a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(DRC1R, "DRC1R"),
138995a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(DRC2L, "DRC2L"),
139095a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(DRC2R, "DRC2R"),
139195a9049bSRichard Fitzgerald
139295a9049bSRichard Fitzgerald SND_SOC_DAPM_SWITCH("DRC1 Activity Output", SND_SOC_NOPM, 0, 0,
139395a9049bSRichard Fitzgerald &madera_drc_activity_output_mux[0]),
139495a9049bSRichard Fitzgerald SND_SOC_DAPM_SWITCH("DRC2 Activity Output", SND_SOC_NOPM, 0, 0,
139595a9049bSRichard Fitzgerald &madera_drc_activity_output_mux[1]),
139695a9049bSRichard Fitzgerald
139795a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(LHPF1, "LHPF1"),
139895a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(LHPF2, "LHPF2"),
139995a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(LHPF3, "LHPF3"),
140095a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(LHPF4, "LHPF4"),
140195a9049bSRichard Fitzgerald
140295a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(PWM1, "PWM1"),
140395a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(PWM2, "PWM2"),
140495a9049bSRichard Fitzgerald
140595a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(OUT1L, "HPOUT1L"),
140695a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(OUT1R, "HPOUT1R"),
140795a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(OUT2L, "HPOUT2L"),
140895a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(OUT2R, "HPOUT2R"),
140995a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(OUT3L, "HPOUT3L"),
141095a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(OUT3R, "HPOUT3R"),
141195a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SPKOUTL, "SPKOUTL"),
141295a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SPKOUTR, "SPKOUTR"),
141395a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SPKDAT1L, "SPKDAT1L"),
141495a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SPKDAT1R, "SPKDAT1R"),
141595a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SPKDAT2L, "SPKDAT2L"),
141695a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SPKDAT2R, "SPKDAT2R"),
141795a9049bSRichard Fitzgerald
141895a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF1TX1, "AIF1TX1"),
141995a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF1TX2, "AIF1TX2"),
142095a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF1TX3, "AIF1TX3"),
142195a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF1TX4, "AIF1TX4"),
142295a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF1TX5, "AIF1TX5"),
142395a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF1TX6, "AIF1TX6"),
142495a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF1TX7, "AIF1TX7"),
142595a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF1TX8, "AIF1TX8"),
142695a9049bSRichard Fitzgerald
142795a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF2TX1, "AIF2TX1"),
142895a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF2TX2, "AIF2TX2"),
142995a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF2TX3, "AIF2TX3"),
143095a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF2TX4, "AIF2TX4"),
143195a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF2TX5, "AIF2TX5"),
143295a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF2TX6, "AIF2TX6"),
143395a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF2TX7, "AIF2TX7"),
143495a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF2TX8, "AIF2TX8"),
143595a9049bSRichard Fitzgerald
143695a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF3TX1, "AIF3TX1"),
143795a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF3TX2, "AIF3TX2"),
143895a9049bSRichard Fitzgerald
143995a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF4TX1, "AIF4TX1"),
144095a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(AIF4TX2, "AIF4TX2"),
144195a9049bSRichard Fitzgerald
144295a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SLIMTX1, "SLIMTX1"),
144395a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SLIMTX2, "SLIMTX2"),
144495a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SLIMTX3, "SLIMTX3"),
144595a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SLIMTX4, "SLIMTX4"),
144695a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SLIMTX5, "SLIMTX5"),
144795a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SLIMTX6, "SLIMTX6"),
144895a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SLIMTX7, "SLIMTX7"),
144995a9049bSRichard Fitzgerald MADERA_MIXER_WIDGETS(SLIMTX8, "SLIMTX8"),
145095a9049bSRichard Fitzgerald
145195a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(SPD1TX1, "SPDIF1TX1"),
145295a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(SPD1TX2, "SPDIF1TX2"),
145395a9049bSRichard Fitzgerald
145495a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ASRC1IN1L, "ASRC1IN1L"),
145595a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ASRC1IN1R, "ASRC1IN1R"),
145695a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ASRC1IN2L, "ASRC1IN2L"),
145795a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ASRC1IN2R, "ASRC1IN2R"),
145895a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ASRC2IN1L, "ASRC2IN1L"),
145995a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ASRC2IN1R, "ASRC2IN1R"),
146095a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ASRC2IN2L, "ASRC2IN2L"),
146195a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ASRC2IN2R, "ASRC2IN2R"),
146295a9049bSRichard Fitzgerald
146395a9049bSRichard Fitzgerald MADERA_DSP_WIDGETS(DSP1, "DSP1"),
146495a9049bSRichard Fitzgerald MADERA_DSP_WIDGETS(DSP2, "DSP2"),
146595a9049bSRichard Fitzgerald MADERA_DSP_WIDGETS(DSP3, "DSP3"),
146695a9049bSRichard Fitzgerald MADERA_DSP_WIDGETS(DSP4, "DSP4"),
146795a9049bSRichard Fitzgerald MADERA_DSP_WIDGETS(DSP5, "DSP5"),
146895a9049bSRichard Fitzgerald MADERA_DSP_WIDGETS(DSP6, "DSP6"),
146995a9049bSRichard Fitzgerald MADERA_DSP_WIDGETS(DSP7, "DSP7"),
147095a9049bSRichard Fitzgerald
147195a9049bSRichard Fitzgerald SND_SOC_DAPM_SWITCH("DSP1 Trigger Output", SND_SOC_NOPM, 0, 0,
147295a9049bSRichard Fitzgerald &madera_dsp_trigger_output_mux[0]),
147395a9049bSRichard Fitzgerald SND_SOC_DAPM_SWITCH("DSP2 Trigger Output", SND_SOC_NOPM, 0, 0,
147495a9049bSRichard Fitzgerald &madera_dsp_trigger_output_mux[1]),
147595a9049bSRichard Fitzgerald SND_SOC_DAPM_SWITCH("DSP3 Trigger Output", SND_SOC_NOPM, 0, 0,
147695a9049bSRichard Fitzgerald &madera_dsp_trigger_output_mux[2]),
147795a9049bSRichard Fitzgerald SND_SOC_DAPM_SWITCH("DSP4 Trigger Output", SND_SOC_NOPM, 0, 0,
147895a9049bSRichard Fitzgerald &madera_dsp_trigger_output_mux[3]),
147995a9049bSRichard Fitzgerald SND_SOC_DAPM_SWITCH("DSP5 Trigger Output", SND_SOC_NOPM, 0, 0,
148095a9049bSRichard Fitzgerald &madera_dsp_trigger_output_mux[4]),
148195a9049bSRichard Fitzgerald SND_SOC_DAPM_SWITCH("DSP6 Trigger Output", SND_SOC_NOPM, 0, 0,
148295a9049bSRichard Fitzgerald &madera_dsp_trigger_output_mux[5]),
148395a9049bSRichard Fitzgerald SND_SOC_DAPM_SWITCH("DSP7 Trigger Output", SND_SOC_NOPM, 0, 0,
148495a9049bSRichard Fitzgerald &madera_dsp_trigger_output_mux[6]),
148595a9049bSRichard Fitzgerald
148695a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC1DEC1, "ISRC1DEC1"),
148795a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC1DEC2, "ISRC1DEC2"),
148895a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC1DEC3, "ISRC1DEC3"),
148995a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC1DEC4, "ISRC1DEC4"),
149095a9049bSRichard Fitzgerald
149195a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC1INT1, "ISRC1INT1"),
149295a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC1INT2, "ISRC1INT2"),
149395a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC1INT3, "ISRC1INT3"),
149495a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC1INT4, "ISRC1INT4"),
149595a9049bSRichard Fitzgerald
149695a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC2DEC1, "ISRC2DEC1"),
149795a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC2DEC2, "ISRC2DEC2"),
149895a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC2DEC3, "ISRC2DEC3"),
149995a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC2DEC4, "ISRC2DEC4"),
150095a9049bSRichard Fitzgerald
150195a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC2INT1, "ISRC2INT1"),
150295a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC2INT2, "ISRC2INT2"),
150395a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC2INT3, "ISRC2INT3"),
150495a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC2INT4, "ISRC2INT4"),
150595a9049bSRichard Fitzgerald
150695a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC3DEC1, "ISRC3DEC1"),
150795a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC3DEC2, "ISRC3DEC2"),
150895a9049bSRichard Fitzgerald
150995a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC3INT1, "ISRC3INT1"),
151095a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC3INT2, "ISRC3INT2"),
151195a9049bSRichard Fitzgerald
151295a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC4DEC1, "ISRC4DEC1"),
151395a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC4DEC2, "ISRC4DEC2"),
151495a9049bSRichard Fitzgerald
151595a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC4INT1, "ISRC4INT1"),
151695a9049bSRichard Fitzgerald MADERA_MUX_WIDGETS(ISRC4INT2, "ISRC4INT2"),
151795a9049bSRichard Fitzgerald
151895a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("HPOUT1L"),
151995a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("HPOUT1R"),
152095a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("HPOUT2L"),
152195a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("HPOUT2R"),
152295a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("HPOUT3L"),
152395a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("HPOUT3R"),
152495a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("SPKOUTLN"),
152595a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("SPKOUTLP"),
152695a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("SPKOUTRN"),
152795a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("SPKOUTRP"),
152895a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("SPKDAT1L"),
152995a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("SPKDAT1R"),
153095a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("SPKDAT2L"),
153195a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("SPKDAT2R"),
153295a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("SPDIF1"),
153395a9049bSRichard Fitzgerald
153495a9049bSRichard Fitzgerald SND_SOC_DAPM_OUTPUT("MICSUPP"),
153595a9049bSRichard Fitzgerald };
153695a9049bSRichard Fitzgerald
153795a9049bSRichard Fitzgerald #define MADERA_MIXER_INPUT_ROUTES(name) \
153895a9049bSRichard Fitzgerald { name, "Noise Generator", "Noise Generator" }, \
153995a9049bSRichard Fitzgerald { name, "Tone Generator 1", "Tone Generator 1" }, \
154095a9049bSRichard Fitzgerald { name, "Tone Generator 2", "Tone Generator 2" }, \
154195a9049bSRichard Fitzgerald { name, "Haptics", "HAPTICS" }, \
154295a9049bSRichard Fitzgerald { name, "AEC1", "AEC1 Loopback" }, \
154395a9049bSRichard Fitzgerald { name, "AEC2", "AEC2 Loopback" }, \
154495a9049bSRichard Fitzgerald { name, "IN1L", "IN1L" }, \
154595a9049bSRichard Fitzgerald { name, "IN1R", "IN1R" }, \
154695a9049bSRichard Fitzgerald { name, "IN2L", "IN2L" }, \
154795a9049bSRichard Fitzgerald { name, "IN2R", "IN2R" }, \
154895a9049bSRichard Fitzgerald { name, "IN3L", "IN3L" }, \
154995a9049bSRichard Fitzgerald { name, "IN3R", "IN3R" }, \
155095a9049bSRichard Fitzgerald { name, "IN4L", "IN4L" }, \
155195a9049bSRichard Fitzgerald { name, "IN4R", "IN4R" }, \
155295a9049bSRichard Fitzgerald { name, "IN5L", "IN5L" }, \
155395a9049bSRichard Fitzgerald { name, "IN5R", "IN5R" }, \
155495a9049bSRichard Fitzgerald { name, "IN6L", "IN6L" }, \
155595a9049bSRichard Fitzgerald { name, "IN6R", "IN6R" }, \
155695a9049bSRichard Fitzgerald { name, "AIF1RX1", "AIF1RX1" }, \
155795a9049bSRichard Fitzgerald { name, "AIF1RX2", "AIF1RX2" }, \
155895a9049bSRichard Fitzgerald { name, "AIF1RX3", "AIF1RX3" }, \
155995a9049bSRichard Fitzgerald { name, "AIF1RX4", "AIF1RX4" }, \
156095a9049bSRichard Fitzgerald { name, "AIF1RX5", "AIF1RX5" }, \
156195a9049bSRichard Fitzgerald { name, "AIF1RX6", "AIF1RX6" }, \
156295a9049bSRichard Fitzgerald { name, "AIF1RX7", "AIF1RX7" }, \
156395a9049bSRichard Fitzgerald { name, "AIF1RX8", "AIF1RX8" }, \
156495a9049bSRichard Fitzgerald { name, "AIF2RX1", "AIF2RX1" }, \
156595a9049bSRichard Fitzgerald { name, "AIF2RX2", "AIF2RX2" }, \
156695a9049bSRichard Fitzgerald { name, "AIF2RX3", "AIF2RX3" }, \
156795a9049bSRichard Fitzgerald { name, "AIF2RX4", "AIF2RX4" }, \
156895a9049bSRichard Fitzgerald { name, "AIF2RX5", "AIF2RX5" }, \
156995a9049bSRichard Fitzgerald { name, "AIF2RX6", "AIF2RX6" }, \
157095a9049bSRichard Fitzgerald { name, "AIF2RX7", "AIF2RX7" }, \
157195a9049bSRichard Fitzgerald { name, "AIF2RX8", "AIF2RX8" }, \
157295a9049bSRichard Fitzgerald { name, "AIF3RX1", "AIF3RX1" }, \
157395a9049bSRichard Fitzgerald { name, "AIF3RX2", "AIF3RX2" }, \
157495a9049bSRichard Fitzgerald { name, "AIF4RX1", "AIF4RX1" }, \
157595a9049bSRichard Fitzgerald { name, "AIF4RX2", "AIF4RX2" }, \
157695a9049bSRichard Fitzgerald { name, "SLIMRX1", "SLIMRX1" }, \
157795a9049bSRichard Fitzgerald { name, "SLIMRX2", "SLIMRX2" }, \
157895a9049bSRichard Fitzgerald { name, "SLIMRX3", "SLIMRX3" }, \
157995a9049bSRichard Fitzgerald { name, "SLIMRX4", "SLIMRX4" }, \
158095a9049bSRichard Fitzgerald { name, "SLIMRX5", "SLIMRX5" }, \
158195a9049bSRichard Fitzgerald { name, "SLIMRX6", "SLIMRX6" }, \
158295a9049bSRichard Fitzgerald { name, "SLIMRX7", "SLIMRX7" }, \
158395a9049bSRichard Fitzgerald { name, "SLIMRX8", "SLIMRX8" }, \
158495a9049bSRichard Fitzgerald { name, "EQ1", "EQ1" }, \
158595a9049bSRichard Fitzgerald { name, "EQ2", "EQ2" }, \
158695a9049bSRichard Fitzgerald { name, "EQ3", "EQ3" }, \
158795a9049bSRichard Fitzgerald { name, "EQ4", "EQ4" }, \
158895a9049bSRichard Fitzgerald { name, "DRC1L", "DRC1L" }, \
158995a9049bSRichard Fitzgerald { name, "DRC1R", "DRC1R" }, \
159095a9049bSRichard Fitzgerald { name, "DRC2L", "DRC2L" }, \
159195a9049bSRichard Fitzgerald { name, "DRC2R", "DRC2R" }, \
159295a9049bSRichard Fitzgerald { name, "LHPF1", "LHPF1" }, \
159395a9049bSRichard Fitzgerald { name, "LHPF2", "LHPF2" }, \
159495a9049bSRichard Fitzgerald { name, "LHPF3", "LHPF3" }, \
159595a9049bSRichard Fitzgerald { name, "LHPF4", "LHPF4" }, \
159695a9049bSRichard Fitzgerald { name, "ASRC1IN1L", "ASRC1IN1L" }, \
159795a9049bSRichard Fitzgerald { name, "ASRC1IN1R", "ASRC1IN1R" }, \
159895a9049bSRichard Fitzgerald { name, "ASRC1IN2L", "ASRC1IN2L" }, \
159995a9049bSRichard Fitzgerald { name, "ASRC1IN2R", "ASRC1IN2R" }, \
160095a9049bSRichard Fitzgerald { name, "ASRC2IN1L", "ASRC2IN1L" }, \
160195a9049bSRichard Fitzgerald { name, "ASRC2IN1R", "ASRC2IN1R" }, \
160295a9049bSRichard Fitzgerald { name, "ASRC2IN2L", "ASRC2IN2L" }, \
160395a9049bSRichard Fitzgerald { name, "ASRC2IN2R", "ASRC2IN2R" }, \
160495a9049bSRichard Fitzgerald { name, "ISRC1DEC1", "ISRC1DEC1" }, \
160595a9049bSRichard Fitzgerald { name, "ISRC1DEC2", "ISRC1DEC2" }, \
160695a9049bSRichard Fitzgerald { name, "ISRC1DEC3", "ISRC1DEC3" }, \
160795a9049bSRichard Fitzgerald { name, "ISRC1DEC4", "ISRC1DEC4" }, \
160895a9049bSRichard Fitzgerald { name, "ISRC1INT1", "ISRC1INT1" }, \
160995a9049bSRichard Fitzgerald { name, "ISRC1INT2", "ISRC1INT2" }, \
161095a9049bSRichard Fitzgerald { name, "ISRC1INT3", "ISRC1INT3" }, \
161195a9049bSRichard Fitzgerald { name, "ISRC1INT4", "ISRC1INT4" }, \
161295a9049bSRichard Fitzgerald { name, "ISRC2DEC1", "ISRC2DEC1" }, \
161395a9049bSRichard Fitzgerald { name, "ISRC2DEC2", "ISRC2DEC2" }, \
161495a9049bSRichard Fitzgerald { name, "ISRC2DEC3", "ISRC2DEC3" }, \
161595a9049bSRichard Fitzgerald { name, "ISRC2DEC4", "ISRC2DEC4" }, \
161695a9049bSRichard Fitzgerald { name, "ISRC2INT1", "ISRC2INT1" }, \
161795a9049bSRichard Fitzgerald { name, "ISRC2INT2", "ISRC2INT2" }, \
161895a9049bSRichard Fitzgerald { name, "ISRC2INT3", "ISRC2INT3" }, \
161995a9049bSRichard Fitzgerald { name, "ISRC2INT4", "ISRC2INT4" }, \
162095a9049bSRichard Fitzgerald { name, "ISRC3DEC1", "ISRC3DEC1" }, \
162195a9049bSRichard Fitzgerald { name, "ISRC3DEC2", "ISRC3DEC2" }, \
162295a9049bSRichard Fitzgerald { name, "ISRC3INT1", "ISRC3INT1" }, \
162395a9049bSRichard Fitzgerald { name, "ISRC3INT2", "ISRC3INT2" }, \
162495a9049bSRichard Fitzgerald { name, "ISRC4DEC1", "ISRC4DEC1" }, \
162595a9049bSRichard Fitzgerald { name, "ISRC4DEC2", "ISRC4DEC2" }, \
162695a9049bSRichard Fitzgerald { name, "ISRC4INT1", "ISRC4INT1" }, \
162795a9049bSRichard Fitzgerald { name, "ISRC4INT2", "ISRC4INT2" }, \
162895a9049bSRichard Fitzgerald { name, "DSP1.1", "DSP1" }, \
162995a9049bSRichard Fitzgerald { name, "DSP1.2", "DSP1" }, \
163095a9049bSRichard Fitzgerald { name, "DSP1.3", "DSP1" }, \
163195a9049bSRichard Fitzgerald { name, "DSP1.4", "DSP1" }, \
163295a9049bSRichard Fitzgerald { name, "DSP1.5", "DSP1" }, \
163395a9049bSRichard Fitzgerald { name, "DSP1.6", "DSP1" }, \
163495a9049bSRichard Fitzgerald { name, "DSP2.1", "DSP2" }, \
163595a9049bSRichard Fitzgerald { name, "DSP2.2", "DSP2" }, \
163695a9049bSRichard Fitzgerald { name, "DSP2.3", "DSP2" }, \
163795a9049bSRichard Fitzgerald { name, "DSP2.4", "DSP2" }, \
163895a9049bSRichard Fitzgerald { name, "DSP2.5", "DSP2" }, \
163995a9049bSRichard Fitzgerald { name, "DSP2.6", "DSP2" }, \
164095a9049bSRichard Fitzgerald { name, "DSP3.1", "DSP3" }, \
164195a9049bSRichard Fitzgerald { name, "DSP3.2", "DSP3" }, \
164295a9049bSRichard Fitzgerald { name, "DSP3.3", "DSP3" }, \
164395a9049bSRichard Fitzgerald { name, "DSP3.4", "DSP3" }, \
164495a9049bSRichard Fitzgerald { name, "DSP3.5", "DSP3" }, \
164595a9049bSRichard Fitzgerald { name, "DSP3.6", "DSP3" }, \
164695a9049bSRichard Fitzgerald { name, "DSP4.1", "DSP4" }, \
164795a9049bSRichard Fitzgerald { name, "DSP4.2", "DSP4" }, \
164895a9049bSRichard Fitzgerald { name, "DSP4.3", "DSP4" }, \
164995a9049bSRichard Fitzgerald { name, "DSP4.4", "DSP4" }, \
165095a9049bSRichard Fitzgerald { name, "DSP4.5", "DSP4" }, \
165195a9049bSRichard Fitzgerald { name, "DSP4.6", "DSP4" }, \
165295a9049bSRichard Fitzgerald { name, "DSP5.1", "DSP5" }, \
165395a9049bSRichard Fitzgerald { name, "DSP5.2", "DSP5" }, \
165495a9049bSRichard Fitzgerald { name, "DSP5.3", "DSP5" }, \
165595a9049bSRichard Fitzgerald { name, "DSP5.4", "DSP5" }, \
165695a9049bSRichard Fitzgerald { name, "DSP5.5", "DSP5" }, \
165795a9049bSRichard Fitzgerald { name, "DSP5.6", "DSP5" }, \
165895a9049bSRichard Fitzgerald { name, "DSP6.1", "DSP6" }, \
165995a9049bSRichard Fitzgerald { name, "DSP6.2", "DSP6" }, \
166095a9049bSRichard Fitzgerald { name, "DSP6.3", "DSP6" }, \
166195a9049bSRichard Fitzgerald { name, "DSP6.4", "DSP6" }, \
166295a9049bSRichard Fitzgerald { name, "DSP6.5", "DSP6" }, \
166395a9049bSRichard Fitzgerald { name, "DSP6.6", "DSP6" }, \
166495a9049bSRichard Fitzgerald { name, "DSP7.1", "DSP7" }, \
166595a9049bSRichard Fitzgerald { name, "DSP7.2", "DSP7" }, \
166695a9049bSRichard Fitzgerald { name, "DSP7.3", "DSP7" }, \
166795a9049bSRichard Fitzgerald { name, "DSP7.4", "DSP7" }, \
166895a9049bSRichard Fitzgerald { name, "DSP7.5", "DSP7" }, \
166995a9049bSRichard Fitzgerald { name, "DSP7.6", "DSP7" }
167095a9049bSRichard Fitzgerald
167195a9049bSRichard Fitzgerald static const struct snd_soc_dapm_route cs47l85_dapm_routes[] = {
167295a9049bSRichard Fitzgerald /* Internal clock domains */
167395a9049bSRichard Fitzgerald { "EQ1", NULL, "FXCLK" },
167495a9049bSRichard Fitzgerald { "EQ2", NULL, "FXCLK" },
167595a9049bSRichard Fitzgerald { "EQ3", NULL, "FXCLK" },
167695a9049bSRichard Fitzgerald { "EQ4", NULL, "FXCLK" },
167795a9049bSRichard Fitzgerald { "DRC1L", NULL, "FXCLK" },
167895a9049bSRichard Fitzgerald { "DRC1R", NULL, "FXCLK" },
167995a9049bSRichard Fitzgerald { "DRC2L", NULL, "FXCLK" },
168095a9049bSRichard Fitzgerald { "DRC2R", NULL, "FXCLK" },
168195a9049bSRichard Fitzgerald { "LHPF1", NULL, "FXCLK" },
168295a9049bSRichard Fitzgerald { "LHPF2", NULL, "FXCLK" },
168395a9049bSRichard Fitzgerald { "LHPF3", NULL, "FXCLK" },
168495a9049bSRichard Fitzgerald { "LHPF4", NULL, "FXCLK" },
168595a9049bSRichard Fitzgerald { "PWM1 Mixer", NULL, "PWMCLK" },
168695a9049bSRichard Fitzgerald { "PWM2 Mixer", NULL, "PWMCLK" },
168795a9049bSRichard Fitzgerald { "OUT1L", NULL, "OUTCLK" },
168895a9049bSRichard Fitzgerald { "OUT1R", NULL, "OUTCLK" },
168995a9049bSRichard Fitzgerald { "OUT2L", NULL, "OUTCLK" },
169095a9049bSRichard Fitzgerald { "OUT2R", NULL, "OUTCLK" },
169195a9049bSRichard Fitzgerald { "OUT3L", NULL, "OUTCLK" },
169295a9049bSRichard Fitzgerald { "OUT3R", NULL, "OUTCLK" },
169395a9049bSRichard Fitzgerald { "OUT4L", NULL, "OUTCLK" },
169495a9049bSRichard Fitzgerald { "OUT4R", NULL, "OUTCLK" },
169595a9049bSRichard Fitzgerald { "OUT5L", NULL, "OUTCLK" },
169695a9049bSRichard Fitzgerald { "OUT5R", NULL, "OUTCLK" },
169795a9049bSRichard Fitzgerald { "OUT6L", NULL, "OUTCLK" },
169895a9049bSRichard Fitzgerald { "OUT6R", NULL, "OUTCLK" },
169995a9049bSRichard Fitzgerald { "AIF1TX1", NULL, "AIF1TXCLK" },
170095a9049bSRichard Fitzgerald { "AIF1TX2", NULL, "AIF1TXCLK" },
170195a9049bSRichard Fitzgerald { "AIF1TX3", NULL, "AIF1TXCLK" },
170295a9049bSRichard Fitzgerald { "AIF1TX4", NULL, "AIF1TXCLK" },
170395a9049bSRichard Fitzgerald { "AIF1TX5", NULL, "AIF1TXCLK" },
170495a9049bSRichard Fitzgerald { "AIF1TX6", NULL, "AIF1TXCLK" },
170595a9049bSRichard Fitzgerald { "AIF1TX7", NULL, "AIF1TXCLK" },
170695a9049bSRichard Fitzgerald { "AIF1TX8", NULL, "AIF1TXCLK" },
170795a9049bSRichard Fitzgerald { "AIF2TX1", NULL, "AIF2TXCLK" },
170895a9049bSRichard Fitzgerald { "AIF2TX2", NULL, "AIF2TXCLK" },
170995a9049bSRichard Fitzgerald { "AIF2TX3", NULL, "AIF2TXCLK" },
171095a9049bSRichard Fitzgerald { "AIF2TX4", NULL, "AIF2TXCLK" },
171195a9049bSRichard Fitzgerald { "AIF2TX5", NULL, "AIF2TXCLK" },
171295a9049bSRichard Fitzgerald { "AIF2TX6", NULL, "AIF2TXCLK" },
171395a9049bSRichard Fitzgerald { "AIF2TX7", NULL, "AIF2TXCLK" },
171495a9049bSRichard Fitzgerald { "AIF2TX8", NULL, "AIF2TXCLK" },
171595a9049bSRichard Fitzgerald { "AIF3TX1", NULL, "AIF3TXCLK" },
171695a9049bSRichard Fitzgerald { "AIF3TX2", NULL, "AIF3TXCLK" },
171795a9049bSRichard Fitzgerald { "AIF4TX1", NULL, "AIF4TXCLK" },
171895a9049bSRichard Fitzgerald { "AIF4TX2", NULL, "AIF4TXCLK" },
171995a9049bSRichard Fitzgerald { "SLIMTX1", NULL, "SLIMBUSCLK" },
172095a9049bSRichard Fitzgerald { "SLIMTX2", NULL, "SLIMBUSCLK" },
172195a9049bSRichard Fitzgerald { "SLIMTX3", NULL, "SLIMBUSCLK" },
172295a9049bSRichard Fitzgerald { "SLIMTX4", NULL, "SLIMBUSCLK" },
172395a9049bSRichard Fitzgerald { "SLIMTX5", NULL, "SLIMBUSCLK" },
172495a9049bSRichard Fitzgerald { "SLIMTX6", NULL, "SLIMBUSCLK" },
172595a9049bSRichard Fitzgerald { "SLIMTX7", NULL, "SLIMBUSCLK" },
172695a9049bSRichard Fitzgerald { "SLIMTX8", NULL, "SLIMBUSCLK" },
172795a9049bSRichard Fitzgerald { "SPD1TX1", NULL, "SPDCLK" },
172895a9049bSRichard Fitzgerald { "SPD1TX2", NULL, "SPDCLK" },
172995a9049bSRichard Fitzgerald { "DSP1", NULL, "DSP1CLK" },
173095a9049bSRichard Fitzgerald { "DSP2", NULL, "DSP2CLK" },
173195a9049bSRichard Fitzgerald { "DSP3", NULL, "DSP3CLK" },
173295a9049bSRichard Fitzgerald { "DSP4", NULL, "DSP4CLK" },
173395a9049bSRichard Fitzgerald { "DSP5", NULL, "DSP5CLK" },
173495a9049bSRichard Fitzgerald { "DSP6", NULL, "DSP6CLK" },
173595a9049bSRichard Fitzgerald { "DSP7", NULL, "DSP7CLK" },
173695a9049bSRichard Fitzgerald { "ISRC1DEC1", NULL, "ISRC1CLK" },
173795a9049bSRichard Fitzgerald { "ISRC1DEC2", NULL, "ISRC1CLK" },
173895a9049bSRichard Fitzgerald { "ISRC1DEC3", NULL, "ISRC1CLK" },
173995a9049bSRichard Fitzgerald { "ISRC1DEC4", NULL, "ISRC1CLK" },
174095a9049bSRichard Fitzgerald { "ISRC1INT1", NULL, "ISRC1CLK" },
174195a9049bSRichard Fitzgerald { "ISRC1INT2", NULL, "ISRC1CLK" },
174295a9049bSRichard Fitzgerald { "ISRC1INT3", NULL, "ISRC1CLK" },
174395a9049bSRichard Fitzgerald { "ISRC1INT4", NULL, "ISRC1CLK" },
174495a9049bSRichard Fitzgerald { "ISRC2DEC1", NULL, "ISRC2CLK" },
174595a9049bSRichard Fitzgerald { "ISRC2DEC2", NULL, "ISRC2CLK" },
174695a9049bSRichard Fitzgerald { "ISRC2DEC3", NULL, "ISRC2CLK" },
174795a9049bSRichard Fitzgerald { "ISRC2DEC4", NULL, "ISRC2CLK" },
174895a9049bSRichard Fitzgerald { "ISRC2INT1", NULL, "ISRC2CLK" },
174995a9049bSRichard Fitzgerald { "ISRC2INT2", NULL, "ISRC2CLK" },
175095a9049bSRichard Fitzgerald { "ISRC2INT3", NULL, "ISRC2CLK" },
175195a9049bSRichard Fitzgerald { "ISRC2INT4", NULL, "ISRC2CLK" },
175295a9049bSRichard Fitzgerald { "ISRC3DEC1", NULL, "ISRC3CLK" },
175395a9049bSRichard Fitzgerald { "ISRC3DEC2", NULL, "ISRC3CLK" },
175495a9049bSRichard Fitzgerald { "ISRC3INT1", NULL, "ISRC3CLK" },
175595a9049bSRichard Fitzgerald { "ISRC3INT2", NULL, "ISRC3CLK" },
175695a9049bSRichard Fitzgerald { "ISRC4DEC1", NULL, "ISRC4CLK" },
175795a9049bSRichard Fitzgerald { "ISRC4DEC2", NULL, "ISRC4CLK" },
175895a9049bSRichard Fitzgerald { "ISRC4INT1", NULL, "ISRC4CLK" },
175995a9049bSRichard Fitzgerald { "ISRC4INT2", NULL, "ISRC4CLK" },
176095a9049bSRichard Fitzgerald { "ASRC1IN1L", NULL, "ASRC1CLK" },
176195a9049bSRichard Fitzgerald { "ASRC1IN1R", NULL, "ASRC1CLK" },
176295a9049bSRichard Fitzgerald { "ASRC1IN2L", NULL, "ASRC1CLK" },
176395a9049bSRichard Fitzgerald { "ASRC1IN2R", NULL, "ASRC1CLK" },
176495a9049bSRichard Fitzgerald { "ASRC2IN1L", NULL, "ASRC2CLK" },
176595a9049bSRichard Fitzgerald { "ASRC2IN1R", NULL, "ASRC2CLK" },
176695a9049bSRichard Fitzgerald { "ASRC2IN2L", NULL, "ASRC2CLK" },
176795a9049bSRichard Fitzgerald { "ASRC2IN2R", NULL, "ASRC2CLK" },
176895a9049bSRichard Fitzgerald
176995a9049bSRichard Fitzgerald { "AIF2 Capture", NULL, "DBVDD2" },
177095a9049bSRichard Fitzgerald { "AIF2 Playback", NULL, "DBVDD2" },
177195a9049bSRichard Fitzgerald
177295a9049bSRichard Fitzgerald { "AIF3 Capture", NULL, "DBVDD3" },
177395a9049bSRichard Fitzgerald { "AIF3 Playback", NULL, "DBVDD3" },
177495a9049bSRichard Fitzgerald
177595a9049bSRichard Fitzgerald { "AIF4 Capture", NULL, "DBVDD3" },
177695a9049bSRichard Fitzgerald { "AIF4 Playback", NULL, "DBVDD3" },
177795a9049bSRichard Fitzgerald
177895a9049bSRichard Fitzgerald { "OUT1L", NULL, "CPVDD1" },
177995a9049bSRichard Fitzgerald { "OUT1L", NULL, "CPVDD2" },
178095a9049bSRichard Fitzgerald { "OUT1R", NULL, "CPVDD1" },
178195a9049bSRichard Fitzgerald { "OUT1R", NULL, "CPVDD2" },
178295a9049bSRichard Fitzgerald { "OUT2L", NULL, "CPVDD1" },
178395a9049bSRichard Fitzgerald { "OUT2L", NULL, "CPVDD2" },
178495a9049bSRichard Fitzgerald { "OUT2R", NULL, "CPVDD1" },
178595a9049bSRichard Fitzgerald { "OUT2R", NULL, "CPVDD2" },
178695a9049bSRichard Fitzgerald { "OUT3L", NULL, "CPVDD1" },
178795a9049bSRichard Fitzgerald { "OUT3L", NULL, "CPVDD2" },
178895a9049bSRichard Fitzgerald { "OUT3R", NULL, "CPVDD1" },
178995a9049bSRichard Fitzgerald { "OUT3R", NULL, "CPVDD2" },
179095a9049bSRichard Fitzgerald
179195a9049bSRichard Fitzgerald { "OUT4L", NULL, "SPKVDDL" },
179295a9049bSRichard Fitzgerald { "OUT4R", NULL, "SPKVDDR" },
179395a9049bSRichard Fitzgerald
179495a9049bSRichard Fitzgerald { "OUT1L", NULL, "SYSCLK" },
179595a9049bSRichard Fitzgerald { "OUT1R", NULL, "SYSCLK" },
179695a9049bSRichard Fitzgerald { "OUT2L", NULL, "SYSCLK" },
179795a9049bSRichard Fitzgerald { "OUT2R", NULL, "SYSCLK" },
179895a9049bSRichard Fitzgerald { "OUT3L", NULL, "SYSCLK" },
179995a9049bSRichard Fitzgerald { "OUT3R", NULL, "SYSCLK" },
180095a9049bSRichard Fitzgerald { "OUT4L", NULL, "SYSCLK" },
180195a9049bSRichard Fitzgerald { "OUT4R", NULL, "SYSCLK" },
180295a9049bSRichard Fitzgerald { "OUT5L", NULL, "SYSCLK" },
180395a9049bSRichard Fitzgerald { "OUT5R", NULL, "SYSCLK" },
180495a9049bSRichard Fitzgerald { "OUT6L", NULL, "SYSCLK" },
180595a9049bSRichard Fitzgerald { "OUT6R", NULL, "SYSCLK" },
180695a9049bSRichard Fitzgerald
180795a9049bSRichard Fitzgerald { "SPD1", NULL, "SYSCLK" },
180895a9049bSRichard Fitzgerald { "SPD1", NULL, "SPD1TX1" },
180995a9049bSRichard Fitzgerald { "SPD1", NULL, "SPD1TX2" },
181095a9049bSRichard Fitzgerald
181195a9049bSRichard Fitzgerald { "IN1L", NULL, "SYSCLK" },
181295a9049bSRichard Fitzgerald { "IN1R", NULL, "SYSCLK" },
181395a9049bSRichard Fitzgerald { "IN2L", NULL, "SYSCLK" },
181495a9049bSRichard Fitzgerald { "IN2R", NULL, "SYSCLK" },
181595a9049bSRichard Fitzgerald { "IN3L", NULL, "SYSCLK" },
181695a9049bSRichard Fitzgerald { "IN3R", NULL, "SYSCLK" },
181795a9049bSRichard Fitzgerald { "IN4L", NULL, "SYSCLK" },
181895a9049bSRichard Fitzgerald { "IN4R", NULL, "SYSCLK" },
181995a9049bSRichard Fitzgerald { "IN5L", NULL, "SYSCLK" },
182095a9049bSRichard Fitzgerald { "IN5R", NULL, "SYSCLK" },
182195a9049bSRichard Fitzgerald { "IN6L", NULL, "SYSCLK" },
182295a9049bSRichard Fitzgerald { "IN6R", NULL, "SYSCLK" },
182395a9049bSRichard Fitzgerald
182495a9049bSRichard Fitzgerald { "IN4L", NULL, "DBVDD4" },
182595a9049bSRichard Fitzgerald { "IN4R", NULL, "DBVDD4" },
182695a9049bSRichard Fitzgerald { "IN5L", NULL, "DBVDD4" },
182795a9049bSRichard Fitzgerald { "IN5R", NULL, "DBVDD4" },
182895a9049bSRichard Fitzgerald { "IN6L", NULL, "DBVDD4" },
182995a9049bSRichard Fitzgerald { "IN6R", NULL, "DBVDD4" },
183095a9049bSRichard Fitzgerald
183195a9049bSRichard Fitzgerald { "ASRC1IN1L", NULL, "SYSCLK" },
183295a9049bSRichard Fitzgerald { "ASRC1IN1R", NULL, "SYSCLK" },
183395a9049bSRichard Fitzgerald { "ASRC1IN2L", NULL, "SYSCLK" },
183495a9049bSRichard Fitzgerald { "ASRC1IN2R", NULL, "SYSCLK" },
183595a9049bSRichard Fitzgerald { "ASRC2IN1L", NULL, "SYSCLK" },
183695a9049bSRichard Fitzgerald { "ASRC2IN1R", NULL, "SYSCLK" },
183795a9049bSRichard Fitzgerald { "ASRC2IN2L", NULL, "SYSCLK" },
183895a9049bSRichard Fitzgerald { "ASRC2IN2R", NULL, "SYSCLK" },
183995a9049bSRichard Fitzgerald
184095a9049bSRichard Fitzgerald { "ASRC1IN1L", NULL, "ASYNCCLK" },
184195a9049bSRichard Fitzgerald { "ASRC1IN1R", NULL, "ASYNCCLK" },
184295a9049bSRichard Fitzgerald { "ASRC1IN2L", NULL, "ASYNCCLK" },
184395a9049bSRichard Fitzgerald { "ASRC1IN2R", NULL, "ASYNCCLK" },
184495a9049bSRichard Fitzgerald { "ASRC2IN1L", NULL, "ASYNCCLK" },
184595a9049bSRichard Fitzgerald { "ASRC2IN1R", NULL, "ASYNCCLK" },
184695a9049bSRichard Fitzgerald { "ASRC2IN2L", NULL, "ASYNCCLK" },
184795a9049bSRichard Fitzgerald { "ASRC2IN2R", NULL, "ASYNCCLK" },
184895a9049bSRichard Fitzgerald
184995a9049bSRichard Fitzgerald { "MICBIAS1", NULL, "MICVDD" },
185095a9049bSRichard Fitzgerald { "MICBIAS2", NULL, "MICVDD" },
185195a9049bSRichard Fitzgerald { "MICBIAS3", NULL, "MICVDD" },
185295a9049bSRichard Fitzgerald { "MICBIAS4", NULL, "MICVDD" },
185395a9049bSRichard Fitzgerald
185495a9049bSRichard Fitzgerald { "Noise Generator", NULL, "SYSCLK" },
185595a9049bSRichard Fitzgerald { "Tone Generator 1", NULL, "SYSCLK" },
185695a9049bSRichard Fitzgerald { "Tone Generator 2", NULL, "SYSCLK" },
185795a9049bSRichard Fitzgerald
185895a9049bSRichard Fitzgerald { "Noise Generator", NULL, "NOISE" },
185995a9049bSRichard Fitzgerald { "Tone Generator 1", NULL, "TONE" },
186095a9049bSRichard Fitzgerald { "Tone Generator 2", NULL, "TONE" },
186195a9049bSRichard Fitzgerald
186295a9049bSRichard Fitzgerald { "AIF1 Capture", NULL, "AIF1TX1" },
186395a9049bSRichard Fitzgerald { "AIF1 Capture", NULL, "AIF1TX2" },
186495a9049bSRichard Fitzgerald { "AIF1 Capture", NULL, "AIF1TX3" },
186595a9049bSRichard Fitzgerald { "AIF1 Capture", NULL, "AIF1TX4" },
186695a9049bSRichard Fitzgerald { "AIF1 Capture", NULL, "AIF1TX5" },
186795a9049bSRichard Fitzgerald { "AIF1 Capture", NULL, "AIF1TX6" },
186895a9049bSRichard Fitzgerald { "AIF1 Capture", NULL, "AIF1TX7" },
186995a9049bSRichard Fitzgerald { "AIF1 Capture", NULL, "AIF1TX8" },
187095a9049bSRichard Fitzgerald
187195a9049bSRichard Fitzgerald { "AIF1RX1", NULL, "AIF1 Playback" },
187295a9049bSRichard Fitzgerald { "AIF1RX2", NULL, "AIF1 Playback" },
187395a9049bSRichard Fitzgerald { "AIF1RX3", NULL, "AIF1 Playback" },
187495a9049bSRichard Fitzgerald { "AIF1RX4", NULL, "AIF1 Playback" },
187595a9049bSRichard Fitzgerald { "AIF1RX5", NULL, "AIF1 Playback" },
187695a9049bSRichard Fitzgerald { "AIF1RX6", NULL, "AIF1 Playback" },
187795a9049bSRichard Fitzgerald { "AIF1RX7", NULL, "AIF1 Playback" },
187895a9049bSRichard Fitzgerald { "AIF1RX8", NULL, "AIF1 Playback" },
187995a9049bSRichard Fitzgerald
188095a9049bSRichard Fitzgerald { "AIF2 Capture", NULL, "AIF2TX1" },
188195a9049bSRichard Fitzgerald { "AIF2 Capture", NULL, "AIF2TX2" },
188295a9049bSRichard Fitzgerald { "AIF2 Capture", NULL, "AIF2TX3" },
188395a9049bSRichard Fitzgerald { "AIF2 Capture", NULL, "AIF2TX4" },
188495a9049bSRichard Fitzgerald { "AIF2 Capture", NULL, "AIF2TX5" },
188595a9049bSRichard Fitzgerald { "AIF2 Capture", NULL, "AIF2TX6" },
188695a9049bSRichard Fitzgerald { "AIF2 Capture", NULL, "AIF2TX7" },
188795a9049bSRichard Fitzgerald { "AIF2 Capture", NULL, "AIF2TX8" },
188895a9049bSRichard Fitzgerald
188995a9049bSRichard Fitzgerald { "AIF2RX1", NULL, "AIF2 Playback" },
189095a9049bSRichard Fitzgerald { "AIF2RX2", NULL, "AIF2 Playback" },
189195a9049bSRichard Fitzgerald { "AIF2RX3", NULL, "AIF2 Playback" },
189295a9049bSRichard Fitzgerald { "AIF2RX4", NULL, "AIF2 Playback" },
189395a9049bSRichard Fitzgerald { "AIF2RX5", NULL, "AIF2 Playback" },
189495a9049bSRichard Fitzgerald { "AIF2RX6", NULL, "AIF2 Playback" },
189595a9049bSRichard Fitzgerald { "AIF2RX7", NULL, "AIF2 Playback" },
189695a9049bSRichard Fitzgerald { "AIF2RX8", NULL, "AIF2 Playback" },
189795a9049bSRichard Fitzgerald
189895a9049bSRichard Fitzgerald { "AIF3 Capture", NULL, "AIF3TX1" },
189995a9049bSRichard Fitzgerald { "AIF3 Capture", NULL, "AIF3TX2" },
190095a9049bSRichard Fitzgerald
190195a9049bSRichard Fitzgerald { "AIF3RX1", NULL, "AIF3 Playback" },
190295a9049bSRichard Fitzgerald { "AIF3RX2", NULL, "AIF3 Playback" },
190395a9049bSRichard Fitzgerald
190495a9049bSRichard Fitzgerald { "AIF4 Capture", NULL, "AIF4TX1" },
190595a9049bSRichard Fitzgerald { "AIF4 Capture", NULL, "AIF4TX2" },
190695a9049bSRichard Fitzgerald
190795a9049bSRichard Fitzgerald { "AIF4RX1", NULL, "AIF4 Playback" },
190895a9049bSRichard Fitzgerald { "AIF4RX2", NULL, "AIF4 Playback" },
190995a9049bSRichard Fitzgerald
191095a9049bSRichard Fitzgerald { "Slim1 Capture", NULL, "SLIMTX1" },
191195a9049bSRichard Fitzgerald { "Slim1 Capture", NULL, "SLIMTX2" },
191295a9049bSRichard Fitzgerald { "Slim1 Capture", NULL, "SLIMTX3" },
191395a9049bSRichard Fitzgerald { "Slim1 Capture", NULL, "SLIMTX4" },
191495a9049bSRichard Fitzgerald
191595a9049bSRichard Fitzgerald { "SLIMRX1", NULL, "Slim1 Playback" },
191695a9049bSRichard Fitzgerald { "SLIMRX2", NULL, "Slim1 Playback" },
191795a9049bSRichard Fitzgerald { "SLIMRX3", NULL, "Slim1 Playback" },
191895a9049bSRichard Fitzgerald { "SLIMRX4", NULL, "Slim1 Playback" },
191995a9049bSRichard Fitzgerald
192095a9049bSRichard Fitzgerald { "Slim2 Capture", NULL, "SLIMTX5" },
192195a9049bSRichard Fitzgerald { "Slim2 Capture", NULL, "SLIMTX6" },
192295a9049bSRichard Fitzgerald
192395a9049bSRichard Fitzgerald { "SLIMRX5", NULL, "Slim2 Playback" },
192495a9049bSRichard Fitzgerald { "SLIMRX6", NULL, "Slim2 Playback" },
192595a9049bSRichard Fitzgerald
192695a9049bSRichard Fitzgerald { "Slim3 Capture", NULL, "SLIMTX7" },
192795a9049bSRichard Fitzgerald { "Slim3 Capture", NULL, "SLIMTX8" },
192895a9049bSRichard Fitzgerald
192995a9049bSRichard Fitzgerald { "SLIMRX7", NULL, "Slim3 Playback" },
193095a9049bSRichard Fitzgerald { "SLIMRX8", NULL, "Slim3 Playback" },
193195a9049bSRichard Fitzgerald
193295a9049bSRichard Fitzgerald { "AIF1 Playback", NULL, "SYSCLK" },
193395a9049bSRichard Fitzgerald { "AIF2 Playback", NULL, "SYSCLK" },
193495a9049bSRichard Fitzgerald { "AIF3 Playback", NULL, "SYSCLK" },
193595a9049bSRichard Fitzgerald { "AIF4 Playback", NULL, "SYSCLK" },
193695a9049bSRichard Fitzgerald { "Slim1 Playback", NULL, "SYSCLK" },
193795a9049bSRichard Fitzgerald { "Slim2 Playback", NULL, "SYSCLK" },
193895a9049bSRichard Fitzgerald { "Slim3 Playback", NULL, "SYSCLK" },
193995a9049bSRichard Fitzgerald
194095a9049bSRichard Fitzgerald { "AIF1 Capture", NULL, "SYSCLK" },
194195a9049bSRichard Fitzgerald { "AIF2 Capture", NULL, "SYSCLK" },
194295a9049bSRichard Fitzgerald { "AIF3 Capture", NULL, "SYSCLK" },
194395a9049bSRichard Fitzgerald { "AIF4 Capture", NULL, "SYSCLK" },
194495a9049bSRichard Fitzgerald { "Slim1 Capture", NULL, "SYSCLK" },
194595a9049bSRichard Fitzgerald { "Slim2 Capture", NULL, "SYSCLK" },
194695a9049bSRichard Fitzgerald { "Slim3 Capture", NULL, "SYSCLK" },
194795a9049bSRichard Fitzgerald
194895a9049bSRichard Fitzgerald { "Voice Control DSP", NULL, "DSP6" },
194995a9049bSRichard Fitzgerald
195095a9049bSRichard Fitzgerald { "Audio Trace DSP", NULL, "DSP1" },
195195a9049bSRichard Fitzgerald
195295a9049bSRichard Fitzgerald { "IN1L Analog Mux", "A", "IN1ALN" },
195395a9049bSRichard Fitzgerald { "IN1L Analog Mux", "A", "IN1ALP" },
195495a9049bSRichard Fitzgerald { "IN1L Analog Mux", "B", "IN1BN" },
195595a9049bSRichard Fitzgerald { "IN1L Analog Mux", "B", "IN1BP" },
195695a9049bSRichard Fitzgerald
195795a9049bSRichard Fitzgerald { "IN1L Mode", "Analog", "IN1L Analog Mux" },
195895a9049bSRichard Fitzgerald { "IN1R Mode", "Analog", "IN1RN" },
195995a9049bSRichard Fitzgerald { "IN1R Mode", "Analog", "IN1RP" },
196095a9049bSRichard Fitzgerald
196195a9049bSRichard Fitzgerald { "IN1L Mode", "Digital", "IN1ALN" },
196295a9049bSRichard Fitzgerald { "IN1L Mode", "Digital", "IN1RN" },
196395a9049bSRichard Fitzgerald { "IN1R Mode", "Digital", "IN1ALN" },
196495a9049bSRichard Fitzgerald { "IN1R Mode", "Digital", "IN1RN" },
196595a9049bSRichard Fitzgerald
196695a9049bSRichard Fitzgerald { "IN1L", NULL, "IN1L Mode" },
196795a9049bSRichard Fitzgerald { "IN1R", NULL, "IN1R Mode" },
196895a9049bSRichard Fitzgerald
196995a9049bSRichard Fitzgerald { "IN2L Analog Mux", "A", "IN2ALN" },
197095a9049bSRichard Fitzgerald { "IN2L Analog Mux", "A", "IN2ALP" },
197195a9049bSRichard Fitzgerald { "IN2L Analog Mux", "B", "IN2BLN" },
197295a9049bSRichard Fitzgerald { "IN2L Analog Mux", "B", "IN2BLP" },
197395a9049bSRichard Fitzgerald { "IN2R Analog Mux", "A", "IN2ARN" },
197495a9049bSRichard Fitzgerald { "IN2R Analog Mux", "A", "IN2ARP" },
197595a9049bSRichard Fitzgerald { "IN2R Analog Mux", "B", "IN2BRN" },
197695a9049bSRichard Fitzgerald { "IN2R Analog Mux", "B", "IN2BRP" },
197795a9049bSRichard Fitzgerald
197895a9049bSRichard Fitzgerald { "IN2L Mode", "Analog", "IN2L Analog Mux" },
197995a9049bSRichard Fitzgerald { "IN2R Mode", "Analog", "IN2R Analog Mux" },
198095a9049bSRichard Fitzgerald
198195a9049bSRichard Fitzgerald { "IN2L Mode", "Digital", "IN2ALN" },
198295a9049bSRichard Fitzgerald { "IN2L Mode", "Digital", "IN2ARN" },
198395a9049bSRichard Fitzgerald { "IN2R Mode", "Digital", "IN2ALN" },
198495a9049bSRichard Fitzgerald { "IN2R Mode", "Digital", "IN2ARN" },
198595a9049bSRichard Fitzgerald
198695a9049bSRichard Fitzgerald { "IN2L", NULL, "IN2L Mode" },
198795a9049bSRichard Fitzgerald { "IN2R", NULL, "IN2R Mode" },
198895a9049bSRichard Fitzgerald
198995a9049bSRichard Fitzgerald { "IN3L Mode", "Analog", "IN3LN" },
199095a9049bSRichard Fitzgerald { "IN3L Mode", "Analog", "IN3LP" },
199195a9049bSRichard Fitzgerald { "IN3R Mode", "Analog", "IN3RN" },
199295a9049bSRichard Fitzgerald { "IN3R Mode", "Analog", "IN3RP" },
199395a9049bSRichard Fitzgerald
199495a9049bSRichard Fitzgerald { "IN3L Mode", "Digital", "IN3LN" },
199595a9049bSRichard Fitzgerald { "IN3L Mode", "Digital", "IN3RN" },
199695a9049bSRichard Fitzgerald { "IN3R Mode", "Digital", "IN3LN" },
199795a9049bSRichard Fitzgerald { "IN3R Mode", "Digital", "IN3RN" },
199895a9049bSRichard Fitzgerald
199995a9049bSRichard Fitzgerald { "IN3L", NULL, "IN3L Mode" },
200095a9049bSRichard Fitzgerald { "IN3R", NULL, "IN3R Mode" },
200195a9049bSRichard Fitzgerald
200295a9049bSRichard Fitzgerald { "IN4L", NULL, "DMICCLK4" },
2003ca34fa86SCharles Keepax { "IN4L", NULL, "DMICDAT4" },
2004ca34fa86SCharles Keepax { "IN4R", NULL, "DMICCLK4" },
200595a9049bSRichard Fitzgerald { "IN4R", NULL, "DMICDAT4" },
200695a9049bSRichard Fitzgerald
200795a9049bSRichard Fitzgerald { "IN5L", NULL, "DMICCLK5" },
2008ca34fa86SCharles Keepax { "IN5L", NULL, "DMICDAT5" },
2009ca34fa86SCharles Keepax { "IN5R", NULL, "DMICCLK5" },
201095a9049bSRichard Fitzgerald { "IN5R", NULL, "DMICDAT5" },
201195a9049bSRichard Fitzgerald
201295a9049bSRichard Fitzgerald { "IN6L", NULL, "DMICCLK6" },
2013ca34fa86SCharles Keepax { "IN6L", NULL, "DMICDAT6" },
2014ca34fa86SCharles Keepax { "IN6R", NULL, "DMICCLK6" },
201595a9049bSRichard Fitzgerald { "IN6R", NULL, "DMICDAT6" },
201695a9049bSRichard Fitzgerald
201795a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT1L", "HPOUT1L"),
201895a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT1R", "HPOUT1R"),
201995a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT2L", "HPOUT2L"),
202095a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT2R", "HPOUT2R"),
202195a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT3L", "HPOUT3L"),
202295a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT3R", "HPOUT3R"),
202395a9049bSRichard Fitzgerald
202495a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT4L", "SPKOUTL"),
202595a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT4R", "SPKOUTR"),
202695a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT5L", "SPKDAT1L"),
202795a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT5R", "SPKDAT1R"),
202895a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT6L", "SPKDAT2L"),
202995a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("OUT6R", "SPKDAT2R"),
203095a9049bSRichard Fitzgerald
203195a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("PWM1 Driver", "PWM1"),
203295a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("PWM2 Driver", "PWM2"),
203395a9049bSRichard Fitzgerald
203495a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF1TX1", "AIF1TX1"),
203595a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF1TX2", "AIF1TX2"),
203695a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF1TX3", "AIF1TX3"),
203795a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF1TX4", "AIF1TX4"),
203895a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF1TX5", "AIF1TX5"),
203995a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF1TX6", "AIF1TX6"),
204095a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF1TX7", "AIF1TX7"),
204195a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF1TX8", "AIF1TX8"),
204295a9049bSRichard Fitzgerald
204395a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF2TX1", "AIF2TX1"),
204495a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF2TX2", "AIF2TX2"),
204595a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF2TX3", "AIF2TX3"),
204695a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF2TX4", "AIF2TX4"),
204795a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF2TX5", "AIF2TX5"),
204895a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF2TX6", "AIF2TX6"),
204995a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF2TX7", "AIF2TX7"),
205095a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF2TX8", "AIF2TX8"),
205195a9049bSRichard Fitzgerald
205295a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF3TX1", "AIF3TX1"),
205395a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF3TX2", "AIF3TX2"),
205495a9049bSRichard Fitzgerald
205595a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF4TX1", "AIF4TX1"),
205695a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("AIF4TX2", "AIF4TX2"),
205795a9049bSRichard Fitzgerald
205895a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("SLIMTX1", "SLIMTX1"),
205995a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("SLIMTX2", "SLIMTX2"),
206095a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("SLIMTX3", "SLIMTX3"),
206195a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("SLIMTX4", "SLIMTX4"),
206295a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("SLIMTX5", "SLIMTX5"),
206395a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("SLIMTX6", "SLIMTX6"),
206495a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("SLIMTX7", "SLIMTX7"),
206595a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("SLIMTX8", "SLIMTX8"),
206695a9049bSRichard Fitzgerald
206795a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("SPD1TX1", "SPDIF1TX1"),
206895a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("SPD1TX2", "SPDIF1TX2"),
206995a9049bSRichard Fitzgerald
207095a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("EQ1", "EQ1"),
207195a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("EQ2", "EQ2"),
207295a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("EQ3", "EQ3"),
207395a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("EQ4", "EQ4"),
207495a9049bSRichard Fitzgerald
207595a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("DRC1L", "DRC1L"),
207695a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("DRC1R", "DRC1R"),
207795a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("DRC2L", "DRC2L"),
207895a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("DRC2R", "DRC2R"),
207995a9049bSRichard Fitzgerald
208095a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("LHPF1", "LHPF1"),
208195a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("LHPF2", "LHPF2"),
208295a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("LHPF3", "LHPF3"),
208395a9049bSRichard Fitzgerald MADERA_MIXER_ROUTES("LHPF4", "LHPF4"),
208495a9049bSRichard Fitzgerald
208595a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ASRC1IN1L", "ASRC1IN1L"),
208695a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ASRC1IN1R", "ASRC1IN1R"),
208795a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ASRC1IN2L", "ASRC1IN2L"),
208895a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ASRC1IN2R", "ASRC1IN2R"),
208995a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ASRC2IN1L", "ASRC2IN1L"),
209095a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ASRC2IN1R", "ASRC2IN1R"),
209195a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ASRC2IN2L", "ASRC2IN2L"),
209295a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ASRC2IN2R", "ASRC2IN2R"),
209395a9049bSRichard Fitzgerald
209495a9049bSRichard Fitzgerald MADERA_DSP_ROUTES("DSP1"),
209595a9049bSRichard Fitzgerald MADERA_DSP_ROUTES("DSP2"),
209695a9049bSRichard Fitzgerald MADERA_DSP_ROUTES("DSP3"),
209795a9049bSRichard Fitzgerald MADERA_DSP_ROUTES("DSP4"),
209895a9049bSRichard Fitzgerald MADERA_DSP_ROUTES("DSP5"),
209995a9049bSRichard Fitzgerald MADERA_DSP_ROUTES("DSP6"),
210095a9049bSRichard Fitzgerald MADERA_DSP_ROUTES("DSP7"),
210195a9049bSRichard Fitzgerald
210295a9049bSRichard Fitzgerald { "DSP Trigger Out", NULL, "DSP1 Trigger Output" },
210395a9049bSRichard Fitzgerald { "DSP Trigger Out", NULL, "DSP2 Trigger Output" },
210495a9049bSRichard Fitzgerald { "DSP Trigger Out", NULL, "DSP3 Trigger Output" },
210595a9049bSRichard Fitzgerald { "DSP Trigger Out", NULL, "DSP4 Trigger Output" },
210695a9049bSRichard Fitzgerald { "DSP Trigger Out", NULL, "DSP5 Trigger Output" },
210795a9049bSRichard Fitzgerald { "DSP Trigger Out", NULL, "DSP6 Trigger Output" },
210895a9049bSRichard Fitzgerald { "DSP Trigger Out", NULL, "DSP7 Trigger Output" },
210995a9049bSRichard Fitzgerald
211095a9049bSRichard Fitzgerald { "DSP1 Trigger Output", "Switch", "DSP1" },
211195a9049bSRichard Fitzgerald { "DSP2 Trigger Output", "Switch", "DSP2" },
211295a9049bSRichard Fitzgerald { "DSP3 Trigger Output", "Switch", "DSP3" },
211395a9049bSRichard Fitzgerald { "DSP4 Trigger Output", "Switch", "DSP4" },
211495a9049bSRichard Fitzgerald { "DSP5 Trigger Output", "Switch", "DSP5" },
211595a9049bSRichard Fitzgerald { "DSP6 Trigger Output", "Switch", "DSP6" },
211695a9049bSRichard Fitzgerald { "DSP7 Trigger Output", "Switch", "DSP7" },
211795a9049bSRichard Fitzgerald
211895a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC1INT1", "ISRC1INT1"),
211995a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC1INT2", "ISRC1INT2"),
212095a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC1INT3", "ISRC1INT3"),
212195a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC1INT4", "ISRC1INT4"),
212295a9049bSRichard Fitzgerald
212395a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC1DEC1", "ISRC1DEC1"),
212495a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC1DEC2", "ISRC1DEC2"),
212595a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC1DEC3", "ISRC1DEC3"),
212695a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC1DEC4", "ISRC1DEC4"),
212795a9049bSRichard Fitzgerald
212895a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC2INT1", "ISRC2INT1"),
212995a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC2INT2", "ISRC2INT2"),
213095a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC2INT3", "ISRC2INT3"),
213195a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC2INT4", "ISRC2INT4"),
213295a9049bSRichard Fitzgerald
213395a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC2DEC1", "ISRC2DEC1"),
213495a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC2DEC2", "ISRC2DEC2"),
213595a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC2DEC3", "ISRC2DEC3"),
213695a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC2DEC4", "ISRC2DEC4"),
213795a9049bSRichard Fitzgerald
213895a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC3INT1", "ISRC3INT1"),
213995a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC3INT2", "ISRC3INT2"),
214095a9049bSRichard Fitzgerald
214195a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC3DEC1", "ISRC3DEC1"),
214295a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC3DEC2", "ISRC3DEC2"),
214395a9049bSRichard Fitzgerald
214495a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC4INT1", "ISRC4INT1"),
214595a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC4INT2", "ISRC4INT2"),
214695a9049bSRichard Fitzgerald
214795a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC4DEC1", "ISRC4DEC1"),
214895a9049bSRichard Fitzgerald MADERA_MUX_ROUTES("ISRC4DEC2", "ISRC4DEC2"),
214995a9049bSRichard Fitzgerald
215095a9049bSRichard Fitzgerald { "AEC1 Loopback", "HPOUT1L", "OUT1L" },
215195a9049bSRichard Fitzgerald { "AEC1 Loopback", "HPOUT1R", "OUT1R" },
215295a9049bSRichard Fitzgerald { "AEC2 Loopback", "HPOUT1L", "OUT1L" },
215395a9049bSRichard Fitzgerald { "AEC2 Loopback", "HPOUT1R", "OUT1R" },
215495a9049bSRichard Fitzgerald { "HPOUT1L", NULL, "OUT1L" },
215595a9049bSRichard Fitzgerald { "HPOUT1R", NULL, "OUT1R" },
215695a9049bSRichard Fitzgerald
215795a9049bSRichard Fitzgerald { "AEC1 Loopback", "HPOUT2L", "OUT2L" },
215895a9049bSRichard Fitzgerald { "AEC1 Loopback", "HPOUT2R", "OUT2R" },
215995a9049bSRichard Fitzgerald { "AEC2 Loopback", "HPOUT2L", "OUT2L" },
216095a9049bSRichard Fitzgerald { "AEC2 Loopback", "HPOUT2R", "OUT2R" },
216195a9049bSRichard Fitzgerald { "HPOUT2L", NULL, "OUT2L" },
216295a9049bSRichard Fitzgerald { "HPOUT2R", NULL, "OUT2R" },
216395a9049bSRichard Fitzgerald
216495a9049bSRichard Fitzgerald { "AEC1 Loopback", "HPOUT3L", "OUT3L" },
216595a9049bSRichard Fitzgerald { "AEC1 Loopback", "HPOUT3R", "OUT3R" },
216695a9049bSRichard Fitzgerald { "AEC2 Loopback", "HPOUT3L", "OUT3L" },
216795a9049bSRichard Fitzgerald { "AEC2 Loopback", "HPOUT3R", "OUT3R" },
216895a9049bSRichard Fitzgerald { "HPOUT3L", NULL, "OUT3L" },
216995a9049bSRichard Fitzgerald { "HPOUT3R", NULL, "OUT3R" },
217095a9049bSRichard Fitzgerald
217195a9049bSRichard Fitzgerald { "AEC1 Loopback", "SPKOUTL", "OUT4L" },
217295a9049bSRichard Fitzgerald { "AEC2 Loopback", "SPKOUTL", "OUT4L" },
217395a9049bSRichard Fitzgerald { "SPKOUTLN", NULL, "OUT4L" },
217495a9049bSRichard Fitzgerald { "SPKOUTLP", NULL, "OUT4L" },
217595a9049bSRichard Fitzgerald
217695a9049bSRichard Fitzgerald { "AEC1 Loopback", "SPKOUTR", "OUT4R" },
217795a9049bSRichard Fitzgerald { "AEC2 Loopback", "SPKOUTR", "OUT4R" },
217895a9049bSRichard Fitzgerald { "SPKOUTRN", NULL, "OUT4R" },
217995a9049bSRichard Fitzgerald { "SPKOUTRP", NULL, "OUT4R" },
218095a9049bSRichard Fitzgerald
218195a9049bSRichard Fitzgerald { "AEC1 Loopback", "SPKDAT1L", "OUT5L" },
218295a9049bSRichard Fitzgerald { "AEC1 Loopback", "SPKDAT1R", "OUT5R" },
218395a9049bSRichard Fitzgerald { "AEC2 Loopback", "SPKDAT1L", "OUT5L" },
218495a9049bSRichard Fitzgerald { "AEC2 Loopback", "SPKDAT1R", "OUT5R" },
218595a9049bSRichard Fitzgerald { "SPKDAT1L", NULL, "OUT5L" },
218695a9049bSRichard Fitzgerald { "SPKDAT1R", NULL, "OUT5R" },
218795a9049bSRichard Fitzgerald
218895a9049bSRichard Fitzgerald { "AEC1 Loopback", "SPKDAT2L", "OUT6L" },
218995a9049bSRichard Fitzgerald { "AEC1 Loopback", "SPKDAT2R", "OUT6R" },
219095a9049bSRichard Fitzgerald { "AEC2 Loopback", "SPKDAT2L", "OUT6L" },
219195a9049bSRichard Fitzgerald { "AEC2 Loopback", "SPKDAT2R", "OUT6R" },
219295a9049bSRichard Fitzgerald { "SPKDAT2L", NULL, "OUT6L" },
219395a9049bSRichard Fitzgerald { "SPKDAT2R", NULL, "OUT6R" },
219495a9049bSRichard Fitzgerald
219595a9049bSRichard Fitzgerald CS47L85_RXANC_INPUT_ROUTES("RXANCL", "RXANCL"),
219695a9049bSRichard Fitzgerald CS47L85_RXANC_INPUT_ROUTES("RXANCR", "RXANCR"),
219795a9049bSRichard Fitzgerald
219895a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT1L", "HPOUT1L"),
219995a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT1R", "HPOUT1R"),
220095a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT2L", "HPOUT2L"),
220195a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT2R", "HPOUT2R"),
220295a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT3L", "HPOUT3L"),
220395a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT3R", "HPOUT3R"),
220495a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT4L", "SPKOUTL"),
220595a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT4R", "SPKOUTR"),
220695a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT5L", "SPKDAT1L"),
220795a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT5R", "SPKDAT1R"),
220895a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT6L", "SPKDAT2L"),
220995a9049bSRichard Fitzgerald CS47L85_RXANC_OUTPUT_ROUTES("OUT6R", "SPKDAT2R"),
221095a9049bSRichard Fitzgerald
221195a9049bSRichard Fitzgerald { "SPDIF1", NULL, "SPD1" },
221295a9049bSRichard Fitzgerald
221395a9049bSRichard Fitzgerald { "MICSUPP", NULL, "SYSCLK" },
221495a9049bSRichard Fitzgerald
221595a9049bSRichard Fitzgerald { "DRC1 Signal Activity", NULL, "DRC1 Activity Output" },
221695a9049bSRichard Fitzgerald { "DRC2 Signal Activity", NULL, "DRC2 Activity Output" },
221795a9049bSRichard Fitzgerald { "DRC1 Activity Output", "Switch", "DRC1L" },
221895a9049bSRichard Fitzgerald { "DRC1 Activity Output", "Switch", "DRC1R" },
221995a9049bSRichard Fitzgerald { "DRC2 Activity Output", "Switch", "DRC2L" },
222095a9049bSRichard Fitzgerald { "DRC2 Activity Output", "Switch", "DRC2R" },
222195a9049bSRichard Fitzgerald };
222295a9049bSRichard Fitzgerald
cs47l85_set_fll(struct snd_soc_component * component,int fll_id,int source,unsigned int fref,unsigned int fout)222395a9049bSRichard Fitzgerald static int cs47l85_set_fll(struct snd_soc_component *component, int fll_id,
222495a9049bSRichard Fitzgerald int source, unsigned int fref, unsigned int fout)
222595a9049bSRichard Fitzgerald {
222695a9049bSRichard Fitzgerald struct cs47l85 *cs47l85 = snd_soc_component_get_drvdata(component);
222795a9049bSRichard Fitzgerald
222895a9049bSRichard Fitzgerald switch (fll_id) {
222995a9049bSRichard Fitzgerald case MADERA_FLL1_REFCLK:
223095a9049bSRichard Fitzgerald return madera_set_fll_refclk(&cs47l85->fll[0], source, fref,
223195a9049bSRichard Fitzgerald fout);
223295a9049bSRichard Fitzgerald case MADERA_FLL2_REFCLK:
223395a9049bSRichard Fitzgerald return madera_set_fll_refclk(&cs47l85->fll[1], source, fref,
223495a9049bSRichard Fitzgerald fout);
223595a9049bSRichard Fitzgerald case MADERA_FLL3_REFCLK:
223695a9049bSRichard Fitzgerald return madera_set_fll_refclk(&cs47l85->fll[2], source, fref,
223795a9049bSRichard Fitzgerald fout);
223895a9049bSRichard Fitzgerald case MADERA_FLL1_SYNCCLK:
223995a9049bSRichard Fitzgerald return madera_set_fll_syncclk(&cs47l85->fll[0], source, fref,
224095a9049bSRichard Fitzgerald fout);
224195a9049bSRichard Fitzgerald case MADERA_FLL2_SYNCCLK:
224295a9049bSRichard Fitzgerald return madera_set_fll_syncclk(&cs47l85->fll[1], source, fref,
224395a9049bSRichard Fitzgerald fout);
224495a9049bSRichard Fitzgerald case MADERA_FLL3_SYNCCLK:
224595a9049bSRichard Fitzgerald return madera_set_fll_syncclk(&cs47l85->fll[2], source, fref,
224695a9049bSRichard Fitzgerald fout);
224795a9049bSRichard Fitzgerald default:
224895a9049bSRichard Fitzgerald return -EINVAL;
224995a9049bSRichard Fitzgerald }
225095a9049bSRichard Fitzgerald }
225195a9049bSRichard Fitzgerald
2252*e22a907dSKuninori Morimoto static const struct snd_soc_dai_ops cs47l85_dai_ops = {
2253*e22a907dSKuninori Morimoto .compress_new = snd_soc_new_compress,
2254*e22a907dSKuninori Morimoto };
2255*e22a907dSKuninori Morimoto
225695a9049bSRichard Fitzgerald static struct snd_soc_dai_driver cs47l85_dai[] = {
225795a9049bSRichard Fitzgerald {
225895a9049bSRichard Fitzgerald .name = "cs47l85-aif1",
225995a9049bSRichard Fitzgerald .id = 1,
226095a9049bSRichard Fitzgerald .base = MADERA_AIF1_BCLK_CTRL,
226195a9049bSRichard Fitzgerald .playback = {
226295a9049bSRichard Fitzgerald .stream_name = "AIF1 Playback",
226395a9049bSRichard Fitzgerald .channels_min = 1,
226495a9049bSRichard Fitzgerald .channels_max = 8,
226595a9049bSRichard Fitzgerald .rates = MADERA_RATES,
226695a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
226795a9049bSRichard Fitzgerald },
226895a9049bSRichard Fitzgerald .capture = {
226995a9049bSRichard Fitzgerald .stream_name = "AIF1 Capture",
227095a9049bSRichard Fitzgerald .channels_min = 1,
227195a9049bSRichard Fitzgerald .channels_max = 8,
227295a9049bSRichard Fitzgerald .rates = MADERA_RATES,
227395a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
227495a9049bSRichard Fitzgerald },
227595a9049bSRichard Fitzgerald .ops = &madera_dai_ops,
2276260b668cSKuninori Morimoto .symmetric_rate = 1,
2277260b668cSKuninori Morimoto .symmetric_sample_bits = 1,
227895a9049bSRichard Fitzgerald },
227995a9049bSRichard Fitzgerald {
228095a9049bSRichard Fitzgerald .name = "cs47l85-aif2",
228195a9049bSRichard Fitzgerald .id = 2,
228295a9049bSRichard Fitzgerald .base = MADERA_AIF2_BCLK_CTRL,
228395a9049bSRichard Fitzgerald .playback = {
228495a9049bSRichard Fitzgerald .stream_name = "AIF2 Playback",
228595a9049bSRichard Fitzgerald .channels_min = 1,
228695a9049bSRichard Fitzgerald .channels_max = 8,
228795a9049bSRichard Fitzgerald .rates = MADERA_RATES,
228895a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
228995a9049bSRichard Fitzgerald },
229095a9049bSRichard Fitzgerald .capture = {
229195a9049bSRichard Fitzgerald .stream_name = "AIF2 Capture",
229295a9049bSRichard Fitzgerald .channels_min = 1,
229395a9049bSRichard Fitzgerald .channels_max = 8,
229495a9049bSRichard Fitzgerald .rates = MADERA_RATES,
229595a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
229695a9049bSRichard Fitzgerald },
229795a9049bSRichard Fitzgerald .ops = &madera_dai_ops,
2298260b668cSKuninori Morimoto .symmetric_rate = 1,
2299260b668cSKuninori Morimoto .symmetric_sample_bits = 1,
230095a9049bSRichard Fitzgerald },
230195a9049bSRichard Fitzgerald {
230295a9049bSRichard Fitzgerald .name = "cs47l85-aif3",
230395a9049bSRichard Fitzgerald .id = 3,
230495a9049bSRichard Fitzgerald .base = MADERA_AIF3_BCLK_CTRL,
230595a9049bSRichard Fitzgerald .playback = {
230695a9049bSRichard Fitzgerald .stream_name = "AIF3 Playback",
230795a9049bSRichard Fitzgerald .channels_min = 1,
230895a9049bSRichard Fitzgerald .channels_max = 2,
230995a9049bSRichard Fitzgerald .rates = MADERA_RATES,
231095a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
231195a9049bSRichard Fitzgerald },
231295a9049bSRichard Fitzgerald .capture = {
231395a9049bSRichard Fitzgerald .stream_name = "AIF3 Capture",
231495a9049bSRichard Fitzgerald .channels_min = 1,
231595a9049bSRichard Fitzgerald .channels_max = 2,
231695a9049bSRichard Fitzgerald .rates = MADERA_RATES,
231795a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
231895a9049bSRichard Fitzgerald },
231995a9049bSRichard Fitzgerald .ops = &madera_dai_ops,
2320260b668cSKuninori Morimoto .symmetric_rate = 1,
2321260b668cSKuninori Morimoto .symmetric_sample_bits = 1,
232295a9049bSRichard Fitzgerald },
232395a9049bSRichard Fitzgerald {
232495a9049bSRichard Fitzgerald .name = "cs47l85-aif4",
232595a9049bSRichard Fitzgerald .id = 4,
232695a9049bSRichard Fitzgerald .base = MADERA_AIF4_BCLK_CTRL,
232795a9049bSRichard Fitzgerald .playback = {
232895a9049bSRichard Fitzgerald .stream_name = "AIF4 Playback",
232995a9049bSRichard Fitzgerald .channels_min = 1,
233095a9049bSRichard Fitzgerald .channels_max = 2,
233195a9049bSRichard Fitzgerald .rates = MADERA_RATES,
233295a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
233395a9049bSRichard Fitzgerald },
233495a9049bSRichard Fitzgerald .capture = {
233595a9049bSRichard Fitzgerald .stream_name = "AIF4 Capture",
233695a9049bSRichard Fitzgerald .channels_min = 1,
233795a9049bSRichard Fitzgerald .channels_max = 2,
233895a9049bSRichard Fitzgerald .rates = MADERA_RATES,
233995a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
234095a9049bSRichard Fitzgerald },
234195a9049bSRichard Fitzgerald .ops = &madera_dai_ops,
2342260b668cSKuninori Morimoto .symmetric_rate = 1,
2343260b668cSKuninori Morimoto .symmetric_sample_bits = 1,
234495a9049bSRichard Fitzgerald },
234595a9049bSRichard Fitzgerald {
234695a9049bSRichard Fitzgerald .name = "cs47l85-slim1",
234795a9049bSRichard Fitzgerald .id = 5,
234895a9049bSRichard Fitzgerald .playback = {
234995a9049bSRichard Fitzgerald .stream_name = "Slim1 Playback",
235095a9049bSRichard Fitzgerald .channels_min = 1,
235195a9049bSRichard Fitzgerald .channels_max = 4,
235295a9049bSRichard Fitzgerald .rates = MADERA_RATES,
235395a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
235495a9049bSRichard Fitzgerald },
235595a9049bSRichard Fitzgerald .capture = {
235695a9049bSRichard Fitzgerald .stream_name = "Slim1 Capture",
235795a9049bSRichard Fitzgerald .channels_min = 1,
235895a9049bSRichard Fitzgerald .channels_max = 4,
235995a9049bSRichard Fitzgerald .rates = MADERA_RATES,
236095a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
236195a9049bSRichard Fitzgerald },
236295a9049bSRichard Fitzgerald .ops = &madera_simple_dai_ops,
236395a9049bSRichard Fitzgerald },
236495a9049bSRichard Fitzgerald {
236595a9049bSRichard Fitzgerald .name = "cs47l85-slim2",
236695a9049bSRichard Fitzgerald .id = 6,
236795a9049bSRichard Fitzgerald .playback = {
236895a9049bSRichard Fitzgerald .stream_name = "Slim2 Playback",
236995a9049bSRichard Fitzgerald .channels_min = 1,
237095a9049bSRichard Fitzgerald .channels_max = 2,
237195a9049bSRichard Fitzgerald .rates = MADERA_RATES,
237295a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
237395a9049bSRichard Fitzgerald },
237495a9049bSRichard Fitzgerald .capture = {
237595a9049bSRichard Fitzgerald .stream_name = "Slim2 Capture",
237695a9049bSRichard Fitzgerald .channels_min = 1,
237795a9049bSRichard Fitzgerald .channels_max = 2,
237895a9049bSRichard Fitzgerald .rates = MADERA_RATES,
237995a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
238095a9049bSRichard Fitzgerald },
238195a9049bSRichard Fitzgerald .ops = &madera_simple_dai_ops,
238295a9049bSRichard Fitzgerald },
238395a9049bSRichard Fitzgerald {
238495a9049bSRichard Fitzgerald .name = "cs47l85-slim3",
238595a9049bSRichard Fitzgerald .id = 7,
238695a9049bSRichard Fitzgerald .playback = {
238795a9049bSRichard Fitzgerald .stream_name = "Slim3 Playback",
238895a9049bSRichard Fitzgerald .channels_min = 1,
238995a9049bSRichard Fitzgerald .channels_max = 2,
239095a9049bSRichard Fitzgerald .rates = MADERA_RATES,
239195a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
239295a9049bSRichard Fitzgerald },
239395a9049bSRichard Fitzgerald .capture = {
239495a9049bSRichard Fitzgerald .stream_name = "Slim3 Capture",
239595a9049bSRichard Fitzgerald .channels_min = 1,
239695a9049bSRichard Fitzgerald .channels_max = 2,
239795a9049bSRichard Fitzgerald .rates = MADERA_RATES,
239895a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
239995a9049bSRichard Fitzgerald },
240095a9049bSRichard Fitzgerald .ops = &madera_simple_dai_ops,
240195a9049bSRichard Fitzgerald },
240295a9049bSRichard Fitzgerald {
240395a9049bSRichard Fitzgerald .name = "cs47l85-cpu-voicectrl",
240495a9049bSRichard Fitzgerald .capture = {
240595a9049bSRichard Fitzgerald .stream_name = "Voice Control CPU",
240695a9049bSRichard Fitzgerald .channels_min = 1,
240795a9049bSRichard Fitzgerald .channels_max = 1,
240895a9049bSRichard Fitzgerald .rates = MADERA_RATES,
240995a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
241095a9049bSRichard Fitzgerald },
2411*e22a907dSKuninori Morimoto .ops = &cs47l85_dai_ops,
241295a9049bSRichard Fitzgerald },
241395a9049bSRichard Fitzgerald {
241495a9049bSRichard Fitzgerald .name = "cs47l85-dsp-voicectrl",
241595a9049bSRichard Fitzgerald .capture = {
241695a9049bSRichard Fitzgerald .stream_name = "Voice Control DSP",
241795a9049bSRichard Fitzgerald .channels_min = 1,
241895a9049bSRichard Fitzgerald .channels_max = 1,
241995a9049bSRichard Fitzgerald .rates = MADERA_RATES,
242095a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
242195a9049bSRichard Fitzgerald },
242295a9049bSRichard Fitzgerald },
242395a9049bSRichard Fitzgerald {
242495a9049bSRichard Fitzgerald .name = "cs47l85-cpu-trace",
242595a9049bSRichard Fitzgerald .capture = {
242695a9049bSRichard Fitzgerald .stream_name = "Audio Trace CPU",
242795a9049bSRichard Fitzgerald .channels_min = 1,
242895a9049bSRichard Fitzgerald .channels_max = 6,
242995a9049bSRichard Fitzgerald .rates = MADERA_RATES,
243095a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
243195a9049bSRichard Fitzgerald },
2432*e22a907dSKuninori Morimoto .ops = &cs47l85_dai_ops,
243395a9049bSRichard Fitzgerald },
243495a9049bSRichard Fitzgerald {
243595a9049bSRichard Fitzgerald .name = "cs47l85-dsp-trace",
243695a9049bSRichard Fitzgerald .capture = {
243795a9049bSRichard Fitzgerald .stream_name = "Audio Trace DSP",
243895a9049bSRichard Fitzgerald .channels_min = 1,
243995a9049bSRichard Fitzgerald .channels_max = 6,
244095a9049bSRichard Fitzgerald .rates = MADERA_RATES,
244195a9049bSRichard Fitzgerald .formats = MADERA_FORMATS,
244295a9049bSRichard Fitzgerald },
244395a9049bSRichard Fitzgerald },
244495a9049bSRichard Fitzgerald };
244595a9049bSRichard Fitzgerald
cs47l85_open(struct snd_soc_component * component,struct snd_compr_stream * stream)24463a5ccf25SKuninori Morimoto static int cs47l85_open(struct snd_soc_component *component,
24473a5ccf25SKuninori Morimoto struct snd_compr_stream *stream)
244895a9049bSRichard Fitzgerald {
244995a9049bSRichard Fitzgerald struct snd_soc_pcm_runtime *rtd = stream->private_data;
245095a9049bSRichard Fitzgerald struct cs47l85 *cs47l85 = snd_soc_component_get_drvdata(component);
245195a9049bSRichard Fitzgerald struct madera_priv *priv = &cs47l85->core;
245295a9049bSRichard Fitzgerald struct madera *madera = priv->madera;
245395a9049bSRichard Fitzgerald int n_adsp;
245495a9049bSRichard Fitzgerald
2455b5cb8558SKuninori Morimoto if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "cs47l85-dsp-voicectrl") == 0) {
245695a9049bSRichard Fitzgerald n_adsp = 5;
2457b5cb8558SKuninori Morimoto } else if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "cs47l85-dsp-trace") == 0) {
245895a9049bSRichard Fitzgerald n_adsp = 0;
245995a9049bSRichard Fitzgerald } else {
246095a9049bSRichard Fitzgerald dev_err(madera->dev,
246195a9049bSRichard Fitzgerald "No suitable compressed stream for DAI '%s'\n",
2462b5cb8558SKuninori Morimoto asoc_rtd_to_codec(rtd, 0)->name);
246395a9049bSRichard Fitzgerald return -EINVAL;
246495a9049bSRichard Fitzgerald }
246595a9049bSRichard Fitzgerald
246695a9049bSRichard Fitzgerald return wm_adsp_compr_open(&priv->adsp[n_adsp], stream);
246795a9049bSRichard Fitzgerald }
246895a9049bSRichard Fitzgerald
cs47l85_adsp2_irq(int irq,void * data)246995a9049bSRichard Fitzgerald static irqreturn_t cs47l85_adsp2_irq(int irq, void *data)
247095a9049bSRichard Fitzgerald {
247195a9049bSRichard Fitzgerald struct cs47l85 *cs47l85 = data;
247295a9049bSRichard Fitzgerald struct madera_priv *priv = &cs47l85->core;
247395a9049bSRichard Fitzgerald struct madera *madera = priv->madera;
247495a9049bSRichard Fitzgerald struct madera_voice_trigger_info trig_info;
247595a9049bSRichard Fitzgerald int serviced = 0;
247695a9049bSRichard Fitzgerald int i, ret;
247795a9049bSRichard Fitzgerald
247895a9049bSRichard Fitzgerald for (i = 0; i < CS47L85_NUM_ADSP; ++i) {
247995a9049bSRichard Fitzgerald ret = wm_adsp_compr_handle_irq(&priv->adsp[i]);
248095a9049bSRichard Fitzgerald if (ret != -ENODEV)
248195a9049bSRichard Fitzgerald serviced++;
248295a9049bSRichard Fitzgerald if (ret == WM_ADSP_COMPR_VOICE_TRIGGER) {
248395a9049bSRichard Fitzgerald trig_info.core_num = i + 1;
248495a9049bSRichard Fitzgerald blocking_notifier_call_chain(&madera->notifier,
248595a9049bSRichard Fitzgerald MADERA_NOTIFY_VOICE_TRIGGER,
248695a9049bSRichard Fitzgerald &trig_info);
248795a9049bSRichard Fitzgerald }
248895a9049bSRichard Fitzgerald }
248995a9049bSRichard Fitzgerald
249095a9049bSRichard Fitzgerald if (!serviced) {
249195a9049bSRichard Fitzgerald dev_err(madera->dev, "Spurious compressed data IRQ\n");
249295a9049bSRichard Fitzgerald return IRQ_NONE;
249395a9049bSRichard Fitzgerald }
249495a9049bSRichard Fitzgerald
249595a9049bSRichard Fitzgerald return IRQ_HANDLED;
249695a9049bSRichard Fitzgerald }
249795a9049bSRichard Fitzgerald
cs47l85_component_probe(struct snd_soc_component * component)249895a9049bSRichard Fitzgerald static int cs47l85_component_probe(struct snd_soc_component *component)
249995a9049bSRichard Fitzgerald {
250095a9049bSRichard Fitzgerald struct cs47l85 *cs47l85 = snd_soc_component_get_drvdata(component);
250195a9049bSRichard Fitzgerald struct madera *madera = cs47l85->core.madera;
250295a9049bSRichard Fitzgerald int i, ret;
250395a9049bSRichard Fitzgerald
250495a9049bSRichard Fitzgerald snd_soc_component_init_regmap(component, madera->regmap);
250595a9049bSRichard Fitzgerald
250695a9049bSRichard Fitzgerald mutex_lock(&madera->dapm_ptr_lock);
250795a9049bSRichard Fitzgerald madera->dapm = snd_soc_component_get_dapm(component);
250895a9049bSRichard Fitzgerald mutex_unlock(&madera->dapm_ptr_lock);
250995a9049bSRichard Fitzgerald
251095a9049bSRichard Fitzgerald ret = madera_init_inputs(component);
251195a9049bSRichard Fitzgerald if (ret)
251295a9049bSRichard Fitzgerald return ret;
251395a9049bSRichard Fitzgerald
25148ab6ddc5SCharles Keepax ret = madera_init_outputs(component, NULL, CS47L85_MONO_OUTPUTS,
25158ab6ddc5SCharles Keepax CS47L85_MONO_OUTPUTS);
251695a9049bSRichard Fitzgerald if (ret)
251795a9049bSRichard Fitzgerald return ret;
251895a9049bSRichard Fitzgerald
251995a9049bSRichard Fitzgerald snd_soc_component_disable_pin(component, "HAPTICS");
252095a9049bSRichard Fitzgerald
252195a9049bSRichard Fitzgerald ret = snd_soc_add_component_controls(component,
252295a9049bSRichard Fitzgerald madera_adsp_rate_controls,
252395a9049bSRichard Fitzgerald CS47L85_NUM_ADSP);
252495a9049bSRichard Fitzgerald if (ret)
252595a9049bSRichard Fitzgerald return ret;
252695a9049bSRichard Fitzgerald
252795a9049bSRichard Fitzgerald for (i = 0; i < CS47L85_NUM_ADSP; i++)
252895a9049bSRichard Fitzgerald wm_adsp2_component_probe(&cs47l85->core.adsp[i], component);
252995a9049bSRichard Fitzgerald
253095a9049bSRichard Fitzgerald return 0;
253195a9049bSRichard Fitzgerald }
253295a9049bSRichard Fitzgerald
cs47l85_component_remove(struct snd_soc_component * component)253395a9049bSRichard Fitzgerald static void cs47l85_component_remove(struct snd_soc_component *component)
253495a9049bSRichard Fitzgerald {
253595a9049bSRichard Fitzgerald struct cs47l85 *cs47l85 = snd_soc_component_get_drvdata(component);
253695a9049bSRichard Fitzgerald struct madera *madera = cs47l85->core.madera;
253795a9049bSRichard Fitzgerald int i;
253895a9049bSRichard Fitzgerald
253995a9049bSRichard Fitzgerald mutex_lock(&madera->dapm_ptr_lock);
254095a9049bSRichard Fitzgerald madera->dapm = NULL;
254195a9049bSRichard Fitzgerald mutex_unlock(&madera->dapm_ptr_lock);
254295a9049bSRichard Fitzgerald
254395a9049bSRichard Fitzgerald for (i = 0; i < CS47L85_NUM_ADSP; i++)
254495a9049bSRichard Fitzgerald wm_adsp2_component_remove(&cs47l85->core.adsp[i], component);
254595a9049bSRichard Fitzgerald }
254695a9049bSRichard Fitzgerald
254795a9049bSRichard Fitzgerald #define MADERA_DIG_VU 0x0200
254895a9049bSRichard Fitzgerald
254995a9049bSRichard Fitzgerald static const unsigned int cs47l85_digital_vu[] = {
255095a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_1L,
255195a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_1R,
255295a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_2L,
255395a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_2R,
255495a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_3L,
255595a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_3R,
255695a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_4L,
255795a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_4R,
255895a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_5L,
255995a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_5R,
256095a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_6L,
256195a9049bSRichard Fitzgerald MADERA_DAC_DIGITAL_VOLUME_6R,
256295a9049bSRichard Fitzgerald };
256395a9049bSRichard Fitzgerald
25643a5ccf25SKuninori Morimoto static const struct snd_compress_ops cs47l85_compress_ops = {
256595a9049bSRichard Fitzgerald .open = &cs47l85_open,
256695a9049bSRichard Fitzgerald .free = &wm_adsp_compr_free,
256795a9049bSRichard Fitzgerald .set_params = &wm_adsp_compr_set_params,
256895a9049bSRichard Fitzgerald .get_caps = &wm_adsp_compr_get_caps,
256995a9049bSRichard Fitzgerald .trigger = &wm_adsp_compr_trigger,
257095a9049bSRichard Fitzgerald .pointer = &wm_adsp_compr_pointer,
257195a9049bSRichard Fitzgerald .copy = &wm_adsp_compr_copy,
257295a9049bSRichard Fitzgerald };
257395a9049bSRichard Fitzgerald
257495a9049bSRichard Fitzgerald static const struct snd_soc_component_driver soc_component_dev_cs47l85 = {
257595a9049bSRichard Fitzgerald .probe = &cs47l85_component_probe,
257695a9049bSRichard Fitzgerald .remove = &cs47l85_component_remove,
257795a9049bSRichard Fitzgerald .set_sysclk = &madera_set_sysclk,
257895a9049bSRichard Fitzgerald .set_pll = &cs47l85_set_fll,
257995a9049bSRichard Fitzgerald .name = DRV_NAME,
25803a5ccf25SKuninori Morimoto .compress_ops = &cs47l85_compress_ops,
258195a9049bSRichard Fitzgerald .controls = cs47l85_snd_controls,
258295a9049bSRichard Fitzgerald .num_controls = ARRAY_SIZE(cs47l85_snd_controls),
258395a9049bSRichard Fitzgerald .dapm_widgets = cs47l85_dapm_widgets,
258495a9049bSRichard Fitzgerald .num_dapm_widgets = ARRAY_SIZE(cs47l85_dapm_widgets),
258595a9049bSRichard Fitzgerald .dapm_routes = cs47l85_dapm_routes,
258695a9049bSRichard Fitzgerald .num_dapm_routes = ARRAY_SIZE(cs47l85_dapm_routes),
258795a9049bSRichard Fitzgerald .use_pmdown_time = 1,
258895a9049bSRichard Fitzgerald .endianness = 1,
258995a9049bSRichard Fitzgerald };
259095a9049bSRichard Fitzgerald
cs47l85_probe(struct platform_device * pdev)259195a9049bSRichard Fitzgerald static int cs47l85_probe(struct platform_device *pdev)
259295a9049bSRichard Fitzgerald {
259395a9049bSRichard Fitzgerald struct madera *madera = dev_get_drvdata(pdev->dev.parent);
259495a9049bSRichard Fitzgerald struct cs47l85 *cs47l85;
259595a9049bSRichard Fitzgerald int i, ret;
259695a9049bSRichard Fitzgerald
259795a9049bSRichard Fitzgerald BUILD_BUG_ON(ARRAY_SIZE(cs47l85_dai) > MADERA_MAX_DAI);
259895a9049bSRichard Fitzgerald
259995a9049bSRichard Fitzgerald /* quick exit if Madera irqchip driver hasn't completed probe */
260095a9049bSRichard Fitzgerald if (!madera->irq_dev) {
260195a9049bSRichard Fitzgerald dev_dbg(&pdev->dev, "irqchip driver not ready\n");
260295a9049bSRichard Fitzgerald return -EPROBE_DEFER;
260395a9049bSRichard Fitzgerald }
260495a9049bSRichard Fitzgerald
260595a9049bSRichard Fitzgerald cs47l85 = devm_kzalloc(&pdev->dev, sizeof(struct cs47l85),
260695a9049bSRichard Fitzgerald GFP_KERNEL);
260795a9049bSRichard Fitzgerald if (!cs47l85)
260895a9049bSRichard Fitzgerald return -ENOMEM;
260995a9049bSRichard Fitzgerald
261095a9049bSRichard Fitzgerald platform_set_drvdata(pdev, cs47l85);
261195a9049bSRichard Fitzgerald
261295a9049bSRichard Fitzgerald cs47l85->core.madera = madera;
261395a9049bSRichard Fitzgerald cs47l85->core.dev = &pdev->dev;
261495a9049bSRichard Fitzgerald cs47l85->core.num_inputs = 12;
261595a9049bSRichard Fitzgerald
261695a9049bSRichard Fitzgerald ret = madera_core_init(&cs47l85->core);
261795a9049bSRichard Fitzgerald if (ret)
261895a9049bSRichard Fitzgerald return ret;
261995a9049bSRichard Fitzgerald
262095a9049bSRichard Fitzgerald ret = madera_init_overheat(&cs47l85->core);
262195a9049bSRichard Fitzgerald if (ret)
262295a9049bSRichard Fitzgerald goto error_core;
262395a9049bSRichard Fitzgerald
262495a9049bSRichard Fitzgerald ret = madera_request_irq(madera, MADERA_IRQ_DSP_IRQ1,
262595a9049bSRichard Fitzgerald "ADSP2 Compressed IRQ", cs47l85_adsp2_irq,
262695a9049bSRichard Fitzgerald cs47l85);
262795a9049bSRichard Fitzgerald if (ret) {
262895a9049bSRichard Fitzgerald dev_err(&pdev->dev, "Failed to request DSP IRQ: %d\n", ret);
262995a9049bSRichard Fitzgerald goto error_overheat;
263095a9049bSRichard Fitzgerald }
263195a9049bSRichard Fitzgerald
263295a9049bSRichard Fitzgerald ret = madera_set_irq_wake(madera, MADERA_IRQ_DSP_IRQ1, 1);
263395a9049bSRichard Fitzgerald if (ret)
263495a9049bSRichard Fitzgerald dev_warn(&pdev->dev, "Failed to set DSP IRQ wake: %d\n", ret);
263595a9049bSRichard Fitzgerald
263695a9049bSRichard Fitzgerald for (i = 0; i < CS47L85_NUM_ADSP; i++) {
263795a9049bSRichard Fitzgerald cs47l85->core.adsp[i].part = "cs47l85";
2638e1468202SSimon Trimmer cs47l85->core.adsp[i].cs_dsp.num = i + 1;
2639e1468202SSimon Trimmer cs47l85->core.adsp[i].cs_dsp.type = WMFW_ADSP2;
2640e1468202SSimon Trimmer cs47l85->core.adsp[i].cs_dsp.rev = 1;
2641e1468202SSimon Trimmer cs47l85->core.adsp[i].cs_dsp.dev = madera->dev;
2642e1468202SSimon Trimmer cs47l85->core.adsp[i].cs_dsp.regmap = madera->regmap_32bit;
264395a9049bSRichard Fitzgerald
2644e1468202SSimon Trimmer cs47l85->core.adsp[i].cs_dsp.base = wm_adsp2_control_bases[i];
2645e1468202SSimon Trimmer cs47l85->core.adsp[i].cs_dsp.mem = cs47l85_dsp_regions[i];
2646e1468202SSimon Trimmer cs47l85->core.adsp[i].cs_dsp.num_mems =
264795a9049bSRichard Fitzgerald ARRAY_SIZE(cs47l85_dsp1_regions);
264895a9049bSRichard Fitzgerald
264995a9049bSRichard Fitzgerald ret = wm_adsp2_init(&cs47l85->core.adsp[i]);
265095a9049bSRichard Fitzgerald if (ret) {
265195a9049bSRichard Fitzgerald for (--i; i >= 0; --i)
265295a9049bSRichard Fitzgerald wm_adsp2_remove(&cs47l85->core.adsp[i]);
265395a9049bSRichard Fitzgerald goto error_dsp_irq;
265495a9049bSRichard Fitzgerald }
265595a9049bSRichard Fitzgerald }
265695a9049bSRichard Fitzgerald
265795a9049bSRichard Fitzgerald madera_init_fll(madera, 1, MADERA_FLL1_CONTROL_1 - 1,
265895a9049bSRichard Fitzgerald &cs47l85->fll[0]);
265995a9049bSRichard Fitzgerald madera_init_fll(madera, 2, MADERA_FLL2_CONTROL_1 - 1,
266095a9049bSRichard Fitzgerald &cs47l85->fll[1]);
266195a9049bSRichard Fitzgerald madera_init_fll(madera, 3, MADERA_FLL3_CONTROL_1 - 1,
266295a9049bSRichard Fitzgerald &cs47l85->fll[2]);
266395a9049bSRichard Fitzgerald
266495a9049bSRichard Fitzgerald for (i = 0; i < ARRAY_SIZE(cs47l85_dai); i++)
266595a9049bSRichard Fitzgerald madera_init_dai(&cs47l85->core, i);
266695a9049bSRichard Fitzgerald
266795a9049bSRichard Fitzgerald /* Latch volume update bits */
266895a9049bSRichard Fitzgerald for (i = 0; i < ARRAY_SIZE(cs47l85_digital_vu); i++)
266995a9049bSRichard Fitzgerald regmap_update_bits(madera->regmap, cs47l85_digital_vu[i],
267095a9049bSRichard Fitzgerald MADERA_DIG_VU, MADERA_DIG_VU);
267195a9049bSRichard Fitzgerald
267295a9049bSRichard Fitzgerald pm_runtime_enable(&pdev->dev);
267395a9049bSRichard Fitzgerald pm_runtime_idle(&pdev->dev);
267495a9049bSRichard Fitzgerald
267595a9049bSRichard Fitzgerald ret = devm_snd_soc_register_component(&pdev->dev,
267695a9049bSRichard Fitzgerald &soc_component_dev_cs47l85,
267795a9049bSRichard Fitzgerald cs47l85_dai,
267895a9049bSRichard Fitzgerald ARRAY_SIZE(cs47l85_dai));
267995a9049bSRichard Fitzgerald if (ret < 0) {
268095a9049bSRichard Fitzgerald dev_err(&pdev->dev, "Failed to register component: %d\n", ret);
268195a9049bSRichard Fitzgerald goto error_pm_runtime;
268295a9049bSRichard Fitzgerald }
268395a9049bSRichard Fitzgerald
268495a9049bSRichard Fitzgerald return ret;
268595a9049bSRichard Fitzgerald
268695a9049bSRichard Fitzgerald error_pm_runtime:
268795a9049bSRichard Fitzgerald pm_runtime_disable(&pdev->dev);
268895a9049bSRichard Fitzgerald
268995a9049bSRichard Fitzgerald for (i = 0; i < CS47L85_NUM_ADSP; i++)
269095a9049bSRichard Fitzgerald wm_adsp2_remove(&cs47l85->core.adsp[i]);
269195a9049bSRichard Fitzgerald error_dsp_irq:
269295a9049bSRichard Fitzgerald madera_set_irq_wake(madera, MADERA_IRQ_DSP_IRQ1, 0);
269395a9049bSRichard Fitzgerald madera_free_irq(madera, MADERA_IRQ_DSP_IRQ1, cs47l85);
269495a9049bSRichard Fitzgerald error_overheat:
269595a9049bSRichard Fitzgerald madera_free_overheat(&cs47l85->core);
269695a9049bSRichard Fitzgerald error_core:
269795a9049bSRichard Fitzgerald madera_core_free(&cs47l85->core);
269895a9049bSRichard Fitzgerald
269995a9049bSRichard Fitzgerald return ret;
270095a9049bSRichard Fitzgerald }
270195a9049bSRichard Fitzgerald
cs47l85_remove(struct platform_device * pdev)2702f71d98e5SUwe Kleine-König static void cs47l85_remove(struct platform_device *pdev)
270395a9049bSRichard Fitzgerald {
270495a9049bSRichard Fitzgerald struct cs47l85 *cs47l85 = platform_get_drvdata(pdev);
270595a9049bSRichard Fitzgerald int i;
270695a9049bSRichard Fitzgerald
270795a9049bSRichard Fitzgerald pm_runtime_disable(&pdev->dev);
270895a9049bSRichard Fitzgerald
270995a9049bSRichard Fitzgerald for (i = 0; i < CS47L85_NUM_ADSP; i++)
271095a9049bSRichard Fitzgerald wm_adsp2_remove(&cs47l85->core.adsp[i]);
271195a9049bSRichard Fitzgerald
271295a9049bSRichard Fitzgerald madera_set_irq_wake(cs47l85->core.madera, MADERA_IRQ_DSP_IRQ1, 0);
271395a9049bSRichard Fitzgerald madera_free_irq(cs47l85->core.madera, MADERA_IRQ_DSP_IRQ1, cs47l85);
271495a9049bSRichard Fitzgerald madera_free_overheat(&cs47l85->core);
271595a9049bSRichard Fitzgerald madera_core_free(&cs47l85->core);
271695a9049bSRichard Fitzgerald }
271795a9049bSRichard Fitzgerald
271895a9049bSRichard Fitzgerald static struct platform_driver cs47l85_codec_driver = {
271995a9049bSRichard Fitzgerald .driver = {
272095a9049bSRichard Fitzgerald .name = "cs47l85-codec",
272195a9049bSRichard Fitzgerald },
272295a9049bSRichard Fitzgerald .probe = &cs47l85_probe,
2723f71d98e5SUwe Kleine-König .remove_new = cs47l85_remove,
272495a9049bSRichard Fitzgerald };
272595a9049bSRichard Fitzgerald
272695a9049bSRichard Fitzgerald module_platform_driver(cs47l85_codec_driver);
272795a9049bSRichard Fitzgerald
272895a9049bSRichard Fitzgerald MODULE_SOFTDEP("pre: madera irq-madera arizona-micsupp");
272995a9049bSRichard Fitzgerald MODULE_DESCRIPTION("ASoC CS47L85 driver");
273095a9049bSRichard Fitzgerald MODULE_AUTHOR("Nariman Poushin <nariman@opensource.cirrus.com>");
273195a9049bSRichard Fitzgerald MODULE_LICENSE("GPL v2");
273295a9049bSRichard Fitzgerald MODULE_ALIAS("platform:cs47l85-codec");
2733