Need APIs to add regmap in dev

From: Laxman Dewangan
Date: Wed Jan 13 2016 - 14:07:49 EST


Hi Mark,
when working on unification of Max77620, MAX77686 RTC driver, I came to need of APIs from regmap to add the device as devres.

int dev_add_regmap(dev, regmap);

This will add the regmap in the dev resource of device. This will help to get the regmap handle from device using dev_get_regmap(). This APIs will be different from the regmap_attach_dev() where map->dev is moved to new device.

The requirement came from multiple i2c slave address device like MAX77620.
MAX77620 has 2 i2c address 0x3C and 0x68. 0x68 is for RTC IP block.
we register device with 0x3C and create dummy i2c client for 0x68 inside driver.
We create two regmap, one from 0x3C i2c client as rmap_0x3c and other from 0x68 i2c dummy client rmap_0x68.

Now in RTC driver(mfd device), we have the parent device as dev_0x3c.
When we try to get the regmap handle, we only get one regmap per device as we register regmap with different devices.

If I had above API then I can add the rmap_0x68 in the dev_0x3c as dev_res. By this I can have two regmap list on dev_0x3c and get rmap handle by dev_get_regmap(dev_0x3c, "pmic-slave") and dev_get_regmap(dev_0x3c, "rtc-slave");


I like to know your comment on this approach to add the regmap on different device resource.

Thanks,
Laxman