10c2d6964SLars-Peter Clausen /* 20c2d6964SLars-Peter Clausen * ADAV803 audio driver 30c2d6964SLars-Peter Clausen * 40c2d6964SLars-Peter Clausen * Copyright 2014 Analog Devices Inc. 50c2d6964SLars-Peter Clausen * 60c2d6964SLars-Peter Clausen * Licensed under the GPL-2. 70c2d6964SLars-Peter Clausen */ 80c2d6964SLars-Peter Clausen 90c2d6964SLars-Peter Clausen #include <linux/module.h> 100c2d6964SLars-Peter Clausen #include <linux/i2c.h> 110c2d6964SLars-Peter Clausen #include <linux/regmap.h> 120c2d6964SLars-Peter Clausen 130c2d6964SLars-Peter Clausen #include <sound/soc.h> 140c2d6964SLars-Peter Clausen 150c2d6964SLars-Peter Clausen #include "adav80x.h" 160c2d6964SLars-Peter Clausen 170c2d6964SLars-Peter Clausen static const struct i2c_device_id adav803_id[] = { 180c2d6964SLars-Peter Clausen { "adav803", 0 }, 190c2d6964SLars-Peter Clausen { } 200c2d6964SLars-Peter Clausen }; 210c2d6964SLars-Peter Clausen MODULE_DEVICE_TABLE(i2c, adav803_id); 220c2d6964SLars-Peter Clausen 230c2d6964SLars-Peter Clausen static int adav803_probe(struct i2c_client *client, 240c2d6964SLars-Peter Clausen const struct i2c_device_id *id) 250c2d6964SLars-Peter Clausen { 260c2d6964SLars-Peter Clausen return adav80x_bus_probe(&client->dev, 270c2d6964SLars-Peter Clausen devm_regmap_init_i2c(client, &adav80x_regmap_config)); 280c2d6964SLars-Peter Clausen } 290c2d6964SLars-Peter Clausen 300c2d6964SLars-Peter Clausen static int adav803_remove(struct i2c_client *client) 310c2d6964SLars-Peter Clausen { 320c2d6964SLars-Peter Clausen snd_soc_unregister_codec(&client->dev); 330c2d6964SLars-Peter Clausen return 0; 340c2d6964SLars-Peter Clausen } 350c2d6964SLars-Peter Clausen 360c2d6964SLars-Peter Clausen static struct i2c_driver adav803_driver = { 370c2d6964SLars-Peter Clausen .driver = { 380c2d6964SLars-Peter Clausen .name = "adav803", 390c2d6964SLars-Peter Clausen .owner = THIS_MODULE, 400c2d6964SLars-Peter Clausen }, 410c2d6964SLars-Peter Clausen .probe = adav803_probe, 420c2d6964SLars-Peter Clausen .remove = adav803_remove, 430c2d6964SLars-Peter Clausen .id_table = adav803_id, 440c2d6964SLars-Peter Clausen }; 450c2d6964SLars-Peter Clausen module_i2c_driver(adav803_driver); 460c2d6964SLars-Peter Clausen 470c2d6964SLars-Peter Clausen MODULE_DESCRIPTION("ASoC ADAV803 driver"); 480c2d6964SLars-Peter Clausen MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>"); 490c2d6964SLars-Peter Clausen MODULE_AUTHOR("Yi Li <yi.li@analog.com>>"); 500c2d6964SLars-Peter Clausen MODULE_LICENSE("GPL"); 51