diff options
author | Brian Austin <brian.austin@cirrus.com> | 2014-04-15 22:49:33 +0200 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-04-16 16:35:02 +0200 |
commit | a1253ef6d3fabfe60838cd417b0624ab53df285e (patch) | |
tree | b8d5744abb6e3a23e762166c1532393c46a1ef58 /sound/soc/codecs/cs42l51-i2c.c | |
parent | Linux 3.15-rc1 (diff) | |
download | linux-a1253ef6d3fabfe60838cd417b0624ab53df285e.tar.xz linux-a1253ef6d3fabfe60838cd417b0624ab53df285e.zip |
ASoC: cs42l51: split i2c from codec driver
This patch removes the i2c bus code from the codec driver and creates seperate i2c driver.
Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/codecs/cs42l51-i2c.c')
-rw-r--r-- | sound/soc/codecs/cs42l51-i2c.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/sound/soc/codecs/cs42l51-i2c.c b/sound/soc/codecs/cs42l51-i2c.c new file mode 100644 index 000000000000..cee51ae177c1 --- /dev/null +++ b/sound/soc/codecs/cs42l51-i2c.c @@ -0,0 +1,59 @@ +/* + * cs42l56.c -- CS42L51 ALSA SoC I2C audio driver + * + * Copyright 2014 CirrusLogic, Inc. + * + * Author: Brian Austin <brian.austin@cirrus.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + */ + +#include <linux/i2c.h> +#include <linux/module.h> +#include <sound/soc.h> + +#include "cs42l51.h" + +static struct i2c_device_id cs42l51_i2c_id[] = { + {"cs42l51", 0}, + {} +}; +MODULE_DEVICE_TABLE(i2c, cs42l51_i2c_id); + +static int cs42l51_i2c_probe(struct i2c_client *i2c, + const struct i2c_device_id *id) +{ + struct regmap_config config; + + config = cs42l51_regmap; + config.val_bits = 8; + config.reg_bits = 8; + + return cs42l51_probe(&i2c->dev, devm_regmap_init_i2c(i2c, &config)); +} + +static int cs42l51_i2c_remove(struct i2c_client *i2c) +{ + snd_soc_unregister_codec(&i2c->dev); + + return 0; +} + +static struct i2c_driver cs42l51_i2c_driver = { + .driver = { + .name = "cs42l51", + .owner = THIS_MODULE, + }, + .probe = cs42l51_i2c_probe, + .remove = cs42l51_i2c_remove, + .id_table = cs42l51_i2c_id, +}; + +module_i2c_driver(cs42l51_i2c_driver); + +MODULE_DESCRIPTION("ASoC CS42L51 I2C Driver"); +MODULE_AUTHOR("Brian Austin, Cirrus Logic Inc, <brian.austin@cirrus.com>"); +MODULE_LICENSE("GPL"); |