2011/12/2 Lars-Peter Clausen lars@metafoo.de:
The middle part(the control) of the path must either be a control attached to the mixer on the left side(the sink) or a element of the mux's enum if a mux is on the left side. If the left side is neither a mixer or a mux the middle part is ignored.
The other problem probably is that you have one mux which lets you switch between single-ended analog input, differential analog input and digital input. The first two options are routed through PGA and ADC the later not.
I can understand. The "digital input" description shouldn't be at snd_soc_dpram_route description. So, I've modified like below. These satisfies your showed condition.
/* Supply */ {"DAC", NULL, "MCLK"}, {"ADC", NULL, "MCLK"}, {"DAC", NULL, "PLL"}, {"ADC", NULL, "PLL"},
/* output mixer */ {"Output Mixer", "PGA Switch", "PGA"}, {"Output Mixer", "DAC Switch", "DAC"}, {"Output Mixer", "Line in Switch", "LIN"},
/* outputs */ {"LOUT", NULL, "Output Mixer"}, {"SPOUT", NULL, "Output Mixer"},
/* input */ {"Input Mux", "Analog MIC SingleEnded in", "MIN"}, {"Input Mux", "Analog MIC Differential in", "MIN"}, {"ADC", NULL, "Input Mux"},
Thanks, tomoya