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

Commit e303c42d authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branch 'asoc/topic/adau1701' into asoc-next

parents 042c325a 9190aeb4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ config SND_SOC_ALL_CODECS
	select SND_SOC_AD73311
	select SND_SOC_ADAU1373 if I2C
	select SND_SOC_ADAV80X if SND_SOC_I2C_AND_SPI
	select SND_SOC_ADAU1701 if I2C
	select SND_SOC_ADS117X
	select SND_SOC_AK4104 if SPI_MASTER
	select SND_SOC_AK4535 if I2C
+14 −11
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@
#define ADAU1701_OSCIPOW_OPD		0x04
#define ADAU1701_DACSET_DACINIT		1

#define ADAU1707_CLKDIV_UNSET		(-1UL)
#define ADAU1707_CLKDIV_UNSET		(-1U)

#define ADAU1701_FIRMWARE "adau1701.bin"

@@ -247,21 +247,21 @@ static int adau1701_reset(struct snd_soc_codec *codec, unsigned int clkdiv)
	    gpio_is_valid(adau1701->gpio_pll_mode[1])) {
		switch (clkdiv) {
		case 64:
			gpio_set_value(adau1701->gpio_pll_mode[0], 0);
			gpio_set_value(adau1701->gpio_pll_mode[1], 0);
			gpio_set_value_cansleep(adau1701->gpio_pll_mode[0], 0);
			gpio_set_value_cansleep(adau1701->gpio_pll_mode[1], 0);
			break;
		case 256:
			gpio_set_value(adau1701->gpio_pll_mode[0], 0);
			gpio_set_value(adau1701->gpio_pll_mode[1], 1);
			gpio_set_value_cansleep(adau1701->gpio_pll_mode[0], 0);
			gpio_set_value_cansleep(adau1701->gpio_pll_mode[1], 1);
			break;
		case 384:
			gpio_set_value(adau1701->gpio_pll_mode[0], 1);
			gpio_set_value(adau1701->gpio_pll_mode[1], 0);
			gpio_set_value_cansleep(adau1701->gpio_pll_mode[0], 1);
			gpio_set_value_cansleep(adau1701->gpio_pll_mode[1], 0);
			break;
		case 0:	/* fallback */
		case 512:
			gpio_set_value(adau1701->gpio_pll_mode[0], 1);
			gpio_set_value(adau1701->gpio_pll_mode[1], 1);
			gpio_set_value_cansleep(adau1701->gpio_pll_mode[0], 1);
			gpio_set_value_cansleep(adau1701->gpio_pll_mode[1], 1);
			break;
		}
	}
@@ -269,10 +269,10 @@ static int adau1701_reset(struct snd_soc_codec *codec, unsigned int clkdiv)
	adau1701->pll_clkdiv = clkdiv;

	if (gpio_is_valid(adau1701->gpio_nreset)) {
		gpio_set_value(adau1701->gpio_nreset, 0);
		gpio_set_value_cansleep(adau1701->gpio_nreset, 0);
		/* minimum reset time is 20ns */
		udelay(1);
		gpio_set_value(adau1701->gpio_nreset, 1);
		gpio_set_value_cansleep(adau1701->gpio_nreset, 1);
		/* power-up time may be as long as 85ms */
		mdelay(85);
	}
@@ -734,7 +734,10 @@ static int adau1701_i2c_remove(struct i2c_client *client)
}

static const struct i2c_device_id adau1701_i2c_id[] = {
	{ "adau1401", 0 },
	{ "adau1401a", 0 },
	{ "adau1701", 0 },
	{ "adau1702", 0 },
	{ }
};
MODULE_DEVICE_TABLE(i2c, adau1701_i2c_id);