cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

adau1781-i2c.c (1652B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * Driver for ADAU1381/ADAU1781 CODEC
      4 *
      5 * Copyright 2014 Analog Devices Inc.
      6 *  Author: Lars-Peter Clausen <lars@metafoo.de>
      7 */
      8
      9#include <linux/i2c.h>
     10#include <linux/mod_devicetable.h>
     11#include <linux/module.h>
     12#include <linux/regmap.h>
     13#include <sound/soc.h>
     14
     15#include "adau1781.h"
     16
     17static const struct i2c_device_id adau1781_i2c_ids[];
     18
     19static int adau1781_i2c_probe(struct i2c_client *client)
     20{
     21	struct regmap_config config;
     22	const struct i2c_device_id *id = i2c_match_id(adau1781_i2c_ids, client);
     23
     24	config = adau1781_regmap_config;
     25	config.val_bits = 8;
     26	config.reg_bits = 16;
     27
     28	return adau1781_probe(&client->dev,
     29		devm_regmap_init_i2c(client, &config),
     30		id->driver_data, NULL);
     31}
     32
     33static int adau1781_i2c_remove(struct i2c_client *client)
     34{
     35	adau17x1_remove(&client->dev);
     36	return 0;
     37}
     38
     39static const struct i2c_device_id adau1781_i2c_ids[] = {
     40	{ "adau1381", ADAU1381 },
     41	{ "adau1781", ADAU1781 },
     42	{ }
     43};
     44MODULE_DEVICE_TABLE(i2c, adau1781_i2c_ids);
     45
     46#if defined(CONFIG_OF)
     47static const struct of_device_id adau1781_i2c_dt_ids[] = {
     48	{ .compatible = "adi,adau1381", },
     49	{ .compatible = "adi,adau1781", },
     50	{ },
     51};
     52MODULE_DEVICE_TABLE(of, adau1781_i2c_dt_ids);
     53#endif
     54
     55static struct i2c_driver adau1781_i2c_driver = {
     56	.driver = {
     57		.name = "adau1781",
     58		.of_match_table = of_match_ptr(adau1781_i2c_dt_ids),
     59	},
     60	.probe_new = adau1781_i2c_probe,
     61	.remove = adau1781_i2c_remove,
     62	.id_table = adau1781_i2c_ids,
     63};
     64module_i2c_driver(adau1781_i2c_driver);
     65
     66MODULE_DESCRIPTION("ASoC ADAU1381/ADAU1781 CODEC I2C driver");
     67MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
     68MODULE_LICENSE("GPL");