2019-06-04 11:11:33 +03:00
// SPDX-License-Identifier: GPL-2.0-only
2014-04-16 00:49:33 +04:00
/*
* cs42l56 . c - - CS42L51 ALSA SoC I2C audio driver
*
* Copyright 2014 CirrusLogic , Inc .
*
* Author : Brian Austin < brian . austin @ cirrus . com >
*/
# 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 ) ;
2022-03-25 20:07:34 +03:00
static int cs42l51_i2c_probe ( struct i2c_client * i2c )
2014-04-16 00:49:33 +04:00
{
struct regmap_config config ;
config = cs42l51_regmap ;
return cs42l51_probe ( & i2c - > dev , devm_regmap_init_i2c ( i2c , & config ) ) ;
}
2022-08-15 11:02:30 +03:00
static void cs42l51_i2c_remove ( struct i2c_client * i2c )
2019-04-03 16:23:32 +03:00
{
2022-01-10 10:18:32 +03:00
cs42l51_remove ( & i2c - > dev ) ;
2019-04-03 16:23:32 +03:00
}
2019-04-03 16:23:36 +03:00
static const struct dev_pm_ops cs42l51_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS ( cs42l51_suspend , cs42l51_resume )
} ;
2014-04-16 00:49:33 +04:00
static struct i2c_driver cs42l51_i2c_driver = {
. driver = {
. name = " cs42l51 " ,
2014-11-12 17:40:44 +03:00
. of_match_table = cs42l51_of_match ,
2019-04-03 16:23:36 +03:00
. pm = & cs42l51_pm_ops ,
2014-04-16 00:49:33 +04:00
} ,
2023-04-25 12:57:16 +03:00
. probe = cs42l51_i2c_probe ,
2019-04-03 16:23:32 +03:00
. remove = cs42l51_i2c_remove ,
2014-04-16 00:49:33 +04:00
. 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 " ) ;