Re: [PATCH V2 1/2] mfd: da9063: Add device tree support

Lee Jones
2015-01-20T10:45:52Z

On Mon, 19 Jan 2015, Steve Twiss wrote:

> From: Steve Twiss <stwiss.opensource@diasemi.com>
>
> Add device tree support for DA9063 regulators; Real-Time Clock
> and Watchdog.
>
> This patch is dependent on PATCH V2 2/2
>
> Signed-off-by: Steve Twiss <stwiss.opensource@diasemi.com>
>
> ---
> This patch applies against linux-next and v3.19-rc4
>
> drivers/mfd/da9063-core.c | 2 ++
> drivers/mfd/da9063-i2c.c | 11 +++++++++++
> include/linux/mfd/da9063/core.h | 1 +
> 3 files changed, 14 insertions(+)
>
> diff --git a/drivers/mfd/da9063-core.c b/drivers/mfd/da9063-core.c
> index f38bc98..facd361 100644
> --- a/drivers/mfd/da9063-core.c
> +++ b/drivers/mfd/da9063-core.c
> @@ -86,6 +86,7 @@ static const struct mfd_cell da9063_devs[] = {
> },
> {
> .name = DA9063_DRVNAME_WATCHDOG,
> + .of_compatible = "dlg,da9063-watchdog",
> },
> {
> .name = DA9063_DRVNAME_HWMON,
> @@ -101,6 +102,7 @@ static const struct mfd_cell da9063_devs[] = {
> .name = DA9063_DRVNAME_RTC,
> .num_resources = ARRAY_SIZE(da9063_rtc_resources),
> .resources = da9063_rtc_resources,
> + .of_compatible = "dlg,da9063-rtc",
> },
> {
> .name = DA9063_DRVNAME_VIBRATION,
> diff --git a/drivers/mfd/da9063-i2c.c b/drivers/mfd/da9063-i2c.c
> index 21fd8d9..0e94b20 100644
> --- a/drivers/mfd/da9063-i2c.c
> +++ b/drivers/mfd/da9063-i2c.c
> @@ -25,6 +25,9 @@
> #include <linux/mfd/da9063/pdata.h>
> #include <linux/mfd/da9063/registers.h>
>
> +#include <linux/of.h>
> +#include <linux/regulator/of_regulator.h>
> +
> static const struct regmap_range da9063_ad_readable_ranges[] = {
> {
> .range_min = DA9063_REG_PAGE_CON,
> @@ -203,6 +206,13 @@ static struct regmap_config da9063_regmap_config = {
> .cache_type = REGCACHE_RBTREE,
> };
>
> +static const struct of_device_id da9063_dt_ids[] = {
> + { .compatible = "dlg,da9063-ad", },
> + { .compatible = "dlg,da9063-bb", },
> + { .compatible = "dlg,da9063-ca", },

I'm still a bit bemused as to why these require their own compatible
strings? They are never matched (of_match_device()) on and it appears
they can be dynamically told apart by poking.

--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog