> > > > Just for my understanding, are you suggesting to set a device tree > > > > property to force a fixed behavior in the driver ? > > > Yes. > > Why should we use a fixed behavior ? > The things that are fixed by the design should be fixed. > > > The device shares pins between the line inputs and the DMIC inputs so at > > > least some of the configuration is going to be determinted at system > > > design time, that will fix the usable values of at least one of the > > > controls which ought to be reflected in the runtime behaviour. > > In our design we use: > > - pin 1: DMIC_CLK > > - pin 24: LINEIN2R > > - pin 26: LINEIN2L > > - pin 27: DMIC_DATA > > we have no pins shared among DMIC and LINEIN. > This means that DMICDAT2 is not usefully selectable at runtime, you've > got IN1 as digital and IN2 as analogue, so while the DMIC/ADC switch is > useful the DMIC1/2 switch is not. A customer could have the following working configuration - pin 1: DMIC_CLK - pin 24: LINEIN2R - pin 25: DMICDAT2 - pin 26: LINEIN2L - pin 27: DMICDAT1 with no shared pins: here there's the chance to select DMIC1, DMIC2 and LINEIN2 at runtime: I can't find a reason for a fixed behavior. Can you please elaborate ?