In trying to wire up the powerkey driver, I found I
needed to add this to get the pmic logic to probe
child nodes in the dt data.

With this patch, child nodes get properly probed.

Cc: Dmitry Torokhov <dmitry.torok...@gmail.com>
Cc: Rob Herring <robh...@kernel.org>
Cc: Pawel Moll <pawel.m...@arm.com>
Cc: Mark Rutland <mark.rutl...@arm.com>
Cc: Ian Campbell <ijc+devicet...@hellion.org.uk>
Cc: Kumar Gala <ga...@codeaurora.org>
Cc: Lee Jones <lee.jo...@linaro.org>
Cc: Jorge Ramirez-Ortiz <jorge.ramirez-or...@linaro.org>
Cc: Wei Xu <xuw...@hisilicon.com>
Cc: Guodong Xu <guodong...@linaro.org>
Signed-off-by: John Stultz <john.stu...@linaro.org>
---
 drivers/mfd/hi655x-pmic.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/mfd/hi655x-pmic.c b/drivers/mfd/hi655x-pmic.c
index 05ddc78..3511035 100644
--- a/drivers/mfd/hi655x-pmic.c
+++ b/drivers/mfd/hi655x-pmic.c
@@ -39,6 +39,11 @@ static const struct regmap_irq hi655x_irqs[] = {
        { .reg_offset = 0, .mask = RESERVE_INT },
 };
 
+static const struct of_device_id of_hi655x_pmic_child_match_tbl[] = {
+       { .compatible = "hisilicon,hi6552-powerkey", },
+       { /* end */ }
+};
+
 static const struct regmap_irq_chip hi655x_irq_chip = {
        .name = "hi655x-pmic",
        .irqs = hi655x_irqs,
@@ -122,6 +127,9 @@ static int hi655x_pmic_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, pmic);
 
+       /* populate sub nodes */
+       of_platform_populate(np, of_hi655x_pmic_child_match_tbl, NULL, dev);
+
        ret = mfd_add_devices(dev, PLATFORM_DEVID_AUTO, hi655x_pmic_devs,
                              ARRAY_SIZE(hi655x_pmic_devs), NULL, 0, NULL);
        if (ret) {
-- 
1.9.1

Reply via email to