On 27/02/13 14:26, Laxman Dewangan wrote: > On Wednesday 27 February 2013 07:51 PM, Graeme Gregory wrote: >> On 27/02/13 14:08, Laxman Dewangan wrote: >>> If driver is getting registered through DT then it look for >>> population of platform data which is not possible if platform >>> completely support the DT. >> No it doesnt! >>> In this case, if device is registered through DT then just ignore >>> platform data population and continue the further registration. >>> Signed-off-by: Laxman Dewangan <ldewan...@nvidia.com> >>> --- >>> drivers/mfd/palmas.c | 21 +++++++++------------ >>> 1 files changed, 9 insertions(+), 12 deletions(-) >>> >>> diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c >>> index 25f0eab..6771d9b 100644 >>> --- a/drivers/mfd/palmas.c >>> +++ b/drivers/mfd/palmas.c >>> @@ -465,18 +465,6 @@ static int palmas_i2c_probe(struct i2c_client >>> *i2c, >>> if (ret) >>> goto err_irq; >>> - /* >>> - * If we are probing with DT do this the DT way and return here >>> - * otherwise continue and add devices using mfd helpers. >>> - */ >>> - if (node) { >>> - ret = of_platform_populate(node, NULL, NULL, &i2c->dev); >>> - if (ret < 0) >>> - goto err_irq; >>> - else >>> - return ret; >>> - } >>> - >> At this point we exit the function and do nothing with the platform data >> which should work on wholy DT systems. I have tested it! > > > I think then dt files are different in this case. I did not saw the > documentation of dt file. > But following is my entry in dts file which we follow for other devices: > > i2c@7000d000 { > status = "okay"; > clock-frequency = <100000>; > > :::::::::::::: > tps65913@58 { > compatible = "ti,palmas"; > reg = <0x58>; > interrupts = <0 86 0x4>; > > #interrupt-cells = <2>; > interrupt-controller; > > #gpio-cells = <2>; > gpio-controller; > > regulators { > smps12 { > regulator-name = "palmas-smps12"; > regulator-min-microvolt = > <1350000>; > regulator-max-microvolt = > <1350000>; > regulator-always-on; > regulator-boot-on; > }; > > smps3 { > regulator-name = "palmas-smps3"; > regulator-min-microvolt = > <1800000>; > regulator-max-microvolt = > <1800000>; > regulator-always-on; > regulator-boot-on; > }; > ::::::::::::::: > }; > }; > }; > > > In the above DT file, it does not work. > > I did slip up and forget to push the documentation file, it has since started the upstream here
http://article.gmane.org/gmane.linux.documentation/9491/match=palmas+dts The design of the palmas was to make it properly hierarchical to stop nasty hacks like accessing parent of parent. As a MFD children should not be tightly bonded to the MFD device! Graeme -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/