On 20.01.2016 16:50, Yang, Wenyou wrote: > Hi Peter, > > On 2016/1/20 15:40, Peter Korsgaard wrote: >>>>>>> "Yang," == Yang, Wenyou <Wenyou.Yang@xxxxxxxxx> writes: >> Hi, >> >>>> But the charger driver can just as well do: >> >> >> >> dev_get_regmap(dev->parent); >> >> >> >> instead of: >> >> >> >> dev_get_drvdata(pdev->dev.parent)->regmap. >> >> > For regulator, it works use the core do dev_get_regmap(dev->parent), >> > but for charger, it need to export *act8945a. >> >> Why? > > There is a callback (*get_property)(...), who will read the charger > register via regmap, > > but it doesn't provide the argument for regmap. > > include/linux/power_supply.h > > struct power_supply_desc { > [ ... ] > int (*get_property)(struct power_supply *psy, > enum power_supply_property psp, > union power_supply_propval *val); > [ ... ] > > } > >> >> Just like the regulator core does, your battery driver can do: >> >> dev_get_regmap(dev->parent); >> Why can't you store the pointer to regmap as power supply driver data? There is really no need for the structure containing only one pointer. BR, Krzysztof -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html