From patchwork Wed Nov 9 05:09:51 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shubhrajyoti Datta X-Patchwork-Id: 692606 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3tDF4N5VkPz9t1b for ; Wed, 9 Nov 2016 16:25:08 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="CzpIIrU4"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751479AbcKIFZH (ORCPT ); Wed, 9 Nov 2016 00:25:07 -0500 Received: from mail-cys01nam02on0045.outbound.protection.outlook.com ([104.47.37.45]:49953 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750774AbcKIFZF (ORCPT ); Wed, 9 Nov 2016 00:25:05 -0500 X-Greylist: delayed 81570 seconds by postgrey-1.27 at vger.kernel.org; Wed, 09 Nov 2016 00:25:05 EST DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=aydV2Ab6wHV7+2vKWlTaVG9O//QaUSlLPEdt84RsJMc=; b=CzpIIrU45kpl2TyGJ0Kua10pjoLcpSKc8HV+3HKWzkv2zBsrYfh9g6ii9AQb+jB88Wjnzcj+b3qOI14GqE395oQu9hDXXaTdZZDJwBwUBRmneJ2lM/y7QCBIAow+DSPm9fCXl3XcLfzcq106hBgGPMV22BmZegmlfuxqim9Y+1E= Received: from BY2PR02CA0035.namprd02.prod.outlook.com (10.141.216.25) by BN1PR02MB007.namprd02.prod.outlook.com (10.242.210.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.707.6; Wed, 9 Nov 2016 05:10:08 +0000 Received: from CY1NAM02FT041.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::207) by BY2PR02CA0035.outlook.office365.com (2a01:111:e400:2c40::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.707.6 via Frontend Transport; Wed, 9 Nov 2016 05:10:07 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by CY1NAM02FT041.mail.protection.outlook.com (10.152.74.156) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.707.3 via Frontend Transport; Wed, 9 Nov 2016 05:10:06 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:1729; Count:18 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1c4L9C-0000l2-2T; Tue, 08 Nov 2016 21:10:06 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1c4L9B-00014n-TZ; Tue, 08 Nov 2016 21:10:05 -0800 Received: from xsj-pvapsmtp01 (maildrop.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id uA959shW008983; Tue, 8 Nov 2016 21:09:54 -0800 Received: from [172.23.146.171] (helo=xhdl3763.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1c4L90-0000tY-Fm; Tue, 08 Nov 2016 21:09:54 -0800 Received: by xhdl3763.xilinx.com (Postfix, from userid 9049) id 8F8E42CE0D7C; Wed, 9 Nov 2016 10:39:53 +0530 (IST) From: Shubhrajyoti Datta To: , CC: , , , Shubhrajyoti Datta Subject: [PATCHv2 2/2] gpio: xilinx: Add clock support Date: Wed, 9 Nov 2016 10:39:51 +0530 Message-ID: <1478668191-26322-2-git-send-email-shubhrajyoti.datta@xilinx.com> X-Mailer: git-send-email 2.1.1 In-Reply-To: <1478668191-26322-1-git-send-email-shubhrajyoti.datta@xilinx.com> References: <1478668191-26322-1-git-send-email-shubhrajyoti.datta@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-22686.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-IncomingHeaderCount: 18 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(199003)(189002)(36386004)(356003)(46386002)(50466002)(48376002)(36756003)(4001430100002)(2950100002)(189998001)(50226002)(90966002)(586003)(45336002)(5660300001)(4326007)(33646002)(626004)(2906002)(52956003)(87936001)(8936002)(229853001)(7846002)(47776003)(81156014)(81166006)(50986999)(106466001)(8676002)(305945005)(42186005)(107886002)(92566002)(5001770100001)(103686003)(76176999)(63266004)(5003940100001)(107986001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR02MB007; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT041; 1:2PfdQ08GqXyFPYyhuxMI5yExPyEmleaNlSCd9PWBaKIyFZuyJU+8mUAYqgmXl739XHb1VCTYrr7gnsv7xbuj9Rm4+2EkVLHHKd1ASJYvrCXaMz0N6iJAAh8d3NE5NVof+cE1eFLVcEP89rMbsO1ovqKSYg2elWIFxqRYHvt9LHr60J2f03B4MKGjzmL1ZxVaO5r7opfmO9BUKPM2ZJjGm2O5YycvLJq2sOhHZp6bDeZ6NLOtPTrOq3UXCZRWDAf+3ZnAzCNZzv76lVlpL3PUCd+P95Yj/1d7uO1KxFTtg5cvdSDicBAIS+C6hhjHE0O8igOE39+mwV+YCSB+W0bXzr2srlxCdAyoEYd3th9g0ZxRbUV7ab85yusEi6S3Ht5f8xXmqKwF/iS5FSsO7ASRnNLTRiX9KzNqRzONykgzm33YTiJYk8y/8WhyJHXN5Pdm8BcPVYF2X4HgeOWKpYNzpkXDmNkwXLno9eNE/a/a7gvTayP7HY81e4Dem7zSAZKeooBMq0TaQMzXM0Mlnj8FHM0gjCcGwJ/So5bDLALJVeFylQ7Z50+E+pGfVZXrTjPZyQtK8Z1wChkzMfLONYj9jg== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 58dc440d-e862-481b-4bae-08d4085eabf5 X-Microsoft-Exchange-Diagnostics: 1; BN1PR02MB007; 2:N5yaQcYMFor+qHruq2x5Swcu57IDDJR9aGyiTtdVFQbmjijh/xPx8fQQHJ6bM3JSx88WZZvJyAL0VJ4gqnarwI+Wj1lYeVZLx0REZ4bnYkOKBKZ/+G+TS4bXNhG+++w4FsJCMlpLgGAZrPEM3kdJ2b4c9m6j1Ny9uL+7Li3nG0wyQtHjIT8pIJ8IWxyTCMZE6kitkQcDhu4fQKXsTXr1wg==; 3:Qee7e3NuAakqHLrKVs4YPwfyX8Dt/GNDAnHrRypbD0x+Kz25v0H2Ye74nX2noDwBKrC6LWdBpCFCAT6Fqws6IQW9+kvOXjVaM7VtgT5otqxUy/iIYrVgq7gslS+xpQnqNcZ7ju0VI35bQCpkbMZIkc7AEl3BJ09lE71D+RG5YKQS8UiWnHUDGXPhz2Z2yuo6FoCR7s0NrUfUKWt39erGWGXF75MwluugE46+NHSeaAy1cdzDedJCLINLDgEFl1n2N/JH6S5yZwjnDv8FyGCatzoazzBg90WM+qYlzyfwbg4= X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:BN1PR02MB007; X-Microsoft-Exchange-Diagnostics: 1; BN1PR02MB007; 25:2EcAwqpMa3P9PV2GIsehiaLv8H9Oury9qF28b3CAH3lB/glFdCwVbHpIILjhE3Vhf50hWgjPaF6n1T3nKcQOx7O5rOrO19His34SF0sQAQCgn7a6vFXw3yNupb2LkCqZKFk4KLVgmeEbA3BToGbGHe8H6OWlXnmVCl9j84NVZR04KTP5Nt1XDYxa1txirnfwk8VN6y+XqvQSs2KR1c7no0Rt/tANfUkKZzLMRB6gLb4wlAGQsAHwyOaBkOLr2fHf5EFlOe2pn/Wlc1Kyozn5MW6Du6stbqf2D76WhpP43zSpLum85RsCtiBVs4kXF0Ca91d459404DZeVeTF/vDKEHPgu8AQ/OW+jhbfyWcPIdcfpc4TFJQaZ34oFBrRVlFdLJmm42EO7yoymCrSlqoFhMiy4lddEPD5ZcOWqVXJnA4G7/yoJVDbMMYiYiWlfca71HLuGHJHDdD2sr6rhntS83GRkC7tmksvOkkVvhGr0JzABcWDlwD4tMjvmrJpsx/KM7BkzxhAhhVCUu8i+CF2Ln9hXMy9kMxAN8Fx9UwfQqesHWesQvQjnpqKOqTMGC2Za4iXDZStonUTceKQQ+fnfk3dKj1lYFN94Fe38pHCBlgdMwAMmbahx/uhb255MRX8u6WDlzqxw41+68LSXqxiI3ObknK6aErv0l8nnoW/TLrPwZ1dpPHQwUOdrC2aCDt68cv40kOQ8EDFt5eOPtFPuGT2yU7XliRCJotU26d8vUwmfxi2o9W112aStpE8+OmSxfvAtHZFKY545n/0LrQ2jImaM29LI6tDkiBH0DFdHt0= X-Microsoft-Exchange-Diagnostics: 1; BN1PR02MB007; 31:HlUq1iDiXpXQgscCFuZTsfycqD2m8dD+sXJUm3u6B8+iuQWK25Rvgfzr7lvINgmvy36PlJyDBG+7yQ53YXO/v61djecP8ic4vv89Sfy4JsFEodhX0RGdKbQzM5pLvbrRkfqhOp6y1XJ9FITxMymmaQfqcMTCsh/zLYfea4Fpv9xSJ5i6MdovydImgK/nC3ZK8EnvNvCcfvdB1kCtDRBGLuhR/6ajKGK/RVXsfe9+2Vjk95rUNrJVwRfNEP28IdgeGfaw3pW/93Wx1TieNuxfbQ==; 20:YKJxzJQICIYg19IBlmvtreNACEOE+IRXqDH6wsv7iHyar1eg2ueWo2412VXMsu3yJQ27VSrqRfIMuhJgyR+61SAtV5gZZqZwgxCIzuHbMqAj/gYj8pMwn1sxYi3h7OB+44Ob/n8jand7A5xS/JU2kfilKky5phm8EiobLVLjxNz4ai3hmwEByVQbfjL//yq0cvBXcGfC9PMfNJhfWZ1WFxH4zYEJnhOROGSDUKSPLyv4x4bPYxnUHlSN47nw0Ggww5GKBnmk0SoudXiukXKDplMELM9VkKbmjtAlj+n/kl8efL+0nkUVRvRgRD34mNznDUIbMxjmcN1dkAJ1nMU7ttbzLobM/qoixeepGEcKSBRUForBbtCgV/3KC7UvPCfih8lM++V7Ill9i/zlpOVvt4TekuB1NuTAOBavu/NDccKks9Frp3iolMUTdn5xlQ38qs3biY0/FmaVahPEDSAzudijWVm0w3aLAH/AHqfHgYZH/fs3NZevkR3HfPvm1aiW X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(13015025)(13018025)(5005006)(13017025)(13024025)(13023025)(3002001)(10201501046)(6055026); SRVR:BN1PR02MB007; BCL:0; PCL:0; RULEID:; SRVR:BN1PR02MB007; X-Microsoft-Exchange-Diagnostics: 1; BN1PR02MB007; 4:njOP2KNuNq3BtknkDtASANTf8vUCzaWosCIgeSmdiRmNMsGdSYDKxGSF6lQuEfZLikP71ZSjQu5uA4T5l9lK1RhwYXZ3OsPiB7EFWUbJPnHIMy5qcID8J+rEmwusGycHYSJHJtiNGVbfq8wXrG0pY8CVcstWd4gx5SF6ysw2/nADMRjPh0kDo8d666IsO68szINXCXu+Kc32K1BFS7p13FT0YwTBqSXnBhWh2ic+3S8JprEdChLL4ehUnuvIGgXtNT+btycDTmCYFIqxs8bnWu8vWuX4B6cDEYybxWKft2iYNvEpoJxOM/Eik4uY0s9a4SrY/VR5LHN7j0naKKlVe6/sX4yp6ciCfE9Jw4gy0UVW8Dhp8Nqc3QEFHWvh6m8sflPjH2p6Xz+nEHR4P+2HoW3vfHfV94eOdjSK35JDP8qek5G7+qsWTs5Fcql6+VP4NmlEG2d5aZhNJVI0nHspmc5qXblEOPRGpf7QMmvxHauztFCp1jdCZo0BooFEh//dINhO4d5EKYrxpVfmhr4qizwKsYGb1poBOuQj4xicWhxkbgdVdgmS2CSUf1/S2NKy X-Forefront-PRVS: 0121F24F22 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR02MB007; 23:GYCb240k4Tx/3sowbH1ZA/n3aAImWLxuvuGMhSFg3x?= =?us-ascii?Q?J8pjAxaEiucQd/H9t7kCvzy3P18ek55p9PuCO4ApxQ0TasIZ/7uEInS9U+Hj?= =?us-ascii?Q?QQ9HYW8sRkmOVAj6y51tRIy/TtrzuImftNlt9QEjvhovdJS7W3Ls0wI+V3So?= =?us-ascii?Q?+3WpY3OwEDWtJHULQ0rUX9DZ9IT5akmvBB+FZnmrnaWyfIDTra1pX048+Q4V?= =?us-ascii?Q?ftr8XYsJr/fav0X+36zKgIhzrHkIov0ly5y3o5Jk5HLFMiUoLCScNqurF2HO?= =?us-ascii?Q?vMnbHi92fhiXLfJ1GPhHaLQv1dlScQGmlfODS5BTQ9VMIbBskf2ACdJmvXdz?= =?us-ascii?Q?3lpwffF1hkRtn+qk4BWV7rFt/zbiKr3sXctinNgOuP3zBUOLGqXlnR11KAzM?= =?us-ascii?Q?mXEE4NoBqJPDMRRpz2G/88cwEwaYeneqlbcLvorY4xApOncOK5lNDGdjbCtJ?= =?us-ascii?Q?TDh+CqbdIkVfokjSuY9p2rD6PK0X+7ioyDDX/GgGvEPIcC0/uJ0FgnwoBWSy?= =?us-ascii?Q?mpA7gUfjqtKYs5tBs/5im+fnQxq2cgS/YB2UjKMdYPnIBnn6bW7tEFyelEAg?= =?us-ascii?Q?74Js8KmMLickC5R8MTi5bLJtcr7OstxkW4NDbmIERpYEApWJhnfU+Hex25WK?= =?us-ascii?Q?AcGH51QW+HR57XxI1ZOVF94vv0PYFXAL49ddMHeIR0XxPTgWUJzXNgvW8cOA?= =?us-ascii?Q?vfQ7H6jbu34NgMDwxAjzCpYzWScsyyc2wDOIwhS3/OAK2IAo+ZZuFLfdSP9s?= =?us-ascii?Q?CIsPw9MW45zitp93K3y/ctzxyxV9LHsYpDoQu8Sx0tFdPhPGzlN2Dt8UnX1p?= =?us-ascii?Q?XQgTllitfhzBxwZ6VBJn8eD0HzacvZxn8AeGHjfBoogvh4dZWshztBhUVORV?= =?us-ascii?Q?aST544+QT5OQUAMkpjlTHQmkz11NDYH9UhynGhxgJXUqli0TSqSZ944DnXi8?= =?us-ascii?Q?tK3z+aHa1sEoOiLJoeUKB1uEdDGgA1PKFSPAyHgA0xF9AYBKCHhBlxk20RJR?= =?us-ascii?Q?fa/esSfSJmfo3B9oeo7VebY8ziL0by/KlIwpoiiEQqbXd5VXCkJITEO817PY?= =?us-ascii?Q?k1872QOFVTVbwvyYOQWDNt64J3ymhVo5TsoN4lVe0peV1Keg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1PR02MB007; 6:R8NyXJwIIb4Np8ZNnjms26ygViVMxYqjiN1YBiorIESP1GmcR3sZKn1XKOalLzs4sD4gkg/SajBoKOVBJF6AIatxdyo2Hgzjuu2BiJBUvrFFc8IyzzJtYtCBx/504gYSYzu9bgnJdwZ0zneHi/LAANjKqO6chVJRYbGcQJLd43ey4H/XHkEJL4KohchwMn2SE6i/hukLvHApcynXOSDpI2EcJJuKIYR9SE+PwIAl5ymWTDMvRAZIuxerOBbytzl1O1XVtewdZYuI5PeNhqshraKdEtjyHufxBUbfcmGFavB73n3pLQHjXWuQKfFXR7lxJ90U3/uzMvNDsVuPm0ebrl5XKVLnh/Njdmx5S6PIOWY=; 5:YMuEMY2ASaukf3ARjzCeMJbw06Im4ps6G2rrsJHN+RlkmERbMaCKVIoNS5TvKYIDz28dYd421pFiyxFUiOM9BwNfjLuPg2SuasK2hThwj6B1KUD3nS9lPM7t2QjNcu7WNm8klLX3wOuxFFuPLK++uKs9X9PDrLK3bE76nTj8/cA=; 24:tlxgpIDQhzglhWbBSLayASrURLos8FE77q2AzhB+N4PLKIvaOGUMQPdnmMVXYQkJsbmSDmVFSMdzTKUQ3jCPZZplWD8EUNfUFJC9Q7bSL1g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN1PR02MB007; 7:nciuZOsK0oAtCRrMOIRANTPpQVFJ2NRi1ffoa0kJ07Pikc4O1xiPq1o7Hn8fxILeLk3l8XLD5OkTkcTd6OUDRPJReaxRbVug4xlvqnlUQFJbesBxFNTknNYWO/E7EaUF0PCmaVkT74O0sa4NSvX6LetbH+BSIW1Ov4dbIz+7cd7YoFfMhgokonus5zc9iqK1rbEXikiYebvnJyfkpxoNB5x/OBueJnMDuYZnPz3vfpNeAFpzlYpaU7XLparjX8gFg+n9ZCyYBof8EhHt0UXYX6FfJOuUdy7QxYHW1W8njaw5drhZ4ElQpKXr802huMbicSgIY6fr9FGNGhw9odFCGkEM2tmIMJ9x1wCi6vcEotk= X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2016 05:10:06.8354 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR02MB007 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Add basic clock support for xilinx gpio. Signed-off-by: Shubhrajyoti Datta --- v2 : no change drivers/gpio/gpio-xilinx.c | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/drivers/gpio/gpio-xilinx.c b/drivers/gpio/gpio-xilinx.c index 14b2a62..923cab8 100644 --- a/drivers/gpio/gpio-xilinx.c +++ b/drivers/gpio/gpio-xilinx.c @@ -13,6 +13,7 @@ */ #include +#include #include #include #include @@ -45,6 +46,7 @@ * @gpio_state: GPIO state shadow register * @gpio_dir: GPIO direction shadow register * @gpio_lock: Lock used for synchronization + * @clk: Clock resource for this controller */ struct xgpio_instance { struct of_mm_gpio_chip mmchip; @@ -52,6 +54,7 @@ struct xgpio_instance { u32 gpio_state[2]; u32 gpio_dir[2]; spinlock_t gpio_lock[2]; + struct clk *clk; }; static inline int xgpio_index(struct xgpio_instance *chip, int gpio) @@ -282,6 +285,7 @@ static int xgpio_remove(struct platform_device *pdev) struct xgpio_instance *chip = platform_get_drvdata(pdev); of_mm_gpiochip_remove(&chip->mmchip); + clk_disable_unprepare(chip->clk); return 0; } @@ -307,6 +311,23 @@ static int xgpio_probe(struct platform_device *pdev) platform_set_drvdata(pdev, chip); + /* Retrieve GPIO clock */ + chip->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(chip->clk)) { + if (PTR_ERR(chip->clk) == -ENOENT) { + dev_info(&pdev->dev, "No clocks found for clk\n"); + chip->clk = NULL; + } else { + dev_err(&pdev->dev, "axi clock error\n"); + return PTR_ERR(chip->clk); + } + } + status = clk_prepare_enable(chip->clk); + if (status) { + dev_err(&pdev->dev, "Unable to enable clock.\n"); + return status; + } + /* Update GPIO state shadow register with default value */ of_property_read_u32(np, "xlnx,dout-default", &chip->gpio_state[0]); @@ -362,6 +383,7 @@ static int xgpio_probe(struct platform_device *pdev) if (status) { pr_err("%s: error in probe function with status %d\n", np->full_name, status); + clk_disable_unprepare(chip->clk); return status; }