linux/sound/soc/codecs/cs4271-i2c.c
<<
>>
Prefs
   1/*
   2 * CS4271 I2C audio driver
   3 *
   4 * Copyright (c) 2010 Alexander Sverdlin <subaparts@yandex.ru>
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public License
   8 * as published by the Free Software Foundation; either version 2
   9 * of the License, or (at your option) any later version.
  10 *
  11 * This program is distributed in the hope that it will be useful,
  12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14 * GNU General Public License for more details.
  15 */
  16
  17#include <linux/module.h>
  18#include <linux/i2c.h>
  19#include <linux/regmap.h>
  20#include <sound/soc.h>
  21#include "cs4271.h"
  22
  23static int cs4271_i2c_probe(struct i2c_client *client,
  24                             const struct i2c_device_id *id)
  25{
  26        struct regmap_config config;
  27
  28        config = cs4271_regmap_config;
  29        config.reg_bits = 8;
  30        config.val_bits = 8;
  31
  32        return cs4271_probe(&client->dev,
  33                            devm_regmap_init_i2c(client, &config));
  34}
  35
  36static int cs4271_i2c_remove(struct i2c_client *client)
  37{
  38        snd_soc_unregister_codec(&client->dev);
  39        return 0;
  40}
  41
  42static const struct i2c_device_id cs4271_i2c_id[] = {
  43        { "cs4271", 0 },
  44        { }
  45};
  46MODULE_DEVICE_TABLE(i2c, cs4271_i2c_id);
  47
  48static struct i2c_driver cs4271_i2c_driver = {
  49        .driver = {
  50                .name = "cs4271",
  51                .of_match_table = of_match_ptr(cs4271_dt_ids),
  52        },
  53        .probe = cs4271_i2c_probe,
  54        .remove = cs4271_i2c_remove,
  55        .id_table = cs4271_i2c_id,
  56};
  57module_i2c_driver(cs4271_i2c_driver);
  58
  59MODULE_DESCRIPTION("ASoC CS4271 I2C Driver");
  60MODULE_AUTHOR("Alexander Sverdlin <subaparts@yandex.ru>");
  61MODULE_LICENSE("GPL");
  62