[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140207105657.GL14727@lee--X1>
Date: Fri, 7 Feb 2014 10:56:57 +0000
From: Lee Jones <lee.jones@...aro.org>
To: Adam Thomson <Adam.Thomson.Opensource@...semi.com>
Cc: Mark Brown <broonie@...nel.org>, alsa-devel@...a-project.org,
linux-kernel@...r.kernel.org, devicetree@...r.kernel.org,
Rob Herring <robh+dt@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>,
Dmitry Torokhov <dmitry.torokhov@...il.com>,
Alessandro Zummo <a.zummo@...ertech.it>,
Guenter Roeck <linux@...ck-us.net>
Subject: Re: [PATCH v2 1/8] ASoC: da9055: Fix device registration of PMIC and
CODEC devices
> Currently the I2C device Ids conflict for the MFD and CODEC so
> cannot be both instantiated on one platform. This patch updates
> the Ids and names to make them unique from each other.
>
> It should be noted that the I2C addresses for both PMIC and CODEC
> are modifiable so instantiation of the two are kept as separate
> devices, rather than instantiating the CODEC from the MFD code.
>
> Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@...semi.com>
> Acked-by: Mark Brown <broonie@...aro.org>
> ---
> drivers/mfd/da9055-i2c.c | 12 ++++++++++--
> sound/soc/codecs/da9055.c | 11 +++++++++--
> 2 files changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/mfd/da9055-i2c.c b/drivers/mfd/da9055-i2c.c
> index 13af7e5..8103e43 100644
> --- a/drivers/mfd/da9055-i2c.c
> +++ b/drivers/mfd/da9055-i2c.c
> @@ -53,17 +53,25 @@ static int da9055_i2c_remove(struct i2c_client *i2c)
> return 0;
> }
>
> +/*
> + * DO NOT change the device Ids. The naming is intentionally specific as both
> + * the PMIC and CODEC parts of this chip are instantiated separately as I2C
> + * devices (both have configurable I2C addresses, and are to all intents and
> + * purposes separate). As a result there are specific DA9055 ids for PMIC
> + * and CODEC, which must be different to operate together.
> + */
I'm not sure this comment is required.
Most device IDs are named this way.
> static struct i2c_device_id da9055_i2c_id[] = {
> - {"da9055", 0},
> + {"da9055-pmic", 0},
> { }
> };
> +MODULE_DEVICE_TABLE(i2c, da9055_i2c_id);
>
> static struct i2c_driver da9055_i2c_driver = {
> .probe = da9055_i2c_probe,
> .remove = da9055_i2c_remove,
> .id_table = da9055_i2c_id,
> .driver = {
> - .name = "da9055",
> + .name = "da9055-pmic",
> .owner = THIS_MODULE,
> },
> };
> diff --git a/sound/soc/codecs/da9055.c b/sound/soc/codecs/da9055.c
> index 52b79a4..4228126 100644
> --- a/sound/soc/codecs/da9055.c
> +++ b/sound/soc/codecs/da9055.c
> @@ -1523,8 +1523,15 @@ static int da9055_remove(struct i2c_client *client)
> return 0;
> }
>
> +/*
> + * DO NOT change the device Ids. The naming is intentionally specific as both
> + * the CODEC and PMIC parts of this chip are instantiated separately as I2C
> + * devices (both have configurable I2C addresses, and are to all intents and
> + * purposes separate). As a result there are specific DA9055 Ids for CODEC
> + * and PMIC, which must be different to operate together.
> + */
And here, really, no need.
> static const struct i2c_device_id da9055_i2c_id[] = {
> - { "da9055", 0 },
> + { "da9055-codec", 0 },
> { }
> };
> MODULE_DEVICE_TABLE(i2c, da9055_i2c_id);
> @@ -1532,7 +1539,7 @@ MODULE_DEVICE_TABLE(i2c, da9055_i2c_id);
> /* I2C codec control layer */
> static struct i2c_driver da9055_i2c_driver = {
> .driver = {
> - .name = "da9055",
> + .name = "da9055-codec",
> .owner = THIS_MODULE,
> },
> .probe = da9055_i2c_probe,
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists