Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 48e028ec authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: Support configuration of WM8958 microphone bias analogue parameters



The WM8958 has a different microphone bias architecture to WM8994 so needs
different configuration to WM8994. Support this in platform data.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
parent 9b7c525d
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -108,13 +108,16 @@ struct wm8994_pdata {
	 */
	int micdet_irq;

        /* Microphone biases: 0=0.9*AVDD1 1=0.65*AVVD1 */
        /* WM8994 microphone biases: 0=0.9*AVDD1 1=0.65*AVVD1 */
        unsigned int micbias1_lvl:1;
        unsigned int micbias2_lvl:1;

        /* Jack detect threashold levels, see datasheet for values */
        /* WM8994 jack detect threashold levels, see datasheet for values */
        unsigned int jd_scthr:2;
        unsigned int jd_thr:2;

	/* WM8958 microphone bias configuration */
	int micbias[2];
};

#endif
+2 −0
Original line number Diff line number Diff line
@@ -63,6 +63,8 @@
#define WM8994_MICBIAS                          0x3A
#define WM8994_LDO_1                            0x3B
#define WM8994_LDO_2                            0x3C
#define WM8958_MICBIAS1				0x3D
#define WM8958_MICBIAS2				0x3E
#define WM8994_CHARGE_PUMP_1                    0x4C
#define WM8958_CHARGE_PUMP_2                    0x4D
#define WM8994_CLASS_W_1                        0x51
+7 −0
Original line number Diff line number Diff line
@@ -2855,6 +2855,13 @@ static void wm8994_handle_pdata(struct wm8994_priv *wm8994)
	else
		snd_soc_add_controls(wm8994->codec, wm8994_eq_controls,
				     ARRAY_SIZE(wm8994_eq_controls));

	for (i = 0; i < ARRAY_SIZE(pdata->micbias); i++) {
		if (pdata->micbias[i]) {
			snd_soc_write(codec, WM8958_MICBIAS1 + i,
				pdata->micbias[i] & 0xffff);
		}
	}
}

/**