mfd: Drop modifying mc13xxx driver's id_table in probe
This was introduced in commit
876989d
(mfd: Add device tree probe support for mc13xxx)
for spi and later while introducing support for i2c copied to the i2c
driver.
Modifying driver details is very strange, for example probing an
mc13892 device (instantiated via dt) removes the driver's ability to
handle (traditionally probed) mc13783 devices in this case.
I'm not aware of any problems that make this hack necessary and if
there were some, they'd have to be fixed in the spi/i2c core, not in
a driver.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
c600040f0d
commit
8b8495532c
|
@ -53,16 +53,10 @@ static struct regmap_config mc13xxx_regmap_i2c_config = {
|
||||||
static int mc13xxx_i2c_probe(struct i2c_client *client,
|
static int mc13xxx_i2c_probe(struct i2c_client *client,
|
||||||
const struct i2c_device_id *id)
|
const struct i2c_device_id *id)
|
||||||
{
|
{
|
||||||
const struct of_device_id *of_id;
|
|
||||||
struct i2c_driver *idrv = to_i2c_driver(client->dev.driver);
|
|
||||||
struct mc13xxx *mc13xxx;
|
struct mc13xxx *mc13xxx;
|
||||||
struct mc13xxx_platform_data *pdata = dev_get_platdata(&client->dev);
|
struct mc13xxx_platform_data *pdata = dev_get_platdata(&client->dev);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
of_id = of_match_device(mc13xxx_dt_ids, &client->dev);
|
|
||||||
if (of_id)
|
|
||||||
idrv->id_table = (const struct i2c_device_id*) of_id->data;
|
|
||||||
|
|
||||||
mc13xxx = devm_kzalloc(&client->dev, sizeof(*mc13xxx), GFP_KERNEL);
|
mc13xxx = devm_kzalloc(&client->dev, sizeof(*mc13xxx), GFP_KERNEL);
|
||||||
if (!mc13xxx)
|
if (!mc13xxx)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
|
@ -119,16 +119,10 @@ static struct regmap_bus regmap_mc13xxx_bus = {
|
||||||
|
|
||||||
static int mc13xxx_spi_probe(struct spi_device *spi)
|
static int mc13xxx_spi_probe(struct spi_device *spi)
|
||||||
{
|
{
|
||||||
const struct of_device_id *of_id;
|
|
||||||
struct spi_driver *sdrv = to_spi_driver(spi->dev.driver);
|
|
||||||
struct mc13xxx *mc13xxx;
|
struct mc13xxx *mc13xxx;
|
||||||
struct mc13xxx_platform_data *pdata = dev_get_platdata(&spi->dev);
|
struct mc13xxx_platform_data *pdata = dev_get_platdata(&spi->dev);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
of_id = of_match_device(mc13xxx_dt_ids, &spi->dev);
|
|
||||||
if (of_id)
|
|
||||||
sdrv->id_table = &mc13xxx_device_id[(enum mc13xxx_id) of_id->data];
|
|
||||||
|
|
||||||
mc13xxx = devm_kzalloc(&spi->dev, sizeof(*mc13xxx), GFP_KERNEL);
|
mc13xxx = devm_kzalloc(&spi->dev, sizeof(*mc13xxx), GFP_KERNEL);
|
||||||
if (!mc13xxx)
|
if (!mc13xxx)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
Loading…
Reference in New Issue