On Mon, Jun 18, 2012 at 12:39:38PM +0000, AnilKumar, Chimata wrote: > + if (config->regmap) > + rdev->regmap = config->regmap; > + else > + rdev->regmap = dev_get_regmap(dev->parent, NULL); No, this would be broken. We're specifically using the device we got passed in. In this case the fact that the regmap is on the MFD means that the driver does need to explicitly set the regmap. Or we should have this be a multi-stage series of checks: if (config->regmap) rdev->regmap = config->regmap; else if (dev_get_regmap(dev, NULL)) rdev->regmap = dev_get_regmap(dev, NULL); else if (dev->parent) rdev->regmap = dev_get_regmap(dev->parent, NULL); which should cover the MFD case if there's no regmap on the child without having to go through all the drivers doing it by hand.