Loading Documentation/devicetree/bindings/sound/wm8750.txt 0 → 100644 +18 −0 Original line number Original line Diff line number Diff line WM8750 and WM8987 audio CODECs These devices support both I2C and SPI (configured with pin strapping on the board). Required properties: - compatible : "wlf,wm8750" or "wlf,wm8987" - reg : the I2C address of the device for I2C, the chip select number for SPI. Example: codec: wm8750@1a { compatible = "wlf,wm8750"; reg = <0x1a>; }; sound/soc/codecs/wm8750.c +10 −0 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <linux/platform_device.h> #include <linux/platform_device.h> #include <linux/spi/spi.h> #include <linux/spi/spi.h> #include <linux/slab.h> #include <linux/slab.h> #include <linux/of_device.h> #include <sound/core.h> #include <sound/core.h> #include <sound/pcm.h> #include <sound/pcm.h> #include <sound/pcm_params.h> #include <sound/pcm_params.h> Loading Loading @@ -751,6 +752,13 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8750 = { .reg_cache_default = wm8750_reg, .reg_cache_default = wm8750_reg, }; }; static const struct of_device_id wm8750_of_match[] = { { .compatible = "wlf,wm8750", }, { .compatible = "wlf,wm8987", }, { } }; MODULE_DEVICE_TABLE(of, wm8750_of_match); #if defined(CONFIG_SPI_MASTER) #if defined(CONFIG_SPI_MASTER) static int __devinit wm8750_spi_probe(struct spi_device *spi) static int __devinit wm8750_spi_probe(struct spi_device *spi) { { Loading Loading @@ -789,6 +797,7 @@ static struct spi_driver wm8750_spi_driver = { .driver = { .driver = { .name = "wm8750-codec", .name = "wm8750-codec", .owner = THIS_MODULE, .owner = THIS_MODULE, .of_match_table = wm8750_of_match, }, }, .id_table = wm8750_spi_ids, .id_table = wm8750_spi_ids, .probe = wm8750_spi_probe, .probe = wm8750_spi_probe, Loading Loading @@ -835,6 +844,7 @@ static struct i2c_driver wm8750_i2c_driver = { .driver = { .driver = { .name = "wm8750-codec", .name = "wm8750-codec", .owner = THIS_MODULE, .owner = THIS_MODULE, .of_match_table = wm8750_of_match, }, }, .probe = wm8750_i2c_probe, .probe = wm8750_i2c_probe, .remove = __devexit_p(wm8750_i2c_remove), .remove = __devexit_p(wm8750_i2c_remove), Loading Loading
Documentation/devicetree/bindings/sound/wm8750.txt 0 → 100644 +18 −0 Original line number Original line Diff line number Diff line WM8750 and WM8987 audio CODECs These devices support both I2C and SPI (configured with pin strapping on the board). Required properties: - compatible : "wlf,wm8750" or "wlf,wm8987" - reg : the I2C address of the device for I2C, the chip select number for SPI. Example: codec: wm8750@1a { compatible = "wlf,wm8750"; reg = <0x1a>; };
sound/soc/codecs/wm8750.c +10 −0 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <linux/platform_device.h> #include <linux/platform_device.h> #include <linux/spi/spi.h> #include <linux/spi/spi.h> #include <linux/slab.h> #include <linux/slab.h> #include <linux/of_device.h> #include <sound/core.h> #include <sound/core.h> #include <sound/pcm.h> #include <sound/pcm.h> #include <sound/pcm_params.h> #include <sound/pcm_params.h> Loading Loading @@ -751,6 +752,13 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8750 = { .reg_cache_default = wm8750_reg, .reg_cache_default = wm8750_reg, }; }; static const struct of_device_id wm8750_of_match[] = { { .compatible = "wlf,wm8750", }, { .compatible = "wlf,wm8987", }, { } }; MODULE_DEVICE_TABLE(of, wm8750_of_match); #if defined(CONFIG_SPI_MASTER) #if defined(CONFIG_SPI_MASTER) static int __devinit wm8750_spi_probe(struct spi_device *spi) static int __devinit wm8750_spi_probe(struct spi_device *spi) { { Loading Loading @@ -789,6 +797,7 @@ static struct spi_driver wm8750_spi_driver = { .driver = { .driver = { .name = "wm8750-codec", .name = "wm8750-codec", .owner = THIS_MODULE, .owner = THIS_MODULE, .of_match_table = wm8750_of_match, }, }, .id_table = wm8750_spi_ids, .id_table = wm8750_spi_ids, .probe = wm8750_spi_probe, .probe = wm8750_spi_probe, Loading Loading @@ -835,6 +844,7 @@ static struct i2c_driver wm8750_i2c_driver = { .driver = { .driver = { .name = "wm8750-codec", .name = "wm8750-codec", .owner = THIS_MODULE, .owner = THIS_MODULE, .of_match_table = wm8750_of_match, }, }, .probe = wm8750_i2c_probe, .probe = wm8750_i2c_probe, .remove = __devexit_p(wm8750_i2c_remove), .remove = __devexit_p(wm8750_i2c_remove), Loading