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

Merge remote-tracking branches 'asoc/fix/alc5632', 'asoc/fix/cs42l52',...

Merge remote-tracking branches 'asoc/fix/alc5632', 'asoc/fix/cs42l52', 'asoc/fix/cs42xxx8', 'asoc/fix/da732x', 'asoc/fix/davinci', 'asoc/fix/fsl-sai', 'asoc/fix/fsl-ssi' and 'asoc/fix/max98090' into asoc-linus
Loading
+12 −9
Original line number Original line Diff line number Diff line
@@ -20,15 +20,6 @@ Required properties:
                    have.
                    have.
- interrupt-parent: The phandle for the interrupt controller that
- interrupt-parent: The phandle for the interrupt controller that
                    services interrupts for this device.
                    services interrupts for this device.
- fsl,mode:         The operating mode for the SSI interface.
                    "i2s-slave" - I2S mode, SSI is clock slave
                    "i2s-master" - I2S mode, SSI is clock master
                    "lj-slave" - left-justified mode, SSI is clock slave
                    "lj-master" - l.j. mode, SSI is clock master
                    "rj-slave" - right-justified mode, SSI is clock slave
                    "rj-master" - r.j., SSI is clock master
                    "ac97-slave" - AC97 mode, SSI is clock slave
                    "ac97-master" - AC97 mode, SSI is clock master
- fsl,playback-dma: Phandle to a node for the DMA channel to use for
- fsl,playback-dma: Phandle to a node for the DMA channel to use for
                    playback of audio.  This is typically dictated by SOC
                    playback of audio.  This is typically dictated by SOC
                    design.  See the notes below.
                    design.  See the notes below.
@@ -47,6 +38,9 @@ Required properties:
                    be connected together, and SRFS and STFS be connected
                    be connected together, and SRFS and STFS be connected
                    together.  This would still allow different sample sizes,
                    together.  This would still allow different sample sizes,
                    but not different sample rates.
                    but not different sample rates.
 - clocks:          "ipg" - Required clock for the SSI unit
                    "baud" - Required clock for SSI master mode. Otherwise this
		      clock is not used


Required are also ac97 link bindings if ac97 is used. See
Required are also ac97 link bindings if ac97 is used. See
Documentation/devicetree/bindings/sound/soc-ac97link.txt for the necessary
Documentation/devicetree/bindings/sound/soc-ac97link.txt for the necessary
@@ -64,6 +58,15 @@ Optional properties:
		    Documentation/devicetree/bindings/dma/dma.txt.
		    Documentation/devicetree/bindings/dma/dma.txt.
- dma-names:	    Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq
- dma-names:	    Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq
		    is not defined.
		    is not defined.
- fsl,mode:         The operating mode for the SSI interface.
                    "i2s-slave" - I2S mode, SSI is clock slave
                    "i2s-master" - I2S mode, SSI is clock master
                    "lj-slave" - left-justified mode, SSI is clock slave
                    "lj-master" - l.j. mode, SSI is clock master
                    "rj-slave" - right-justified mode, SSI is clock slave
                    "rj-master" - r.j., SSI is clock master
                    "ac97-slave" - AC97 mode, SSI is clock slave
                    "ac97-master" - AC97 mode, SSI is clock master


Child 'codec' node required properties:
Child 'codec' node required properties:
- compatible:       Compatible list, contains the name of the codec
- compatible:       Compatible list, contains the name of the codec
+8 −2
Original line number Original line Diff line number Diff line
@@ -1061,7 +1061,6 @@ static int alc5632_resume(struct snd_soc_codec *codec)
static int alc5632_probe(struct snd_soc_codec *codec)
static int alc5632_probe(struct snd_soc_codec *codec)
{
{
	struct alc5632_priv *alc5632 = snd_soc_codec_get_drvdata(codec);
	struct alc5632_priv *alc5632 = snd_soc_codec_get_drvdata(codec);
	int ret;


	/* power on device  */
	/* power on device  */
	alc5632_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
	alc5632_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
@@ -1075,7 +1074,7 @@ static int alc5632_probe(struct snd_soc_codec *codec)
		return -EINVAL;
		return -EINVAL;
	}
	}


	return ret;
	return 0;
}
}


/* power down chip */
/* power down chip */
@@ -1191,11 +1190,18 @@ static const struct i2c_device_id alc5632_i2c_table[] = {
};
};
MODULE_DEVICE_TABLE(i2c, alc5632_i2c_table);
MODULE_DEVICE_TABLE(i2c, alc5632_i2c_table);


static const struct of_device_id alc5632_of_match[] = {
	{ .compatible = "realtek,alc5632", },
	{ }
};
MODULE_DEVICE_TABLE(of, alc5632_of_match);

/* i2c codec control layer */
/* i2c codec control layer */
static struct i2c_driver alc5632_i2c_driver = {
static struct i2c_driver alc5632_i2c_driver = {
	.driver = {
	.driver = {
		.name = "alc5632",
		.name = "alc5632",
		.owner = THIS_MODULE,
		.owner = THIS_MODULE,
		.of_match_table = of_match_ptr(alc5632_of_match),
	},
	},
	.probe = alc5632_i2c_probe,
	.probe = alc5632_i2c_probe,
	.remove =  alc5632_i2c_remove,
	.remove =  alc5632_i2c_remove,
+1 −1
Original line number Original line Diff line number Diff line
@@ -1259,7 +1259,7 @@ static int cs42l52_i2c_probe(struct i2c_client *i2c_client,
	}
	}


	dev_info(&i2c_client->dev, "Cirrus Logic CS42L52, Revision: %02X\n",
	dev_info(&i2c_client->dev, "Cirrus Logic CS42L52, Revision: %02X\n",
			reg & 0xFF);
		 reg & CS42L52_CHIP_REV_MASK);


	/* Set Platform Data */
	/* Set Platform Data */
	if (cs42l52->pdata.mica_diff_cfg)
	if (cs42l52->pdata.mica_diff_cfg)
+1 −1
Original line number Original line Diff line number Diff line
@@ -37,7 +37,7 @@
#define CS42L52_CHIP_REV_A0			0x00
#define CS42L52_CHIP_REV_A0			0x00
#define CS42L52_CHIP_REV_A1			0x01
#define CS42L52_CHIP_REV_A1			0x01
#define CS42L52_CHIP_REV_B0			0x02
#define CS42L52_CHIP_REV_B0			0x02
#define CS42L52_CHIP_REV_MASK			0x03
#define CS42L52_CHIP_REV_MASK			0x07


#define CS42L52_PWRCTL1				0x02
#define CS42L52_PWRCTL1				0x02
#define CS42L52_PWRCTL1_PDN_ALL			0x9F
#define CS42L52_PWRCTL1_PDN_ALL			0x9F
+5 −6
Original line number Original line Diff line number Diff line
@@ -495,17 +495,16 @@ int cs42xx8_probe(struct device *dev, struct regmap *regmap)
	regcache_cache_bypass(cs42xx8->regmap, true);
	regcache_cache_bypass(cs42xx8->regmap, true);


	/* Validate the chip ID */
	/* Validate the chip ID */
	regmap_read(cs42xx8->regmap, CS42XX8_CHIPID, &val);
	ret = regmap_read(cs42xx8->regmap, CS42XX8_CHIPID, &val);
	if (val < 0) {
	if (ret < 0) {
		dev_err(dev, "failed to get device ID: %x", val);
		dev_err(dev, "failed to get device ID, ret = %d", ret);
		ret = -EINVAL;
		goto err_enable;
		goto err_enable;
	}
	}


	/* The top four bits of the chip ID should be 0000 */
	/* The top four bits of the chip ID should be 0000 */
	if ((val & CS42XX8_CHIPID_CHIP_ID_MASK) != 0x00) {
	if (((val & CS42XX8_CHIPID_CHIP_ID_MASK) >> 4) != 0x00) {
		dev_err(dev, "unmatched chip ID: %d\n",
		dev_err(dev, "unmatched chip ID: %d\n",
				val & CS42XX8_CHIPID_CHIP_ID_MASK);
			(val & CS42XX8_CHIPID_CHIP_ID_MASK) >> 4);
		ret = -EINVAL;
		ret = -EINVAL;
		goto err_enable;
		goto err_enable;
	}
	}
Loading