2019-06-04 11:11:33 +03:00
// SPDX-License-Identifier: GPL-2.0-only
2015-02-22 19:43:21 +03:00
/*
* wm8804 - i2c . c - - WM8804 S / PDIF transceiver driver - I2C
*
* Copyright 2015 Cirrus Logic Inc
*
* Author : Charles Keepax < ckeepax @ opensource . wolfsonmicro . com >
*/
# include <linux/init.h>
# include <linux/module.h>
# include <linux/i2c.h>
2018-08-23 06:49:36 +03:00
# include <linux/acpi.h>
2015-02-22 19:43:21 +03:00
# include "wm8804.h"
static int wm8804_i2c_probe ( struct i2c_client * i2c ,
const struct i2c_device_id * id )
{
struct regmap * regmap ;
regmap = devm_regmap_init_i2c ( i2c , & wm8804_regmap_config ) ;
if ( IS_ERR ( regmap ) )
return PTR_ERR ( regmap ) ;
return wm8804_probe ( & i2c - > dev , regmap ) ;
}
static int wm8804_i2c_remove ( struct i2c_client * i2c )
{
wm8804_remove ( & i2c - > dev ) ;
return 0 ;
}
static const struct i2c_device_id wm8804_i2c_id [ ] = {
{ " wm8804 " , 0 } ,
{ }
} ;
MODULE_DEVICE_TABLE ( i2c , wm8804_i2c_id ) ;
2018-08-23 06:49:36 +03:00
# if defined(CONFIG_OF)
2015-02-22 19:43:21 +03:00
static const struct of_device_id wm8804_of_match [ ] = {
{ . compatible = " wlf,wm8804 " , } ,
{ }
} ;
MODULE_DEVICE_TABLE ( of , wm8804_of_match ) ;
2018-08-23 06:49:36 +03:00
# endif
# ifdef CONFIG_ACPI
static const struct acpi_device_id wm8804_acpi_match [ ] = {
{ " 1AEC8804 " , 0 } , /* Wolfson PCI ID + part ID */
{ " 10138804 " , 0 } , /* Cirrus Logic PCI ID + part ID */
{ } ,
} ;
MODULE_DEVICE_TABLE ( acpi , wm8804_acpi_match ) ;
# endif
2015-02-22 19:43:21 +03:00
static struct i2c_driver wm8804_i2c_driver = {
. driver = {
. name = " wm8804 " ,
2015-04-07 14:55:10 +03:00
. pm = & wm8804_pm ,
2018-08-23 06:49:36 +03:00
. of_match_table = of_match_ptr ( wm8804_of_match ) ,
. acpi_match_table = ACPI_PTR ( wm8804_acpi_match ) ,
2015-02-22 19:43:21 +03:00
} ,
. probe = wm8804_i2c_probe ,
. remove = wm8804_i2c_remove ,
. id_table = wm8804_i2c_id
} ;
module_i2c_driver ( wm8804_i2c_driver ) ;
MODULE_DESCRIPTION ( " ASoC WM8804 driver - I2C " ) ;
MODULE_AUTHOR ( " Charles Keepax <ckeepax@opensource.wolfsonmicro.com> " ) ;
MODULE_LICENSE ( " GPL " ) ;