ASoC: ssm2602: add device tree bindings
Allow the ssm2602/ssm2603/ssm2604 codec driver to be instantiated from the device tree. Also, add Kconfig prompts to allow manual selection of both the I2C and SPI configuration versions of the driver. Signed-off-by: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> Signed-off-by: Mark Brown <broonie@kernel.org> Acked-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
parent
fe2a08b3bf
commit
555b9ee136
|
@ -0,0 +1,19 @@
|
|||
Analog Devices SSM2602, SSM2603 and SSM2604 I2S audio CODEC devices
|
||||
|
||||
SSM2602 support both I2C and SPI as the configuration interface,
|
||||
the selection is made by the MODE strap-in pin.
|
||||
SSM2603 and SSM2604 only support I2C as the configuration interface.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : One of "adi,ssm2602", "adi,ssm2603" or "adi,ssm2604"
|
||||
|
||||
- reg : the I2C address of the device for I2C, the chip select
|
||||
number for SPI.
|
||||
|
||||
Example:
|
||||
|
||||
ssm2602: ssm2602@1a {
|
||||
compatible = "adi,ssm2602";
|
||||
reg = <0x1a>;
|
||||
};
|
|
@ -520,12 +520,16 @@ config SND_SOC_SSM2602
|
|||
tristate
|
||||
|
||||
config SND_SOC_SSM2602_SPI
|
||||
tristate "Analog Devices SSM2602 CODEC - SPI"
|
||||
depends on SPI_MASTER
|
||||
select SND_SOC_SSM2602
|
||||
tristate
|
||||
select REGMAP_SPI
|
||||
|
||||
config SND_SOC_SSM2602_I2C
|
||||
tristate "Analog Devices SSM2602 CODEC - I2C"
|
||||
depends on I2C
|
||||
select SND_SOC_SSM2602
|
||||
tristate
|
||||
select REGMAP_I2C
|
||||
|
||||
config SND_SOC_STA32X
|
||||
tristate
|
||||
|
|
|
@ -41,10 +41,19 @@ static const struct i2c_device_id ssm2602_i2c_id[] = {
|
|||
};
|
||||
MODULE_DEVICE_TABLE(i2c, ssm2602_i2c_id);
|
||||
|
||||
static const struct of_device_id ssm2602_of_match[] = {
|
||||
{ .compatible = "adi,ssm2602", },
|
||||
{ .compatible = "adi,ssm2603", },
|
||||
{ .compatible = "adi,ssm2604", },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, ssm2602_of_match);
|
||||
|
||||
static struct i2c_driver ssm2602_i2c_driver = {
|
||||
.driver = {
|
||||
.name = "ssm2602",
|
||||
.owner = THIS_MODULE,
|
||||
.of_match_table = ssm2602_of_match,
|
||||
},
|
||||
.probe = ssm2602_i2c_probe,
|
||||
.remove = ssm2602_i2c_remove,
|
||||
|
|
|
@ -26,10 +26,17 @@ static int ssm2602_spi_remove(struct spi_device *spi)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id ssm2602_of_match[] = {
|
||||
{ .compatible = "adi,ssm2602", },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(of, ssm2602_of_match);
|
||||
|
||||
static struct spi_driver ssm2602_spi_driver = {
|
||||
.driver = {
|
||||
.name = "ssm2602",
|
||||
.owner = THIS_MODULE,
|
||||
.of_match_table = ssm2602_of_match,
|
||||
},
|
||||
.probe = ssm2602_spi_probe,
|
||||
.remove = ssm2602_spi_remove,
|
||||
|
|
Loading…
Reference in New Issue