Commit 27ded041 authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: Factor out 7 bit register 9 bit data SPI write



This converts all the Wolfson drivers using this format (the only devices
that do) except WM8753 to use it.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 8d50e447
Loading
Loading
Loading
Loading
+0 −25
Original line number Diff line number Diff line
@@ -737,30 +737,6 @@ static struct spi_driver wm8510_spi_driver = {
	.probe		= wm8510_spi_probe,
	.remove		= __devexit_p(wm8510_spi_remove),
};

static int wm8510_spi_write(struct spi_device *spi, const char *data, int len)
{
	struct spi_transfer t;
	struct spi_message m;
	u8 msg[2];

	if (len <= 0)
		return 0;

	msg[0] = data[0];
	msg[1] = data[1];

	spi_message_init(&m);
	memset(&t, 0, (sizeof t));

	t.tx_buf = &msg[0];
	t.len = len;

	spi_message_add_tail(&t, &m);
	spi_sync(spi, &m);

	return len;
}
#endif /* CONFIG_SPI_MASTER */

static int wm8510_probe(struct platform_device *pdev)
@@ -790,7 +766,6 @@ static int wm8510_probe(struct platform_device *pdev)
#endif
#if defined(CONFIG_SPI_MASTER)
	if (setup->spi) {
		codec->hw_write = (hw_write_t)wm8510_spi_write;
		ret = spi_register_driver(&wm8510_spi_driver);
		if (ret != 0)
			printk(KERN_ERR "can't add spi driver");
+0 −25
Original line number Diff line number Diff line
@@ -425,30 +425,6 @@ static struct spi_driver wm8728_spi_driver = {
	.probe		= wm8728_spi_probe,
	.remove		= __devexit_p(wm8728_spi_remove),
};

static int wm8728_spi_write(struct spi_device *spi, const char *data, int len)
{
	struct spi_transfer t;
	struct spi_message m;
	u8 msg[2];

	if (len <= 0)
		return 0;

	msg[0] = data[0];
	msg[1] = data[1];

	spi_message_init(&m);
	memset(&t, 0, (sizeof t));

	t.tx_buf = &msg[0];
	t.len = len;

	spi_message_add_tail(&t, &m);
	spi_sync(spi, &m);

	return len;
}
#endif /* CONFIG_SPI_MASTER */

static int wm8728_probe(struct platform_device *pdev)
@@ -478,7 +454,6 @@ static int wm8728_probe(struct platform_device *pdev)
#endif
#if defined(CONFIG_SPI_MASTER)
	if (setup->spi) {
		codec->hw_write = (hw_write_t)wm8728_spi_write;
		ret = spi_register_driver(&wm8728_spi_driver);
		if (ret != 0)
			printk(KERN_ERR "can't add spi driver");
+0 −25
Original line number Diff line number Diff line
@@ -591,30 +591,6 @@ static void wm8731_unregister(struct wm8731_priv *wm8731)
}

#if defined(CONFIG_SPI_MASTER)
static int wm8731_spi_write(struct spi_device *spi, const char *data, int len)
{
	struct spi_transfer t;
	struct spi_message m;
	u8 msg[2];

	if (len <= 0)
		return 0;

	msg[0] = data[0];
	msg[1] = data[1];

	spi_message_init(&m);
	memset(&t, 0, (sizeof t));

	t.tx_buf = &msg[0];
	t.len = len;

	spi_message_add_tail(&t, &m);
	spi_sync(spi, &m);

	return len;
}

static int __devinit wm8731_spi_probe(struct spi_device *spi)
{
	struct snd_soc_codec *codec;
@@ -626,7 +602,6 @@ static int __devinit wm8731_spi_probe(struct spi_device *spi)

	codec = &wm8731->codec;
	codec->control_data = spi;
	codec->hw_write = (hw_write_t)wm8731_spi_write;
	codec->dev = &spi->dev;

	dev_set_drvdata(&spi->dev, wm8731);
+0 −25
Original line number Diff line number Diff line
@@ -911,30 +911,6 @@ static struct spi_driver wm8750_spi_driver = {
	.probe		= wm8750_spi_probe,
	.remove		= __devexit_p(wm8750_spi_remove),
};

static int wm8750_spi_write(struct spi_device *spi, const char *data, int len)
{
	struct spi_transfer t;
	struct spi_message m;
	u8 msg[2];

	if (len <= 0)
		return 0;

	msg[0] = data[0];
	msg[1] = data[1];

	spi_message_init(&m);
	memset(&t, 0, (sizeof t));

	t.tx_buf = &msg[0];
	t.len = len;

	spi_message_add_tail(&t, &m);
	spi_sync(spi, &m);

	return len;
}
#endif

static int wm8750_probe(struct platform_device *pdev)
@@ -973,7 +949,6 @@ static int wm8750_probe(struct platform_device *pdev)
#endif
#if defined(CONFIG_SPI_MASTER)
	if (setup->spi) {
		codec->hw_write = (hw_write_t)wm8750_spi_write;
		ret = spi_register_driver(&wm8750_spi_driver);
		if (ret != 0)
			printk(KERN_ERR "can't add spi driver");
+0 −25
Original line number Diff line number Diff line
@@ -979,30 +979,6 @@ static struct i2c_driver wm8988_i2c_driver = {
#endif

#if defined(CONFIG_SPI_MASTER)
static int wm8988_spi_write(struct spi_device *spi, const char *data, int len)
{
	struct spi_transfer t;
	struct spi_message m;
	u8 msg[2];

	if (len <= 0)
		return 0;

	msg[0] = data[0];
	msg[1] = data[1];

	spi_message_init(&m);
	memset(&t, 0, (sizeof t));

	t.tx_buf = &msg[0];
	t.len = len;

	spi_message_add_tail(&t, &m);
	spi_sync(spi, &m);

	return len;
}

static int __devinit wm8988_spi_probe(struct spi_device *spi)
{
	struct wm8988_priv *wm8988;
@@ -1013,7 +989,6 @@ static int __devinit wm8988_spi_probe(struct spi_device *spi)
		return -ENOMEM;

	codec = &wm8988->codec;
	codec->hw_write = (hw_write_t)wm8988_spi_write;
	codec->control_data = spi;
	codec->dev = &spi->dev;

Loading