From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753386AbeAQNer (ORCPT + 1 other); Wed, 17 Jan 2018 08:34:47 -0500 Received: from mail-eopbgr30129.outbound.protection.outlook.com ([40.107.3.129]:45475 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753105AbeAQNek (ORCPT ); Wed, 17 Jan 2018 08:34:40 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; From: Peter Rosin To: linux-kernel@vger.kernel.org Cc: Peter Rosin , Linus Walleij , Andrew Jeffery , Charles Keepax , linux-gpio@vger.kernel.org Subject: [PATCH 2/3] pinctrl: sx150x: register pinctrl before adding the gpiochip Date: Wed, 17 Jan 2018 14:34:22 +0100 Message-Id: <20180117133423.4482-3-peda@axentia.se> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180117133423.4482-1-peda@axentia.se> References: <20180117133423.4482-1-peda@axentia.se> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [85.226.244.23] X-ClientProxiedBy: AM3PR03CA0062.eurprd03.prod.outlook.com (2603:10a6:207:5::20) To VI1PR0202MB2783.eurprd02.prod.outlook.com (2603:10a6:800:db::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8622b017-a528-4df6-fa06-08d55daf0c79 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(7021125)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:VI1PR0202MB2783; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0202MB2783;3:2cFYVvzIWSoQrMgSBQRYOsvcCGIJ71isHMzXJZs4HsT6yluqm7NlFmAXkAhVdOspJb55mUWKX9EoZqJ9R0+NUqCN7YqopRl/Vk0e0iVa3ukHj+R+Q/UiLQ7WWvVq+OYsdifxI6FYNlkEvtTY86NGsK4bnCDHbMhs7ixis6G8cNbDkoV90Jr0ifuUh5AD3IZXZZFOCUfEppmo6RtJh/WeJHZQ0NYcqFrFyd5YArdx9qqsoayQlFtLxIictC1LZPWb;25:B6OSrBhjZw5ysW0GY9GxizOBr2KHEy11lcp6sk5KIfldI8N1YIdffO2LeXyZ4XyjDDj8XfjEGA/BF3QHprK310rMmWV8K07/LKcxujDyAYxIolsXueR0YQ8zdLrCKwu/hu9zK8nEiLMYvPpDBup9rfR6GH98DCk9aUCWp7/dxeOCvYGChLaw2LDDtaGrBm+lHiIa0lG49PP/UlNlZja/LU39KsFh/4xhL9w+d+WnsxVPj+SxphZaDdR173zXjRItm746HqUsGcDZyEtWOF5nXP00ovviLTFZZMRn87Hqt1tb0sucekNkAloY05EnbHgwV2ZV6PNd0koqVuHL8EVzhQ==;31:kUabBreYP9M4Ti80RFb1IVwM46BWG2PL+20XQmI4IyDWeBaqR7G+w4VWq6OItXzhkRoM48fFt5zWhWgoNBwXLG48h3qoubpa9/uLvscQVCGf5Q67UHupU5C50Vfpmfg/zhY8ll4wXb09WxQnHv0YCd4XKS2V/YO+KgJqSzeQ24jg9Njy30sT915exZ2n3MuEVAG25UP/K3Qx/Zs+2f1uIzqo9B/C1Gp643gjxZ+YNo0= X-MS-TrafficTypeDiagnostic: VI1PR0202MB2783: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(5005006)(8121501046)(10201501046)(3231023)(944501161)(93006095)(93001095)(3002001)(6041268)(2016111802025)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123562045)(6043046)(6072148)(201708071742011);SRVR:VI1PR0202MB2783;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:VI1PR0202MB2783; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0202MB2783;4:iQ0hNOc9A9EAm+ZAdJ5LMleKwj/kYHZhPNUACYTFQOEHwX5nHqtYQMK9nDSun4w3YJtwV2AKeKPxbAOeesIHbeEd4Xb1iDbUII0ls/vOlmTT6OUtU8zUGIod5KV6VH9hlThP32M8b8UeCvv4ya9+1cVyQgYls8bZzw19IKjuhVBGNy69KEWuMgzVn79914pCK67lHJ3Q8pUCAUKtf0lUjtabl6LikxwOMy37avFgmPoo8TnG6Bi2kAN4nU2YXakqE/FtoGReH7hhtC/Ew3bomQ== X-Forefront-PRVS: 0555EC8317 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(346002)(39830400003)(376002)(396003)(39380400002)(366004)(199004)(189003)(7736002)(81156014)(50226002)(2950100002)(478600001)(26005)(76176011)(51416003)(52116002)(16526018)(4326008)(6666003)(2351001)(2361001)(105586002)(106356001)(1076002)(97736004)(36756003)(66066001)(86362001)(74482002)(50466002)(47776003)(6116002)(3846002)(316002)(386003)(48376002)(6512007)(6506007)(6486002)(6916009)(16586007)(25786009)(5660300001)(53936002)(305945005)(8936002)(81166006)(2906002)(68736007)(8676002)(54906003)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR0202MB2783;H:orc.pedanet;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR0202MB2783;23:ivGooKrJhCQ9PD2MNsPKVZXSBce11TG2WKWEwbb?= =?us-ascii?Q?9VbkfwYr4GCWr11RpU4lIx5ab5paEAQOpUCpNml9YGAWsuf7Hc/IvFja0kCn?= =?us-ascii?Q?O1h8afmQhM4tzibPDaJxg2+dj4Ydd4FTFWD9AxjMJBcr10/ZsmhRfFx+k4YH?= =?us-ascii?Q?nFwVHsJWgcoGvBATmOefiJ8Es7WiTzLhFEPjY0oRZK6br7u1461QJZiUzkvu?= =?us-ascii?Q?mJiBMyzck5c+Icjn+XPV0MNOYmVDo7Uszy8VPsJZH6LrtkHZtzI8Ky3N9BHo?= =?us-ascii?Q?IehIzJW2a1IYgAo686C2rvd0E2aPvUNxRs6ChhDogBO+Xxv+81Z65RM1eWnF?= =?us-ascii?Q?tEyLVy+TBm2/b+8OIf81ZX4u0maCanwPylO0UyrNXzluWyVb9WSKi5Lp35i7?= =?us-ascii?Q?CKkHXN8m10WJwbCKWx2w6EuZJPsheGhXvrt3NDS3Tu/T1AjtINY0FNzGJ5Pa?= =?us-ascii?Q?U5JKhvhSe24PQ/mQ6GJcr6IrZubxQLnLCfEMxsXY6pB0gdpwSL0aJbXKqbti?= =?us-ascii?Q?v1LW43k5GLPq9KZMxBgLC3bglFSa8+GpEQslOWayd39GiF18O/dQ9xxvPECx?= =?us-ascii?Q?ulNBgCvp+x2Ba4LsXeg9Q0JdeHUU98eGKWKtFw5Smrj9aCBRMDWlzG1sNk2J?= =?us-ascii?Q?2iEO9Xm0XdgqdOLegyUf7sfIQrJHCusmA4myi8nANgmmFWbIua8w+mupxutD?= =?us-ascii?Q?dYxWkzsBJmopEAL+ajjD9obNRrPmcFYTPgXD56eZ6yCHY8+JGnK2mSDWaxHS?= =?us-ascii?Q?358+LX3gjT1k5grzvjBDXzpoGYdxP0jl+loICan6IifMFY25Ac1r7h4c6Yj2?= =?us-ascii?Q?+ucGAajB8DECc3h69qO+Q/W40i8pq6+KZHp62XmjAD2cWP2sK9jDw7DSXqoz?= =?us-ascii?Q?/Voujy1Gz2VIwlNh/0hIryutIrzJAM9fTeKdqrVRjl5iw0ajygL/u9jfDpi/?= =?us-ascii?Q?8dwbe7Z+P4ldE3UAvA14RR32CfczrahwfcBRRqrUfNsFVS/CxWRGkK6cJsEv?= =?us-ascii?Q?2qKyIoi+BMkvOk68mWJ0nbbpzqLpjWUjPL6cB2WWjlZtlJPMDDz6vOiMubbw?= =?us-ascii?Q?hoXakiPIM8nfu3zciq+zfPd7IeFZmNlvfrK75v9cKGUdBLto/2fjbieyPczw?= =?us-ascii?Q?I7e/FXqbVhIm/GDQX8ITPhhwOsbMMh+1mOThY/mNm+8+Nievb/TDHa5yorEB?= =?us-ascii?Q?N3Pk9SuXJbpiPvQAmabuq5CzHNa13lh77fqz1?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0202MB2783;6:gKBFska4Kp97csKoqk5Hq3FBfEZjrsmHDGCkBbxwcvjQMLlsH747GCEXYAcs55xIWGhmuN71gOQQiS3Tdobx5v6vGkz0+qLUjKlshayKaGBLvnjWn2KYvcPDKOpYKXug2NbW+YByRkuaWSYLuBdz/oqKF8F8SBudOYvFotlYepeaz/n6Ofi6xy/vKJ5Y7Dt8FLhVx8RgS7IC8I8ttaNrF6OBJgOPYG46DTngIafFjgU+S7AGnIcosAfeKBu/h6LNVXnNa8qI7VSyNJjUrpNBGDipnQanIAU0QX4esxYdT2xpPrQ6smH55w3eiWy3fjWiT/F7y1Zcu47YFnlyMTMh53vIkCQ4DEM3pSIrcPq1mVk=;5:tdoCQsTOujjuouO05DvDfKqYaJPF2klSdIIYoq9O9dHecEDL/k9v8FH6qnXiM8CuT9i6z/xPersSpL4ImcglaOCg/JIicv7u9oZfk460okQrZjZRSSsQp7pFcEk0hw0uAgXpZvmqnnnEa/CJpLu9XMLipJqyuxzTEuMStKWO+p0=;24:nT5j6dKOEG4cwFZsGBFlEr+ky3BYGKeVw1Bpz/mX2f3socTm3Mxg+CICutgYQBFuO7ttivvAbZ4IvmC50Wns5flCPw3OEhKBSkAi2TgKMls=;7:Bh9/Tu2rJaWha4yT5nH+bxGM2PD46omsTNWGmiQScKNrogJoVIrc5RL4YJjJbh/PdO1+TZMxZSMD4ZaHgqGNOglia4Rx5VOzMWLGJebAE27UVNFa8Gjbq+qYKNRaDNLOKUeJoXt9Z67JeGMUbcIB2Oy7rZ0kDX3ghp4MD/gb6n5nadZNd6Jck2g6z7SjWHCQOwNSuqA4bqsa4i+qtix+MnhS/fFmwFR5sVFJ2b8NJHecJWRXcIJAqDlxn9zNzaTR SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2018 13:34:34.8554 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8622b017-a528-4df6-fa06-08d55daf0c79 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4ee68585-03e1-4785-942a-df9c1871a234 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0202MB2783 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: Various gpiolib activity depend on the pinctrl to be up and kicking. Therefore, register the pinctrl before adding a gpiochip. Suggested-by: Linus Walleij Signed-off-by: Peter Rosin --- drivers/pinctrl/pinctrl-sx150x.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/drivers/pinctrl/pinctrl-sx150x.c b/drivers/pinctrl/pinctrl-sx150x.c index f926ba044577..049dd15e04ef 100644 --- a/drivers/pinctrl/pinctrl-sx150x.c +++ b/drivers/pinctrl/pinctrl-sx150x.c @@ -1144,6 +1144,27 @@ static int sx150x_probe(struct i2c_client *client, if (ret) return ret; + /* Pinctrl_desc */ + pctl->pinctrl_desc.name = "sx150x-pinctrl"; + pctl->pinctrl_desc.pctlops = &sx150x_pinctrl_ops; + pctl->pinctrl_desc.confops = &sx150x_pinconf_ops; + pctl->pinctrl_desc.pins = pctl->data->pins; + pctl->pinctrl_desc.npins = pctl->data->npins; + pctl->pinctrl_desc.owner = THIS_MODULE; + + ret = devm_pinctrl_register_and_init(dev, &pctl->pinctrl_desc, + pctl, &pctl->pctldev); + if (ret) { + dev_err(dev, "Failed to register pinctrl device\n"); + return ret; + } + + ret = pinctrl_enable(pctl->pctldev); + if (ret) { + dev_err(dev, "Failed to enable pinctrl device\n"); + return ret; + } + /* Register GPIO controller */ pctl->gpio.label = devm_kstrdup(dev, client->name, GFP_KERNEL); pctl->gpio.base = -1; @@ -1217,20 +1238,6 @@ static int sx150x_probe(struct i2c_client *client, client->irq); } - /* Pinctrl_desc */ - pctl->pinctrl_desc.name = "sx150x-pinctrl"; - pctl->pinctrl_desc.pctlops = &sx150x_pinctrl_ops; - pctl->pinctrl_desc.confops = &sx150x_pinconf_ops; - pctl->pinctrl_desc.pins = pctl->data->pins; - pctl->pinctrl_desc.npins = pctl->data->npins; - pctl->pinctrl_desc.owner = THIS_MODULE; - - pctl->pctldev = devm_pinctrl_register(dev, &pctl->pinctrl_desc, pctl); - if (IS_ERR(pctl->pctldev)) { - dev_err(dev, "Failed to register pinctrl device\n"); - return PTR_ERR(pctl->pctldev); - } - return 0; } -- 2.11.0