From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964823AbcFCWLm (ORCPT ); Fri, 3 Jun 2016 18:11:42 -0400 Received: from mail-pf0-f177.google.com ([209.85.192.177]:36252 "EHLO mail-pf0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1422632AbcFCWLd (ORCPT ); Fri, 3 Jun 2016 18:11:33 -0400 From: John Stultz To: lkml Cc: John Stultz , Dmitry Torokhov , Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , Lee Jones , Jorge Ramirez-Ortiz , Wei Xu , Guodong Xu Subject: [PATCH 2/5] hi655x-pmic: Make hi655x pmic logic probe child nodes in the dt Date: Fri, 3 Jun 2016 15:11:23 -0700 Message-Id: <1464991886-632-3-git-send-email-john.stultz@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1464991886-632-1-git-send-email-john.stultz@linaro.org> References: <1464991886-632-1-git-send-email-john.stultz@linaro.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Ian Campbell Cc: Kumar Gala Cc: Lee Jones Cc: Jorge Ramirez-Ortiz Cc: Wei Xu Cc: Guodong Xu Signed-off-by: John Stultz --- 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