Commit b34a068c authored by Mark Brown's avatar Mark Brown

ASoC: remaining i2c_match_id i2c probe changes

Merge series from Stephen Kitt <steve@sk2.org>:

This series covers all the remaining changes to migrate
sound/soc/codecs i2c probes to probe_new, where the const struct
i2c_client * argument is still used. Instead of relying on the
parameter passed in, i2c_match_id is used instead.

With this set of patches, all the sound/soc/codecs i2c probes use the
new probe definition.

Changes since v1: two missing files were added.

Stephen Kitt (7):
  ASoC: ak*: use i2c_match_id and simple i2c probe
  ASoC: alc56*: use i2c_match_id and simple i2c probe
  ASoC: max980*: use i2c_match_id and simple i2c probe
  ASoC: pcm186x: use i2c_match_id and simple i2c probe
  ASoC: tas*: use i2c_match_id and simple i2c probe
  ASoC: tlv320*: use i2c_match_id and simple i2c probe
  ASoC: tpa6130: use i2c_match_id and simple i2c probe

 sound/soc/codecs/ak4613.c            | 10 +++++----
 sound/soc/codecs/ak4642.c            |  8 ++++---
 sound/soc/codecs/alc5623.c           | 24 +++++++++++----------
 sound/soc/codecs/alc5632.c           | 20 +++++++++--------
 sound/soc/codecs/max98088.c          | 21 +++++++++---------
 sound/soc/codecs/max98090.c          | 23 ++++++++++----------
 sound/soc/codecs/max98095.c          | 19 +++++++++--------
 sound/soc/codecs/pcm186x-i2c.c       | 24 ++++++++++-----------
 sound/soc/codecs/tas2562.c           | 25 +++++++++++-----------
 sound/soc/codecs/tas571x.c           | 11 ++++++----
 sound/soc/codecs/tas5720.c           | 21 +++++++++---------
 sound/soc/codecs/tlv320adc3xxx.c     | 21 +++++++++---------
 sound/soc/codecs/tlv320aic31xx.c     | 32 ++++++++++++++--------------
 sound/soc/codecs/tlv320aic32x4-i2c.c | 11 ++++++----
 sound/soc/codecs/tlv320aic3x-i2c.c   | 25 +++++++++++-----------
 sound/soc/codecs/tpa6130a2.c         | 19 +++++++++--------
 16 files changed, 168 insertions(+), 146 deletions(-)

base-commit: 5d763a740e5b24e4a2ca04317255e7e941876338
--
2.27.0
parents 85780eb5 988e6870
...@@ -876,8 +876,7 @@ static void ak4613_parse_of(struct ak4613_priv *priv, ...@@ -876,8 +876,7 @@ static void ak4613_parse_of(struct ak4613_priv *priv,
AK4613_CONFIG_SDTI_set(priv, sdti_num); AK4613_CONFIG_SDTI_set(priv, sdti_num);
} }
static int ak4613_i2c_probe(struct i2c_client *i2c, static int ak4613_i2c_probe(struct i2c_client *i2c)
const struct i2c_device_id *id)
{ {
struct device *dev = &i2c->dev; struct device *dev = &i2c->dev;
struct device_node *np = dev->of_node; struct device_node *np = dev->of_node;
...@@ -888,8 +887,11 @@ static int ak4613_i2c_probe(struct i2c_client *i2c, ...@@ -888,8 +887,11 @@ static int ak4613_i2c_probe(struct i2c_client *i2c,
regmap_cfg = NULL; regmap_cfg = NULL;
if (np) if (np)
regmap_cfg = of_device_get_match_data(dev); regmap_cfg = of_device_get_match_data(dev);
else else {
const struct i2c_device_id *id =
i2c_match_id(ak4613_i2c_id, i2c);
regmap_cfg = (const struct regmap_config *)id->driver_data; regmap_cfg = (const struct regmap_config *)id->driver_data;
}
if (!regmap_cfg) if (!regmap_cfg)
return -EINVAL; return -EINVAL;
...@@ -927,7 +929,7 @@ static struct i2c_driver ak4613_i2c_driver = { ...@@ -927,7 +929,7 @@ static struct i2c_driver ak4613_i2c_driver = {
.name = "ak4613-codec", .name = "ak4613-codec",
.of_match_table = ak4613_of_match, .of_match_table = ak4613_of_match,
}, },
.probe = ak4613_i2c_probe, .probe_new = ak4613_i2c_probe,
.remove = ak4613_i2c_remove, .remove = ak4613_i2c_remove,
.id_table = ak4613_i2c_id, .id_table = ak4613_i2c_id,
}; };
......
...@@ -630,8 +630,8 @@ static struct clk *ak4642_of_parse_mcko(struct device *dev) ...@@ -630,8 +630,8 @@ static struct clk *ak4642_of_parse_mcko(struct device *dev)
#endif #endif
static const struct of_device_id ak4642_of_match[]; static const struct of_device_id ak4642_of_match[];
static int ak4642_i2c_probe(struct i2c_client *i2c, static const struct i2c_device_id ak4642_i2c_id[];
const struct i2c_device_id *id) static int ak4642_i2c_probe(struct i2c_client *i2c)
{ {
struct device *dev = &i2c->dev; struct device *dev = &i2c->dev;
struct device_node *np = dev->of_node; struct device_node *np = dev->of_node;
...@@ -651,6 +651,8 @@ static int ak4642_i2c_probe(struct i2c_client *i2c, ...@@ -651,6 +651,8 @@ static int ak4642_i2c_probe(struct i2c_client *i2c,
if (of_id) if (of_id)
drvdata = of_id->data; drvdata = of_id->data;
} else { } else {
const struct i2c_device_id *id =
i2c_match_id(ak4642_i2c_id, i2c);
drvdata = (const struct ak4642_drvdata *)id->driver_data; drvdata = (const struct ak4642_drvdata *)id->driver_data;
} }
...@@ -697,7 +699,7 @@ static struct i2c_driver ak4642_i2c_driver = { ...@@ -697,7 +699,7 @@ static struct i2c_driver ak4642_i2c_driver = {
.name = "ak4642-codec", .name = "ak4642-codec",
.of_match_table = ak4642_of_match, .of_match_table = ak4642_of_match,
}, },
.probe = ak4642_i2c_probe, .probe_new = ak4642_i2c_probe,
.id_table = ak4642_i2c_id, .id_table = ak4642_i2c_id,
}; };
......
...@@ -968,14 +968,21 @@ static const struct regmap_config alc5623_regmap = { ...@@ -968,14 +968,21 @@ static const struct regmap_config alc5623_regmap = {
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_RBTREE,
}; };
static const struct i2c_device_id alc5623_i2c_table[] = {
{"alc5621", 0x21},
{"alc5622", 0x22},
{"alc5623", 0x23},
{}
};
MODULE_DEVICE_TABLE(i2c, alc5623_i2c_table);
/* /*
* ALC5623 2 wire address is determined by A1 pin * ALC5623 2 wire address is determined by A1 pin
* state during powerup. * state during powerup.
* low = 0x1a * low = 0x1a
* high = 0x1b * high = 0x1b
*/ */
static int alc5623_i2c_probe(struct i2c_client *client, static int alc5623_i2c_probe(struct i2c_client *client)
const struct i2c_device_id *id)
{ {
struct alc5623_platform_data *pdata; struct alc5623_platform_data *pdata;
struct alc5623_priv *alc5623; struct alc5623_priv *alc5623;
...@@ -983,6 +990,7 @@ static int alc5623_i2c_probe(struct i2c_client *client, ...@@ -983,6 +990,7 @@ static int alc5623_i2c_probe(struct i2c_client *client,
unsigned int vid1, vid2; unsigned int vid1, vid2;
int ret; int ret;
u32 val32; u32 val32;
const struct i2c_device_id *id;
alc5623 = devm_kzalloc(&client->dev, sizeof(struct alc5623_priv), alc5623 = devm_kzalloc(&client->dev, sizeof(struct alc5623_priv),
GFP_KERNEL); GFP_KERNEL);
...@@ -1009,6 +1017,8 @@ static int alc5623_i2c_probe(struct i2c_client *client, ...@@ -1009,6 +1017,8 @@ static int alc5623_i2c_probe(struct i2c_client *client,
} }
vid2 >>= 8; vid2 >>= 8;
id = i2c_match_id(alc5623_i2c_table, client);
if ((vid1 != 0x10ec) || (vid2 != id->driver_data)) { if ((vid1 != 0x10ec) || (vid2 != id->driver_data)) {
dev_err(&client->dev, "unknown or wrong codec\n"); dev_err(&client->dev, "unknown or wrong codec\n");
dev_err(&client->dev, "Expected %x:%lx, got %x:%x\n", dev_err(&client->dev, "Expected %x:%lx, got %x:%x\n",
...@@ -1060,14 +1070,6 @@ static int alc5623_i2c_probe(struct i2c_client *client, ...@@ -1060,14 +1070,6 @@ static int alc5623_i2c_probe(struct i2c_client *client,
return ret; return ret;
} }
static const struct i2c_device_id alc5623_i2c_table[] = {
{"alc5621", 0x21},
{"alc5622", 0x22},
{"alc5623", 0x23},
{}
};
MODULE_DEVICE_TABLE(i2c, alc5623_i2c_table);
#ifdef CONFIG_OF #ifdef CONFIG_OF
static const struct of_device_id alc5623_of_match[] = { static const struct of_device_id alc5623_of_match[] = {
{ .compatible = "realtek,alc5623", }, { .compatible = "realtek,alc5623", },
...@@ -1082,7 +1084,7 @@ static struct i2c_driver alc5623_i2c_driver = { ...@@ -1082,7 +1084,7 @@ static struct i2c_driver alc5623_i2c_driver = {
.name = "alc562x-codec", .name = "alc562x-codec",
.of_match_table = of_match_ptr(alc5623_of_match), .of_match_table = of_match_ptr(alc5623_of_match),
}, },
.probe = alc5623_i2c_probe, .probe_new = alc5623_i2c_probe,
.id_table = alc5623_i2c_table, .id_table = alc5623_i2c_table,
}; };
......
...@@ -1092,18 +1092,24 @@ static const struct regmap_config alc5632_regmap = { ...@@ -1092,18 +1092,24 @@ static const struct regmap_config alc5632_regmap = {
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_RBTREE,
}; };
static const struct i2c_device_id alc5632_i2c_table[] = {
{"alc5632", 0x5c},
{}
};
MODULE_DEVICE_TABLE(i2c, alc5632_i2c_table);
/* /*
* alc5632 2 wire address is determined by A1 pin * alc5632 2 wire address is determined by A1 pin
* state during powerup. * state during powerup.
* low = 0x1a * low = 0x1a
* high = 0x1b * high = 0x1b
*/ */
static int alc5632_i2c_probe(struct i2c_client *client, static int alc5632_i2c_probe(struct i2c_client *client)
const struct i2c_device_id *id)
{ {
struct alc5632_priv *alc5632; struct alc5632_priv *alc5632;
int ret, ret1, ret2; int ret, ret1, ret2;
unsigned int vid1, vid2; unsigned int vid1, vid2;
const struct i2c_device_id *id;
alc5632 = devm_kzalloc(&client->dev, alc5632 = devm_kzalloc(&client->dev,
sizeof(struct alc5632_priv), GFP_KERNEL); sizeof(struct alc5632_priv), GFP_KERNEL);
...@@ -1129,6 +1135,8 @@ static int alc5632_i2c_probe(struct i2c_client *client, ...@@ -1129,6 +1135,8 @@ static int alc5632_i2c_probe(struct i2c_client *client,
vid2 >>= 8; vid2 >>= 8;
id = i2c_match_id(alc5632_i2c_table, client);
if ((vid1 != 0x10EC) || (vid2 != id->driver_data)) { if ((vid1 != 0x10EC) || (vid2 != id->driver_data)) {
dev_err(&client->dev, dev_err(&client->dev,
"Device is not a ALC5632: VID1=0x%x, VID2=0x%x\n", vid1, vid2); "Device is not a ALC5632: VID1=0x%x, VID2=0x%x\n", vid1, vid2);
...@@ -1161,12 +1169,6 @@ static int alc5632_i2c_probe(struct i2c_client *client, ...@@ -1161,12 +1169,6 @@ static int alc5632_i2c_probe(struct i2c_client *client,
return ret; return ret;
} }
static const struct i2c_device_id alc5632_i2c_table[] = {
{"alc5632", 0x5c},
{}
};
MODULE_DEVICE_TABLE(i2c, alc5632_i2c_table);
#ifdef CONFIG_OF #ifdef CONFIG_OF
static const struct of_device_id alc5632_of_match[] = { static const struct of_device_id alc5632_of_match[] = {
{ .compatible = "realtek,alc5632", }, { .compatible = "realtek,alc5632", },
...@@ -1181,7 +1183,7 @@ static struct i2c_driver alc5632_i2c_driver = { ...@@ -1181,7 +1183,7 @@ static struct i2c_driver alc5632_i2c_driver = {
.name = "alc5632", .name = "alc5632",
.of_match_table = of_match_ptr(alc5632_of_match), .of_match_table = of_match_ptr(alc5632_of_match),
}, },
.probe = alc5632_i2c_probe, .probe_new = alc5632_i2c_probe,
.id_table = alc5632_i2c_table, .id_table = alc5632_i2c_table,
}; };
......
...@@ -1737,11 +1737,18 @@ static const struct snd_soc_component_driver soc_component_dev_max98088 = { ...@@ -1737,11 +1737,18 @@ static const struct snd_soc_component_driver soc_component_dev_max98088 = {
.non_legacy_dai_naming = 1, .non_legacy_dai_naming = 1,
}; };
static int max98088_i2c_probe(struct i2c_client *i2c, static const struct i2c_device_id max98088_i2c_id[] = {
const struct i2c_device_id *id) { "max98088", MAX98088 },
{ "max98089", MAX98089 },
{ }
};
MODULE_DEVICE_TABLE(i2c, max98088_i2c_id);
static int max98088_i2c_probe(struct i2c_client *i2c)
{ {
struct max98088_priv *max98088; struct max98088_priv *max98088;
int ret; int ret;
const struct i2c_device_id *id;
max98088 = devm_kzalloc(&i2c->dev, sizeof(struct max98088_priv), max98088 = devm_kzalloc(&i2c->dev, sizeof(struct max98088_priv),
GFP_KERNEL); GFP_KERNEL);
...@@ -1757,6 +1764,7 @@ static int max98088_i2c_probe(struct i2c_client *i2c, ...@@ -1757,6 +1764,7 @@ static int max98088_i2c_probe(struct i2c_client *i2c,
if (PTR_ERR(max98088->mclk) == -EPROBE_DEFER) if (PTR_ERR(max98088->mclk) == -EPROBE_DEFER)
return PTR_ERR(max98088->mclk); return PTR_ERR(max98088->mclk);
id = i2c_match_id(max98088_i2c_id, i2c);
max98088->devtype = id->driver_data; max98088->devtype = id->driver_data;
i2c_set_clientdata(i2c, max98088); i2c_set_clientdata(i2c, max98088);
...@@ -1767,13 +1775,6 @@ static int max98088_i2c_probe(struct i2c_client *i2c, ...@@ -1767,13 +1775,6 @@ static int max98088_i2c_probe(struct i2c_client *i2c,
return ret; return ret;
} }
static const struct i2c_device_id max98088_i2c_id[] = {
{ "max98088", MAX98088 },
{ "max98089", MAX98089 },
{ }
};
MODULE_DEVICE_TABLE(i2c, max98088_i2c_id);
#if defined(CONFIG_OF) #if defined(CONFIG_OF)
static const struct of_device_id max98088_of_match[] = { static const struct of_device_id max98088_of_match[] = {
{ .compatible = "maxim,max98088" }, { .compatible = "maxim,max98088" },
...@@ -1788,7 +1789,7 @@ static struct i2c_driver max98088_i2c_driver = { ...@@ -1788,7 +1789,7 @@ static struct i2c_driver max98088_i2c_driver = {
.name = "max98088", .name = "max98088",
.of_match_table = of_match_ptr(max98088_of_match), .of_match_table = of_match_ptr(max98088_of_match),
}, },
.probe = max98088_i2c_probe, .probe_new = max98088_i2c_probe,
.id_table = max98088_i2c_id, .id_table = max98088_i2c_id,
}; };
......
...@@ -2529,8 +2529,14 @@ static const struct regmap_config max98090_regmap = { ...@@ -2529,8 +2529,14 @@ static const struct regmap_config max98090_regmap = {
.cache_type = REGCACHE_RBTREE, .cache_type = REGCACHE_RBTREE,
}; };
static int max98090_i2c_probe(struct i2c_client *i2c, static const struct i2c_device_id max98090_i2c_id[] = {
const struct i2c_device_id *i2c_id) { "max98090", MAX98090 },
{ "max98091", MAX98091 },
{ }
};
MODULE_DEVICE_TABLE(i2c, max98090_i2c_id);
static int max98090_i2c_probe(struct i2c_client *i2c)
{ {
struct max98090_priv *max98090; struct max98090_priv *max98090;
const struct acpi_device_id *acpi_id; const struct acpi_device_id *acpi_id;
...@@ -2552,7 +2558,9 @@ static int max98090_i2c_probe(struct i2c_client *i2c, ...@@ -2552,7 +2558,9 @@ static int max98090_i2c_probe(struct i2c_client *i2c,
return -EINVAL; return -EINVAL;
} }
driver_data = acpi_id->driver_data; driver_data = acpi_id->driver_data;
} else if (i2c_id) { } else {
const struct i2c_device_id *i2c_id =
i2c_match_id(max98090_i2c_id, i2c);
driver_data = i2c_id->driver_data; driver_data = i2c_id->driver_data;
} }
...@@ -2659,13 +2667,6 @@ static const struct dev_pm_ops max98090_pm = { ...@@ -2659,13 +2667,6 @@ static const struct dev_pm_ops max98090_pm = {
SET_SYSTEM_SLEEP_PM_OPS(NULL, max98090_resume) SET_SYSTEM_SLEEP_PM_OPS(NULL, max98090_resume)
}; };
static const struct i2c_device_id max98090_i2c_id[] = {
{ "max98090", MAX98090 },
{ "max98091", MAX98091 },
{ }
};
MODULE_DEVICE_TABLE(i2c, max98090_i2c_id);
#ifdef CONFIG_OF #ifdef CONFIG_OF
static const struct of_device_id max98090_of_match[] = { static const struct of_device_id max98090_of_match[] = {
{ .compatible = "maxim,max98090", }, { .compatible = "maxim,max98090", },
...@@ -2690,7 +2691,7 @@ static struct i2c_driver max98090_i2c_driver = { ...@@ -2690,7 +2691,7 @@ static struct i2c_driver max98090_i2c_driver = {
.of_match_table = of_match_ptr(max98090_of_match), .of_match_table = of_match_ptr(max98090_of_match),
.acpi_match_table = ACPI_PTR(max98090_acpi_match), .acpi_match_table = ACPI_PTR(max98090_acpi_match),
}, },
.probe = max98090_i2c_probe, .probe_new = max98090_i2c_probe,
.shutdown = max98090_i2c_shutdown, .shutdown = max98090_i2c_shutdown,
.remove = max98090_i2c_remove, .remove = max98090_i2c_remove,
.id_table = max98090_i2c_id, .id_table = max98090_i2c_id,
......
...@@ -2106,11 +2106,17 @@ static const struct snd_soc_component_driver soc_component_dev_max98095 = { ...@@ -2106,11 +2106,17 @@ static const struct snd_soc_component_driver soc_component_dev_max98095 = {
.non_legacy_dai_naming = 1, .non_legacy_dai_naming = 1,
}; };
static int max98095_i2c_probe(struct i2c_client *i2c, static const struct i2c_device_id max98095_i2c_id[] = {
const struct i2c_device_id *id) { "max98095", MAX98095 },
{ }
};
MODULE_DEVICE_TABLE(i2c, max98095_i2c_id);
static int max98095_i2c_probe(struct i2c_client *i2c)
{ {
struct max98095_priv *max98095; struct max98095_priv *max98095;
int ret; int ret;
const struct i2c_device_id *id;
max98095 = devm_kzalloc(&i2c->dev, sizeof(struct max98095_priv), max98095 = devm_kzalloc(&i2c->dev, sizeof(struct max98095_priv),
GFP_KERNEL); GFP_KERNEL);
...@@ -2126,6 +2132,7 @@ static int max98095_i2c_probe(struct i2c_client *i2c, ...@@ -2126,6 +2132,7 @@ static int max98095_i2c_probe(struct i2c_client *i2c,
return ret; return ret;
} }
id = i2c_match_id(max98095_i2c_id, i2c);
max98095->devtype = id->driver_data; max98095->devtype = id->driver_data;
i2c_set_clientdata(i2c, max98095); i2c_set_clientdata(i2c, max98095);
max98095->pdata = i2c->dev.platform_data; max98095->pdata = i2c->dev.platform_data;
...@@ -2136,12 +2143,6 @@ static int max98095_i2c_probe(struct i2c_client *i2c, ...@@ -2136,12 +2143,6 @@ static int max98095_i2c_probe(struct i2c_client *i2c,
return ret; return ret;
} }
static const struct i2c_device_id max98095_i2c_id[] = {
{ "max98095", MAX98095 },
{ }
};
MODULE_DEVICE_TABLE(i2c, max98095_i2c_id);
#ifdef CONFIG_OF #ifdef CONFIG_OF
static const struct of_device_id max98095_of_match[] = { static const struct of_device_id max98095_of_match[] = {
{ .compatible = "maxim,max98095", }, { .compatible = "maxim,max98095", },
...@@ -2155,7 +2156,7 @@ static struct i2c_driver max98095_i2c_driver = { ...@@ -2155,7 +2156,7 @@ static struct i2c_driver max98095_i2c_driver = {
.name = "max98095", .name = "max98095",
.of_match_table = of_match_ptr(max98095_of_match), .of_match_table = of_match_ptr(max98095_of_match),
}, },
.probe = max98095_i2c_probe, .probe_new = max98095_i2c_probe,
.id_table = max98095_i2c_id, .id_table = max98095_i2c_id,
}; };
......
...@@ -22,9 +22,18 @@ static const struct of_device_id pcm186x_of_match[] = { ...@@ -22,9 +22,18 @@ static const struct of_device_id pcm186x_of_match[] = {
}; };
MODULE_DEVICE_TABLE(of, pcm186x_of_match); MODULE_DEVICE_TABLE(of, pcm186x_of_match);
static int pcm186x_i2c_probe(struct i2c_client *i2c, static const struct i2c_device_id pcm186x_i2c_id[] = {
const struct i2c_device_id *id) { "pcm1862", PCM1862 },
{ "pcm1863", PCM1863 },
{ "pcm1864", PCM1864 },
{ "pcm1865", PCM1865 },
{ }
};
MODULE_DEVICE_TABLE(i2c, pcm186x_i2c_id);
static int pcm186x_i2c_probe(struct i2c_client *i2c)
{ {
const struct i2c_device_id *id = i2c_match_id(pcm186x_i2c_id, i2c);
const enum pcm186x_type type = (enum pcm186x_type)id->driver_data; const enum pcm186x_type type = (enum pcm186x_type)id->driver_data;
int irq = i2c->irq; int irq = i2c->irq;
struct regmap *regmap; struct regmap *regmap;
...@@ -36,17 +45,8 @@ static int pcm186x_i2c_probe(struct i2c_client *i2c, ...@@ -36,17 +45,8 @@ static int pcm186x_i2c_probe(struct i2c_client *i2c,
return pcm186x_probe(&i2c->dev, type, irq, regmap); return pcm186x_probe(&i2c->dev, type, irq, regmap);
} }
static const struct i2c_device_id pcm186x_i2c_id[] = {
{ "pcm1862", PCM1862 },
{ "pcm1863", PCM1863 },
{ "pcm1864", PCM1864 },
{ "pcm1865", PCM1865 },
{ }
};
MODULE_DEVICE_TABLE(i2c, pcm186x_i2c_id);
static struct i2c_driver pcm186x_i2c_driver = { static struct i2c_driver pcm186x_i2c_driver = {
.probe = pcm186x_i2c_probe, .probe_new = pcm186x_i2c_probe,
.id_table = pcm186x_i2c_id, .id_table = pcm186x_i2c_id,
.driver = { .driver = {
.name = "pcm186x", .name = "pcm186x",
......
...@@ -754,17 +754,27 @@ static int tas2562_parse_dt(struct tas2562_data *tas2562) ...@@ -754,17 +754,27 @@ static int tas2562_parse_dt(struct tas2562_data *tas2562)
return ret; return ret;
} }
static int tas2562_probe(struct i2c_client *client, static const struct i2c_device_id tas2562_id[] = {
const struct i2c_device_id *id) { "tas2562", TAS2562 },
{ "tas2563", TAS2563 },
{ "tas2564", TAS2564 },
{ "tas2110", TAS2110 },
{ }
};
MODULE_DEVICE_TABLE(i2c, tas2562_id);
static int tas2562_probe(struct i2c_client *client)
{ {
struct device *dev = &client->dev; struct device *dev = &client->dev;
struct tas2562_data *data; struct tas2562_data *data;
int ret; int ret;
const struct i2c_device_id *id;
data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
if (!data) if (!data)
return -ENOMEM; return -ENOMEM;
id = i2c_match_id(tas2562_id, client);
data->client = client; data->client = client;
data->dev = &client->dev; data->dev = &client->dev;
data->model_id = id->driver_data; data->model_id = id->driver_data;
...@@ -792,15 +802,6 @@ static int tas2562_probe(struct i2c_client *client, ...@@ -792,15 +802,6 @@ static int tas2562_probe(struct i2c_client *client,
} }
static const struct i2c_device_id tas2562_id[] = {
{ "tas2562", TAS2562 },
{ "tas2563", TAS2563 },
{ "tas2564", TAS2564 },
{ "tas2110", TAS2110 },
{ }
};
MODULE_DEVICE_TABLE(i2c, tas2562_id);
#ifdef CONFIG_OF #ifdef CONFIG_OF
static const struct of_device_id tas2562_of_match[] = { static const struct of_device_id tas2562_of_match[] = {
{ .compatible = "ti,tas2562", }, { .compatible = "ti,tas2562", },
...@@ -817,7 +818,7 @@ static struct i2c_driver tas2562_i2c_driver = { ...@@ -817,7 +818,7 @@ static struct i2c_driver tas2562_i2c_driver = {
.name = "tas2562", .name = "tas2562",
.of_match_table = of_match_ptr(tas2562_of_match), .of_match_table = of_match_ptr(tas2562_of_match),
}, },
.probe = tas2562_probe, .probe_new = tas2562_probe,
.id_table = tas2562_id, .id_table = tas2562_id,
}; };
......
...@@ -774,9 +774,9 @@ static struct snd_soc_dai_driver tas571x_dai = { ...@@ -774,9 +774,9 @@ static struct snd_soc_dai_driver tas571x_dai = {
}; };
static const struct of_device_id tas571x_of_match[] __maybe_unused; static const struct of_device_id tas571x_of_match[] __maybe_unused;
static const struct i2c_device_id tas571x_i2c_id[];
static int tas571x_i2c_probe(struct i2c_client *client, static int tas571x_i2c_probe(struct i2c_client *client)
const struct i2c_device_id *id)
{ {
struct tas571x_private *priv; struct tas571x_private *priv;
struct device *dev = &client->dev; struct device *dev = &client->dev;
...@@ -791,8 +791,11 @@ static int tas571x_i2c_probe(struct i2c_client *client, ...@@ -791,8 +791,11 @@ static int tas571x_i2c_probe(struct i2c_client *client,
of_id = of_match_device(tas571x_of_match, dev); of_id = of_match_device(tas571x_of_match, dev);
if (of_id) if (of_id)
priv->chip = of_id->data; priv->chip = of_id->data;
else else {
const struct i2c_device_id *id =
i2c_match_id(tas571x_i2c_id, client);
priv->chip = (void *) id->driver_data; priv->chip = (void *) id->driver_data;
}
priv->mclk = devm_clk_get(dev, "mclk"); priv->mclk = devm_clk_get(dev, "mclk");
if (IS_ERR(priv->mclk) && PTR_ERR(priv->mclk) != -ENOENT) { if (IS_ERR(priv->mclk) && PTR_ERR(priv->mclk) != -ENOENT) {
...@@ -914,7 +917,7 @@ static struct i2c_driver tas571x_i2c_driver = { ...@@ -914,7 +917,7 @@ static struct i2c_driver tas571x_i2c_driver = {
.name = "tas571x", .name = "tas571x",
.of_match_table = of_match_ptr(tas571x_of_match), .of_match_table = of_match_ptr(tas571x_of_match),
}, },
.probe = tas571x_i2c_probe, .probe_new = tas571x_i2c_probe,
.remove = tas571x_i2c_remove, .remove = tas571x_i2c_remove,
.id_table = tas571x_i2c_id, .id_table = tas571x_i2c_id,
}; };
......
...@@ -633,12 +633,19 @@ static struct snd_soc_dai_driver tas5720_dai[] = { ...@@ -633,12 +633,19 @@ static struct snd_soc_dai_driver tas5720_dai[] = {
}, },
}; };
static int tas5720_probe(struct i2c_client *client, static const struct i2c_device_id tas5720_id[] = {
const struct i2c_device_id *id) { "tas5720", TAS5720 },
{ "tas5722", TAS5722 },
{ }
};
MODULE_DEVICE_TABLE(i2c, tas5720_id);
static int tas5720_probe(struct i2c_client *client)
{ {
struct device *dev = &client->dev; struct device *dev = &client->dev;
struct tas5720_data *data; struct tas5720_data *data;
const struct regmap_config *regmap_config; const struct regmap_config *regmap_config;
const struct i2c_device_id *id;
int ret; int ret;
int i; int i;
...@@ -646,6 +653,7 @@ static int tas5720_probe(struct i2c_client *client, ...@@ -646,6 +653,7 @@ static int tas5720_probe(struct i2c_client *client,
if (!data) if (!data)
return -ENOMEM; return -ENOMEM;
id = i2c_match_id(tas5720_id, client);
data->tas5720_client = client; data->tas5720_client = client;
data->devtype = id->driver_data; data->devtype = id->driver_data;
...@@ -704,13 +712,6 @@ static int tas5720_probe(struct i2c_client *client, ...@@ -704,13 +712,6 @@ static int tas5720_probe(struct i2c_client *client,
return 0; return 0;
} }
static const struct i2c_device_id tas5720_id[] = {
{ "tas5720", TAS5720 },
{ "tas5722", TAS5722 },
{ }
};
MODULE_DEVICE_TABLE(i2c, tas5720_id);
#if IS_ENABLED(CONFIG_OF) #if IS_ENABLED(CONFIG_OF)
static const struct of_device_id tas5720_of_match[] = { static const struct of_device_id tas5720_of_match[] = {
{ .compatible = "ti,tas5720", }, { .compatible = "ti,tas5720", },
...@@ -725,7 +726,7 @@ static struct i2c_driver tas5720_i2c_driver = { ...@@ -725,7 +726,7 @@ static struct i2c_driver tas5720_i2c_driver = {
.name = "tas5720", .name = "tas5720",
.of_match_table = of_match_ptr(tas5720_of_match), .of_match_table = of_match_ptr(tas5720_of_match),
}, },
.probe = tas5720_probe, .probe_new = tas5720_probe,
.id_table = tas5720_id, .id_table = tas5720_id,
}; };
......
...@@ -1337,11 +1337,18 @@ static const struct snd_soc_component_driver soc_component_dev_adc3xxx = { ...@@ -1337,11 +1337,18 @@ static const struct snd_soc_component_driver soc_component_dev_adc3xxx = {
.num_dapm_routes = ARRAY_SIZE(adc3xxx_intercon), .num_dapm_routes = ARRAY_SIZE(adc3xxx_intercon),
}; };
static int adc3xxx_i2c_probe(struct i2c_client *i2c, static const struct i2c_device_id adc3xxx_i2c_id[] = {
const struct i2c_device_id *id) { "tlv320adc3001", ADC3001 },
{ "tlv320adc3101", ADC3101 },
{}
};
MODULE_DEVICE_TABLE(i2c, adc3xxx_i2c_id);
static int adc3xxx_i2c_probe(struct i2c_client *i2c)
{ {
struct device *dev = &i2c->dev; struct device *dev = &i2c->dev;
struct adc3xxx *adc3xxx = NULL; struct adc3xxx *adc3xxx = NULL;
const struct i2c_device_id *id;
int ret; int ret;
adc3xxx = devm_kzalloc(dev, sizeof(struct adc3xxx), GFP_KERNEL); adc3xxx = devm_kzalloc(dev, sizeof(struct adc3xxx), GFP_KERNEL);
...@@ -1394,6 +1401,7 @@ static int adc3xxx_i2c_probe(struct i2c_client *i2c, ...@@ -1394,6 +1401,7 @@ static int adc3xxx_i2c_probe(struct i2c_client *i2c,
i2c_set_clientdata(i2c, adc3xxx); i2c_set_clientdata(i2c, adc3xxx);
id = i2c_match_id(adc3xxx_i2c_id, i2c);
adc3xxx->type = id->driver_data; adc3xxx->type = id->driver_data;
/* Reset codec chip */ /* Reset codec chip */
...@@ -1436,19 +1444,12 @@ static const struct of_device_id tlv320adc3xxx_of_match[] = { ...@@ -1436,19 +1444,12 @@ static const struct of_device_id tlv320adc3xxx_of_match[] = {
}; };
MODULE_DEVICE_TABLE(of, tlv320adc3xxx_of_match); MODULE_DEVICE_TABLE(of, tlv320adc3xxx_of_match);
static const struct i2c_device_id adc3xxx_i2c_id[] = {
{ "tlv320adc3001", ADC3001 },
{ "tlv320adc3101", ADC3101 },
{}
};
MODULE_DEVICE_TABLE(i2c, adc3xxx_i2c_id);
static struct i2c_driver adc3xxx_i2c_driver = { static struct i2c_driver adc3xxx_i2c_driver = {
.driver = { .driver = {
.name = "tlv320adc3xxx-codec", .name = "tlv320adc3xxx-codec",
.of_match_table = tlv320adc3xxx_of_match, .of_match_table = tlv320adc3xxx_of_match,
}, },
.probe = adc3xxx_i2c_probe, .probe_new = adc3xxx_i2c_probe,
.remove = adc3xxx_i2c_remove, .remove = adc3xxx_i2c_remove,
.id_table = adc3xxx_i2c_id, .id_table = adc3xxx_i2c_id,
}; };
......
...@@ -1628,11 +1628,24 @@ static void aic31xx_configure_ocmv(struct aic31xx_priv *priv) ...@@ -1628,11 +1628,24 @@ static void aic31xx_configure_ocmv(struct aic31xx_priv *priv)
} }
} }
static int aic31xx_i2c_probe(struct i2c_client *i2c, static const struct i2c_device_id aic31xx_i2c_id[] = {
const struct i2c_device_id *id) { "tlv320aic310x", AIC3100 },
{ "tlv320aic311x", AIC3110 },
{ "tlv320aic3100", AIC3100 },
{ "tlv320aic3110", AIC3110 },
{ "tlv320aic3120", AIC3120 },
{ "tlv320aic3111", AIC3111 },
{ "tlv320dac3100", DAC3100 },
{ "tlv320dac3101", DAC3101 },
{ }
};
MODULE_DEVICE_TABLE(i2c, aic31xx_i2c_id);
static int aic31xx_i2c_probe(struct i2c_client *i2c)
{ {
struct aic31xx_priv *aic31xx; struct aic31xx_priv *aic31xx;
unsigned int micbias_value = MICBIAS_2_0V; unsigned int micbias_value = MICBIAS_2_0V;
const struct i2c_device_id *id = i2c_match_id(aic31xx_i2c_id, i2c);
int i, ret; int i, ret;
dev_dbg(&i2c->dev, "## %s: %s codec_type = %d\n", __func__, dev_dbg(&i2c->dev, "## %s: %s codec_type = %d\n", __func__,
...@@ -1729,26 +1742,13 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c, ...@@ -1729,26 +1742,13 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c,
ARRAY_SIZE(aic31xx_dai_driver)); ARRAY_SIZE(aic31xx_dai_driver));
} }
static const struct i2c_device_id aic31xx_i2c_id[] = {
{ "tlv320aic310x", AIC3100 },
{ "tlv320aic311x", AIC3110 },
{ "tlv320aic3100", AIC3100 },
{ "tlv320aic3110", AIC3110 },
{ "tlv320aic3120", AIC3120 },
{ "tlv320aic3111", AIC3111 },
{ "tlv320dac3100", DAC3100 },
{ "tlv320dac3101", DAC3101 },
{ }
};
MODULE_DEVICE_TABLE(i2c, aic31xx_i2c_id);
static struct i2c_driver aic31xx_i2c_driver = { static struct i2c_driver aic31xx_i2c_driver = {
.driver = { .driver = {
.name = "tlv320aic31xx-codec", .name = "tlv320aic31xx-codec",
.of_match_table = of_match_ptr(tlv320aic31xx_of_match), .of_match_table = of_match_ptr(tlv320aic31xx_of_match),
.acpi_match_table = ACPI_PTR(aic31xx_acpi_match), .acpi_match_table = ACPI_PTR(aic31xx_acpi_match),
}, },
.probe = aic31xx_i2c_probe, .probe_new = aic31xx_i2c_probe,
.id_table = aic31xx_i2c_id, .id_table = aic31xx_i2c_id,
}; };
module_i2c_driver(aic31xx_i2c_driver); module_i2c_driver(aic31xx_i2c_driver);
......
...@@ -17,9 +17,9 @@ ...@@ -17,9 +17,9 @@
#include "tlv320aic32x4.h" #include "tlv320aic32x4.h"
static const struct of_device_id aic32x4_of_id[]; static const struct of_device_id aic32x4_of_id[];
static const struct i2c_device_id aic32x4_i2c_id[];
static int aic32x4_i2c_probe(struct i2c_client *i2c, static int aic32x4_i2c_probe(struct i2c_client *i2c)
const struct i2c_device_id *id)
{ {
struct regmap *regmap; struct regmap *regmap;
struct regmap_config config; struct regmap_config config;
...@@ -35,7 +35,10 @@ static int aic32x4_i2c_probe(struct i2c_client *i2c, ...@@ -35,7 +35,10 @@ static int aic32x4_i2c_probe(struct i2c_client *i2c,
oid = of_match_node(aic32x4_of_id, i2c->dev.of_node); oid = of_match_node(aic32x4_of_id, i2c->dev.of_node);
dev_set_drvdata(&i2c->dev, (void *)oid->data); dev_set_drvdata(&i2c->dev, (void *)oid->data);
} else if (id) { } else {
const struct i2c_device_id *id;
id = i2c_match_id(aic32x4_i2c_id, i2c);
dev_set_drvdata(&i2c->dev, (void *)id->driver_data); dev_set_drvdata(&i2c->dev, (void *)id->driver_data);
} }
...@@ -70,7 +73,7 @@ static struct i2c_driver aic32x4_i2c_driver = { ...@@ -70,7 +73,7 @@ static struct i2c_driver aic32x4_i2c_driver = {
.name = "tlv320aic32x4", .name = "tlv320aic32x4",
.of_match_table = aic32x4_of_id, .of_match_table = aic32x4_of_id,
}, },
.probe = aic32x4_i2c_probe, .probe_new = aic32x4_i2c_probe,
.remove = aic32x4_i2c_remove, .remove = aic32x4_i2c_remove,
.id_table = aic32x4_i2c_id, .id_table = aic32x4_i2c_id,
}; };
......
...@@ -17,10 +17,21 @@ ...@@ -17,10 +17,21 @@
#include "tlv320aic3x.h" #include "tlv320aic3x.h"
static int aic3x_i2c_probe(struct i2c_client *i2c, const struct i2c_device_id *id) static const struct i2c_device_id aic3x_i2c_id[] = {
{ "tlv320aic3x", AIC3X_MODEL_3X },
{ "tlv320aic33", AIC3X_MODEL_33 },
{ "tlv320aic3007", AIC3X_MODEL_3007 },
{ "tlv320aic3104", AIC3X_MODEL_3104 },
{ "tlv320aic3106", AIC3X_MODEL_3106 },
{ }
};
MODULE_DEVICE_TABLE(i2c, aic3x_i2c_id);
static int aic3x_i2c_probe(struct i2c_client *i2c)
{ {
struct regmap *regmap; struct regmap *regmap;
struct regmap_config config; struct regmap_config config;
const struct i2c_device_id *id = i2c_match_id(aic3x_i2c_id, i2c);
config = aic3x_regmap; config = aic3x_regmap;
config.reg_bits = 8; config.reg_bits = 8;
...@@ -37,16 +48,6 @@ static int aic3x_i2c_remove(struct i2c_client *i2c) ...@@ -37,16 +48,6 @@ static int aic3x_i2c_remove(struct i2c_client *i2c)
return 0; return 0;
} }
static const struct i2c_device_id aic3x_i2c_id[] = {
{ "tlv320aic3x", AIC3X_MODEL_3X },
{ "tlv320aic33", AIC3X_MODEL_33 },
{ "tlv320aic3007", AIC3X_MODEL_3007 },
{ "tlv320aic3104", AIC3X_MODEL_3104 },
{ "tlv320aic3106", AIC3X_MODEL_3106 },
{ }
};
MODULE_DEVICE_TABLE(i2c, aic3x_i2c_id);
static const struct of_device_id aic3x_of_id[] = { static const struct of_device_id aic3x_of_id[] = {
{ .compatible = "ti,tlv320aic3x", }, { .compatible = "ti,tlv320aic3x", },
{ .compatible = "ti,tlv320aic33" }, { .compatible = "ti,tlv320aic33" },
...@@ -62,7 +63,7 @@ static struct i2c_driver aic3x_i2c_driver = { ...@@ -62,7 +63,7 @@ static struct i2c_driver aic3x_i2c_driver = {
.name = "tlv320aic3x", .name = "tlv320aic3x",
.of_match_table = aic3x_of_id, .of_match_table = aic3x_of_id,
}, },
.probe = aic3x_i2c_probe, .probe_new = aic3x_i2c_probe,
.remove = aic3x_i2c_remove, .remove = aic3x_i2c_remove,
.id_table = aic3x_i2c_id, .id_table = aic3x_i2c_id,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment