From patchwork Mon Jul 5 02:50:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shawn Guo X-Patchwork-Id: 470231 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 03F56C07E95 for ; Mon, 5 Jul 2021 02:50:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CE3F761410 for ; Mon, 5 Jul 2021 02:50:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229760AbhGECxc (ORCPT ); Sun, 4 Jul 2021 22:53:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229744AbhGECxb (ORCPT ); Sun, 4 Jul 2021 22:53:31 -0400 Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D4480C061762 for ; Sun, 4 Jul 2021 19:50:54 -0700 (PDT) Received: by mail-pg1-x531.google.com with SMTP id w15so16928368pgk.13 for ; Sun, 04 Jul 2021 19:50:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=BVkVvoLhlvv3KppO1b0TRg6fddRYWUrnF61FALx2Tlg=; b=RLMt+5SGRUMwjcxTeILVJP0YqCzVQGNhwSlb7M1kOV12rHTmadCBJTIMw9keQJpKtM te5EyOcJv5Hhtw/VzLQ0WQ/SfMchIiYf0akkEUWulD68s1lj/rWCanhMI7DcKDGUJ5RM c3WmV3+OKUy4E5eA5vxDpHl+HJLRBJH1D6zFpvsTr6DnJj8AJhzsWWMdQHhhM4rz763o /K8V40tpnHRMo+HAOZTjf472ihe0bZwAeoUqeOHm//CkTMTtWY5RbH1HT0uirq/rl36V mTnHkUhxHi+fsaB5AhaebK9+aWUv4BgPTSaH6buwSL4g9PRFpDL+dxQ0+fPRfuJXmaBe fTpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=BVkVvoLhlvv3KppO1b0TRg6fddRYWUrnF61FALx2Tlg=; b=r6ihUeRcN8ZG3rVmx4Kw7PMhkFujKNzlO+XtbXpXOc51OrDalj/RfF0z0r0rtqXWY+ sYN6iHmwZNwA95PEpSnIrxGWW9y0OAr2BhjXBDq/4Sl0nTVumrnXBzW1uk/ncbRhreHw FBdqoFWiJke3/1WdBllF5p/JLnBfcspl3huntx50XXivCz+ucggctMcZcbZVhN+yikwo ZIpeQ1bOHjL86t6UnURUts17a7uDCArTtDAYp6tGLHp4IFS9B4rlICR7L+oCPFad7LA0 mpLWtzHIa/lFuoANhJ1jx2xFtmR5s/cdzhZddrJZku0zAV5zhzHuE0jbKXt2GbI612j+ v91Q== X-Gm-Message-State: AOAM533WU5DII3J1MQ3vEJsjYm/BbYbf5XNijjut73nKF5GdkJyiLHpG F7llzLMZgZWJp8ehQ56F803UqA== X-Google-Smtp-Source: ABdhPJy2wxkmR9njdKtQHvZAuf5Z8esv5vUXz+zBwMP32HUxP1F5FUGrVZJDfmyfKZa2xtORNFJonw== X-Received: by 2002:a63:5117:: with SMTP id f23mr13113629pgb.200.1625453454408; Sun, 04 Jul 2021 19:50:54 -0700 (PDT) Received: from localhost.localdomain (80.251.214.228.16clouds.com. [80.251.214.228]) by smtp.gmail.com with ESMTPSA id i13sm11891041pgm.26.2021.07.04.19.50.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 04 Jul 2021 19:50:53 -0700 (PDT) From: Shawn Guo To: Sebastian Reichel Cc: Stephan Gerhold , Rob Herring , Vinod Koul , Bjorn Andersson , devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, Shawn Guo Subject: [PATCH 1/3] dt-bindings: power: reset: Convert qcom, pon to DT schema Date: Mon, 5 Jul 2021 10:50:30 +0800 Message-Id: <20210705025032.12804-2-shawn.guo@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210705025032.12804-1-shawn.guo@linaro.org> References: <20210705025032.12804-1-shawn.guo@linaro.org> Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org It converts qcom,pon DT bindings from legacy bare text to YAML format. Signed-off-by: Shawn Guo --- .../bindings/power/reset/qcom,pon.txt | 49 ------------------- .../bindings/power/reset/qcom,pon.yaml | 49 +++++++++++++++++++ 2 files changed, 49 insertions(+), 49 deletions(-) delete mode 100644 Documentation/devicetree/bindings/power/reset/qcom,pon.txt create mode 100644 Documentation/devicetree/bindings/power/reset/qcom,pon.yaml diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.txt b/Documentation/devicetree/bindings/power/reset/qcom,pon.txt deleted file mode 100644 index 0c0dc3a1e693..000000000000 --- a/Documentation/devicetree/bindings/power/reset/qcom,pon.txt +++ /dev/null @@ -1,49 +0,0 @@ -Qualcomm PON Device - -The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey -and resin along with the Android reboot-mode. - -This DT node has pwrkey and resin as sub nodes. - -Required Properties: --compatible: Must be one of: - "qcom,pm8916-pon" - "qcom,pms405-pon" - "qcom,pm8998-pon" - --reg: Specifies the physical address of the pon register - -Optional subnode: --pwrkey: Specifies the subnode pwrkey and should follow the - qcom,pm8941-pwrkey.txt description. --resin: Specifies the subnode resin and should follow the - qcom,pm8xxx-pwrkey.txt description. - -The rest of the properties should follow the generic reboot-mode description -found in reboot-mode.txt - -Example: - - pon@800 { - compatible = "qcom,pm8916-pon"; - - reg = <0x800>; - mode-bootloader = <0x2>; - mode-recovery = <0x1>; - - pwrkey { - compatible = "qcom,pm8941-pwrkey"; - interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>; - debounce = <15625>; - bias-pull-up; - linux,code = ; - }; - - resin { - compatible = "qcom,pm8941-resin"; - interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>; - debounce = <15625>; - bias-pull-up; - linux,code = ; - }; - }; diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml b/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml new file mode 100644 index 000000000000..7764c804af1d --- /dev/null +++ b/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/power/reset/qcom,pon.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm PON Device + +maintainers: + - Vinod Koul + +description: | + The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey + and resin along with the Android reboot-mode. + +properties: + compatible: + enum: + - qcom,pm8916-pon + - qcom,pms405-pon + - qcom,pm8998-pon + + reg: + maxItems: 1 + +patternProperties: + "^mode-.+": + $ref: /schemas/types.yaml#/definitions/uint32 + description: Vendor-specific mode value written to the mode register + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + pmic { + #address-cells = <1>; + #size-cells = <0>; + + pon@800 { + compatible = "qcom,pm8916-pon"; + reg = <0x800>; + mode-bootloader = <0x2>; + mode-recovery = <0x1>; + }; + }; From patchwork Mon Jul 5 02:50:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shawn Guo X-Patchwork-Id: 470525 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E161C07E9D for ; Mon, 5 Jul 2021 02:51:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5465B613FB for ; Mon, 5 Jul 2021 02:51:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229743AbhGECxe (ORCPT ); Sun, 4 Jul 2021 22:53:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37740 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229771AbhGECxe (ORCPT ); Sun, 4 Jul 2021 22:53:34 -0400 Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 86D03C061764 for ; Sun, 4 Jul 2021 19:50:57 -0700 (PDT) Received: by mail-pj1-x102a.google.com with SMTP id b14-20020a17090a7aceb029017261c7d206so7866771pjl.5 for ; Sun, 04 Jul 2021 19:50:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=77N/67rSOupK1Chm3/4oKVH0HtWBRmi/Fw54y3WWFfQ=; b=S6Zwf1e/LnhulYerNCjOfNqfeDM2VNDoZdMluwc3wcHJSiqhctzalDIDSatEGVnmOB VQkDMHBpuhJEsiy2S27bV/QZly6xp8pB747+9EbgURxw2OCg248OBM4ZmZIYdlbTyqI2 NcCI/WwKylPxOgQaMxi4dmS4tZlIxQUOIzCqeIzbxR/JUzuw7v2l0y52xwnRcFzi0Sjt KmOZVzz9Vl1L2EizywSdr42sg+iGV5zyo1yI712mGkDA/ivTAlkeyKRGX9ZUnra0vByF cWSnCKx9r6sb80MUZfwir9AVb2w3mBmQmwcf0Xrzg788T8txOttYtmh7AJ21irw2iMpv SZng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=77N/67rSOupK1Chm3/4oKVH0HtWBRmi/Fw54y3WWFfQ=; b=q+GdPkwi3fhS6TTowHXzlBsuSJPME8h5/BDtv4AcCK95aG3KfTp9YnsAp4/VCaAvRo tivXpn2orU13iGHVOuTJ29Po5lrZ4GjnF/oWv24V7rDWv6XpqmHVeaZic49mt89VfIxc NxD/DkDAMyVxrJHzLRZ670RbEIfbD6RmnMp0LNmOoQQwg2d9RhkWIegQivlBr9ZM8Ql0 n0cy2PxB89qTuKJcl9eQJ5oyfEFvwl4Up9W+t7aq3OBsppPU1elMIrXayiIjk9mvxnKH A2WdAZZo0ipt17wPLykl3blxpbQrQkvH7BpsP4Zq3uySipPL0tygytPakH4lmD9dBiaY K/3Q== X-Gm-Message-State: AOAM5322jKi/pwUWWufZ+d2kPork4udHWtVMshCuipqEBhcAVdOq5VM5 K4cDSQXHVbhuDdYZZvfnRkUVCQ== X-Google-Smtp-Source: ABdhPJzY3f2gHVvXij7AuGGJdzr5F1gId59J7RbuJOiaJF1b0tz0kXpXacL91zrmEuq87bpq31xp6Q== X-Received: by 2002:a17:90b:1085:: with SMTP id gj5mr12758117pjb.166.1625453457107; Sun, 04 Jul 2021 19:50:57 -0700 (PDT) Received: from localhost.localdomain (80.251.214.228.16clouds.com. [80.251.214.228]) by smtp.gmail.com with ESMTPSA id i13sm11891041pgm.26.2021.07.04.19.50.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 04 Jul 2021 19:50:56 -0700 (PDT) From: Shawn Guo To: Sebastian Reichel Cc: Stephan Gerhold , Rob Herring , Vinod Koul , Bjorn Andersson , devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, Shawn Guo Subject: [PATCH 2/3] dt-bindings: qcom, pon: Add 'qcom, pon-reboot-not-used' property Date: Mon, 5 Jul 2021 10:50:31 +0800 Message-Id: <20210705025032.12804-3-shawn.guo@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210705025032.12804-1-shawn.guo@linaro.org> References: <20210705025032.12804-1-shawn.guo@linaro.org> Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Add an optional 'qcom,pon-reboot-not-used' property for devices, which do not use PON register to pass reboot mode but other mechanism, e.g. particular IMEM address. Signed-off-by: Shawn Guo --- Documentation/devicetree/bindings/power/reset/qcom,pon.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml b/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml index 7764c804af1d..584eff179904 100644 --- a/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml +++ b/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml @@ -23,6 +23,10 @@ properties: reg: maxItems: 1 + qcom,pon-reboot-not-used: + description: Support of reboot mode passing through PON register is not used + type: boolean + patternProperties: "^mode-.+": $ref: /schemas/types.yaml#/definitions/uint32 From patchwork Mon Jul 5 02:50:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shawn Guo X-Patchwork-Id: 470230 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1887FC07E9C for ; Mon, 5 Jul 2021 02:51:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 06AB1613D2 for ; Mon, 5 Jul 2021 02:51:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229744AbhGECxh (ORCPT ); Sun, 4 Jul 2021 22:53:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37766 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229787AbhGECxh (ORCPT ); Sun, 4 Jul 2021 22:53:37 -0400 Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89487C0613DB for ; Sun, 4 Jul 2021 19:51:00 -0700 (PDT) Received: by mail-pl1-x631.google.com with SMTP id f11so9515187plg.0 for ; Sun, 04 Jul 2021 19:51:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0w/ce/936AZE4PtNhcMd+7r7gKVsqIHrI5nqRlAtLJk=; b=HS4DyokZjNGvEUjCkb3k7+6tLiLu+9QZbUual5EICb3H0E611KtRHmRo8JYvg0TfNO Y8kF+Uoy50inNABUw+jcEhAO2vk5lzCbo5cwGzVXbvm3kMflpVoG1R2EBxe29QkX2lNS YA5SPYNUXVAK0gL19ki+6EURzdH4Gwt+3OPNGWvCxN/uMitaMWwHt3W86ORvMXf0Uw92 kzsXMRAJRoO4yOxPxTmYD4zVhadsDfn5ol2kq4nI2PzTtJegJ3+Fo8fBV0vKovxl7lg2 9KTqQxARG5Zlj0G+6r8qvayrlxpY02gA2pWg//f1Yxi1tNVvs76AalKd1Y2CtibjLqL+ 93cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=0w/ce/936AZE4PtNhcMd+7r7gKVsqIHrI5nqRlAtLJk=; b=AC4g6wjWiZuQyKOKlWmJCJj/KC0+yPAeXf+KE6AMKQUHmtVASqKjcWBvS1AK3I8llx JjnMhHrS2R11DFJC8TUXufwI6xahc6CeJc5xzMHLeIgCWRl1gcsLDr+4nxB70etbueIx nrmeuA3dAhs4KtHuw8Lei7vABik13av3zsFUANFfKtbZVvL6z53ReRPK+cpEKbD+1rNG +gxPumJfWQxt8Y2sEFlXx1JVk/CJQiEF56pN0RtXzovLrcFpFiQRpBU43/X96ejhaiOZ cNAR7+9PsFb8DOB2R18v94dvp3nlvTEhFMEJCKUQAz0C4B52gJWd1lQJgfOdNO9IKJ2Y JyNQ== X-Gm-Message-State: AOAM530O1ZZHXVX9isDzXyRoeJrZ0JjbHtOiqaBGuGcMnzZhX4wMfOWJ X3n5QsFe9D6uE0T+q+BPr1CiYA== X-Google-Smtp-Source: ABdhPJxH+9i4yo7wFWjD0w0TRpb1iYk8WxY/FIwfzUZgWVgaPg6VBySJA65RG9M5Ibx19O7PxyP1uw== X-Received: by 2002:a17:902:b203:b029:127:16e0:286a with SMTP id t3-20020a170902b203b029012716e0286amr10451169plr.0.1625453460017; Sun, 04 Jul 2021 19:51:00 -0700 (PDT) Received: from localhost.localdomain (80.251.214.228.16clouds.com. [80.251.214.228]) by smtp.gmail.com with ESMTPSA id i13sm11891041pgm.26.2021.07.04.19.50.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 04 Jul 2021 19:50:59 -0700 (PDT) From: Shawn Guo To: Sebastian Reichel Cc: Stephan Gerhold , Rob Herring , Vinod Koul , Bjorn Andersson , devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, Shawn Guo Subject: [PATCH 3/3] power: reset: qcom-pon: Add support for 'qcom, pon-reboot-not-used' Date: Mon, 5 Jul 2021 10:50:32 +0800 Message-Id: <20210705025032.12804-4-shawn.guo@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210705025032.12804-1-shawn.guo@linaro.org> References: <20210705025032.12804-1-shawn.guo@linaro.org> Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Check property 'qcom,pon-reboot-not-used' and skip reboot-mode setup if the property is present. This is useful for devices that use IMEM instead of PON register to pass reboot mode, but still want to populate pwrkey and resin devices. Signed-off-by: Shawn Guo --- drivers/power/reset/qcom-pon.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/power/reset/qcom-pon.c b/drivers/power/reset/qcom-pon.c index 4a688741a88a..85fae9e85878 100644 --- a/drivers/power/reset/qcom-pon.c +++ b/drivers/power/reset/qcom-pon.c @@ -47,6 +47,14 @@ static int pm8916_pon_probe(struct platform_device *pdev) struct pm8916_pon *pon; int error; + if (device_property_present(&pdev->dev, "qcom,pon-reboot-not-used")) { + /* + * Skip reboot-mode setup and registration if PON is not used + * for passing reboot mode at all. + */ + goto done; + } + pon = devm_kzalloc(&pdev->dev, sizeof(*pon), GFP_KERNEL); if (!pon) return -ENOMEM; @@ -75,6 +83,7 @@ static int pm8916_pon_probe(struct platform_device *pdev) platform_set_drvdata(pdev, pon); +done: return devm_of_platform_populate(&pdev->dev); }