Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * es8328-i2c.c  --  ES8328 ALSA SoC I2C Audio driver
0004  *
0005  * Copyright 2014 Sutajio Ko-Usagi PTE LTD
0006  *
0007  * Author: Sean Cross <xobs@kosagi.com>
0008  */
0009 
0010 #include <linux/module.h>
0011 #include <linux/i2c.h>
0012 #include <linux/regmap.h>
0013 
0014 #include <sound/soc.h>
0015 
0016 #include "es8328.h"
0017 
0018 static const struct i2c_device_id es8328_id[] = {
0019     { "es8328", 0 },
0020     { "es8388", 0 },
0021     { }
0022 };
0023 MODULE_DEVICE_TABLE(i2c, es8328_id);
0024 
0025 static const struct of_device_id es8328_of_match[] = {
0026     { .compatible = "everest,es8328", },
0027     { .compatible = "everest,es8388", },
0028     { }
0029 };
0030 MODULE_DEVICE_TABLE(of, es8328_of_match);
0031 
0032 static int es8328_i2c_probe(struct i2c_client *i2c)
0033 {
0034     return es8328_probe(&i2c->dev,
0035             devm_regmap_init_i2c(i2c, &es8328_regmap_config));
0036 }
0037 
0038 static struct i2c_driver es8328_i2c_driver = {
0039     .driver = {
0040         .name       = "es8328",
0041         .of_match_table = es8328_of_match,
0042     },
0043     .probe_new = es8328_i2c_probe,
0044     .id_table = es8328_id,
0045 };
0046 
0047 module_i2c_driver(es8328_i2c_driver);
0048 
0049 MODULE_DESCRIPTION("ASoC ES8328 audio CODEC I2C driver");
0050 MODULE_AUTHOR("Sean Cross <xobs@kosagi.com>");
0051 MODULE_LICENSE("GPL");