From patchwork Thu Sep 27 09:15:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baolin Wang X-Patchwork-Id: 975619 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="D5NGjRgK"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 42LTnc4m9nz9s1c for ; Thu, 27 Sep 2018 19:21:08 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727844AbeI0PdO (ORCPT ); Thu, 27 Sep 2018 11:33:14 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:35194 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727204AbeI0PdO (ORCPT ); Thu, 27 Sep 2018 11:33:14 -0400 Received: by mail-pg1-f196.google.com with SMTP id v133-v6so1504247pgb.2 for ; Thu, 27 Sep 2018 02:15:58 -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; bh=axrz9BaLRBdHfIllkoNDC76+ARIPCmrfuOnxOMTj8gg=; b=D5NGjRgKUlOOSFX0MOOHgOZ46FT51aTGck3K+mATbtrlaBmnhCd3ZJtceJObyXEqBx V51Io6gzfSfYa872aCY5VwGPBAE3guh5+LtIwt7CHYkUplmwuYXo6Yp14au44qjlmtG7 OPHnDbWAOoLIoOEbq7ZT7Y+sNiNdLuY5QZoKU= 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; bh=axrz9BaLRBdHfIllkoNDC76+ARIPCmrfuOnxOMTj8gg=; b=geYxOLdj7yyDOOo38Fh0vjYY8jS5zXUTkWeDqNTNGlQLlMttosyq4D8pEFwjNsoAvM dcBIBlGbiuSm2Jfh5CMf4hAOxJST67SVRlSXge4JBxKlGTZFMFT+mr8gNyeWTvDzu2UD 52WRjbhGgjIo8pgeXvlpKpkoM4fjzug9dNgLKR6JrAJ4gTBOn0dJH7MGRhWSN4/Lt5Gu dEY+RUDlpDsthyTIHzx0MrzXEz6K2RkoR0P4OmeB8zfz7vymd7UBWaA6TuD87ZY54Iix fdsqMENGMe2o4ZkuD+CPlYzydj41Z8rV1xmCAS3IlDLBb7QPxkoNHZCQqPPUaQ+NXJJ3 dMkQ== X-Gm-Message-State: ABuFfohV4ccBvIVYXjhR6xMP2cRmO+oMa0BSbbC2tX1pdO3JJTAYAHA9 g9O3oXK848KzqNF3s/tBI8DKJQ== X-Google-Smtp-Source: ACcGV63gu695K0/1bz4vAJYi3s3OWsdhCxEYIaXiLydPVIubJ8a9P/OVT/Y9qyeOYO7VM9QjPIwdng== X-Received: by 2002:a17:902:1744:: with SMTP id i62-v6mr9929522pli.315.1538039757763; Thu, 27 Sep 2018 02:15:57 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id y1-v6sm2502023pfy.89.2018.09.27.02.15.53 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 27 Sep 2018 02:15:56 -0700 (PDT) From: Baolin Wang To: linus.walleij@linaro.org, orsonzhai@gmail.com, zhang.lyra@gmail.com Cc: baolin.wang@linaro.org, broonie@kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] pinctrl: sprd: Move DT parsing before registering pinctrl device Date: Thu, 27 Sep 2018 17:15:08 +0800 Message-Id: <07c454a686966823161ebfe1ed7c08f29032fb2c.1538039535.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org It will be failed to select default or sleep state for pins hogged by the pin controller device, since we hadn't parsed pins configuration in device tree before registering the pin controller device. Thus we should move the device tree parsing function before registering the pin controller device. Signed-off-by: Baolin Wang --- drivers/pinctrl/sprd/pinctrl-sprd.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/drivers/pinctrl/sprd/pinctrl-sprd.c b/drivers/pinctrl/sprd/pinctrl-sprd.c index 78c2f54..4537b54 100644 --- a/drivers/pinctrl/sprd/pinctrl-sprd.c +++ b/drivers/pinctrl/sprd/pinctrl-sprd.c @@ -1059,6 +1059,12 @@ int sprd_pinctrl_core_probe(struct platform_device *pdev, return ret; } + ret = sprd_pinctrl_parse_dt(sprd_pctl); + if (ret) { + dev_err(&pdev->dev, "fail to parse dt properties\n"); + return ret; + } + pin_desc = devm_kcalloc(&pdev->dev, pinctrl_info->npins, sizeof(struct pinctrl_pin_desc), @@ -1083,13 +1089,6 @@ int sprd_pinctrl_core_probe(struct platform_device *pdev, return PTR_ERR(sprd_pctl->pctl); } - ret = sprd_pinctrl_parse_dt(sprd_pctl); - if (ret) { - dev_err(&pdev->dev, "fail to parse dt properties\n"); - pinctrl_unregister(sprd_pctl->pctl); - return ret; - } - return 0; }