From patchwork Tue Sep 20 08:32:04 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Nava kishore Manne X-Patchwork-Id: 9341243 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 78652601C2 for ; Tue, 20 Sep 2016 08:34:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6A70829D2C for ; Tue, 20 Sep 2016 08:34:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5C72C29D2F; Tue, 20 Sep 2016 08:34:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 757C529D2C for ; Tue, 20 Sep 2016 08:34:22 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bmGTo-00015X-Uw; Tue, 20 Sep 2016 08:32:40 +0000 Received: from mail-sn1nam02on0048.outbound.protection.outlook.com ([104.47.36.48] helo=NAM02-SN1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bmGTj-0000zF-3x for linux-arm-kernel@lists.infradead.org; Tue, 20 Sep 2016 08:32:36 +0000 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=doVxT4vAlSwOu/MfzILco3NQgDCB/QcbA7w/kB8Zd5g=; b=xqcd/2TeNMbVqESGsPNXmHMs3EEsXieIgJ8p9apprw6jpQSG7xUOQsmN7VuY+iXiXFIcU4PVHnlpyVV3zG6zXJ5xkpFn/WK2zu5kxTEZCZym8iszK6Y7QAS6k6CzoYMKK3lQvbKa2LjtEpv0eFyFHVsaIrxKNhfv6q/tVAG4kko= Received: from BY2PR02CA0080.namprd02.prod.outlook.com (10.242.32.38) by BY2PR02MB1685.namprd02.prod.outlook.com (10.163.27.23) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.629.8; Tue, 20 Sep 2016 08:32:12 +0000 Received: from CY1NAM02FT016.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::207) by BY2PR02CA0080.outlook.office365.com (2a01:111:e400:2c2a::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.587.13 via Frontend Transport; Tue, 20 Sep 2016 08:32:12 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.100) 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.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; Received: from xsj-pvapsmtpgw02 (149.199.60.100) by CY1NAM02FT016.mail.protection.outlook.com (10.152.75.164) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.629.5 via Frontend Transport; Tue, 20 Sep 2016 08:32:11 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:42732 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1bmGTN-0000LR-JO; Tue, 20 Sep 2016 01:32:13 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1bmGTL-0008E9-7Z; Tue, 20 Sep 2016 01:32:11 -0700 Received: from xsj-pvapsmtp01 (smtp3.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id u8K8W8IB029108; Tue, 20 Sep 2016 01:32:08 -0700 Received: from [172.23.146.172] (helo=xhdl3764.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1bmGTH-0008CL-RH; Tue, 20 Sep 2016 01:32:08 -0700 Received: by xhdl3764.xilinx.com (Postfix, from userid 26085) id 07A6E1A20805; Tue, 20 Sep 2016 14:02:07 +0530 (IST) From: Nava kishore Manne To: , , , , , , Subject: [PATCH] gpio: Added zynq specific check for special pins on bank zero Date: Tue, 20 Sep 2016 14:02:04 +0530 Message-ID: <1474360324-8168-1-git-send-email-navam@xilinx.com> X-Mailer: git-send-email 2.1.2 X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-22588.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(199003)(189002)(15650500001)(63266004)(50226002)(36386004)(92566002)(11100500001)(103686003)(87936001)(36756003)(19580395003)(19580405001)(4326007)(586003)(42186005)(106466001)(52956003)(229853001)(2906002)(5003940100001)(4001430100002)(45336002)(626004)(7846002)(305945005)(5660300001)(48376002)(86362001)(50986999)(2201001)(47776003)(8936002)(189998001)(107886002)(8676002)(5001770100001)(50466002)(81166006)(356003)(46386002)(33646002)(81156014)(90966002)(107986001)(5001870100001)(2101003); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR02MB1685; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; PTR:unknown-60-100.xilinx.com,xapps1.xilinx.com; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; CY1NAM02FT016; 1:dyp2hdBbJ/ruooT3wsdCQVxTdUm6k8JhC5cT9D53uIzJMF7Xe3QkYRkybOQIgW0YfXoDTzbSasmvsOcR9/obAyREYWV0LO+sUqUH72HLHlY4jo2b047N+maWLqmCJ8hNt70hj7+IYfRnHh2e5z0wXHKSu3yMYsQJ2JYSQLmdcMgQh+vsV3i3i2dRns8CTPPTqpvK2w4qn7T6SUCRORDQE8n8uHqP5a4XKO/lrjbc5MJ56F76lpiheBDHcE3HK8TJ/cEJyF57SC53cHGTYc9PrX+5HIo1hz9pYO+a7vV0hZc9Odie8DDPARuaKGjYDzF3E3uHUDw2F82Zxls39ZZZB8ZYXwazHJK1uMFiRML47Tw9ZEWk+wy7iWeKbhFpvnbmESR57doetexeGmkz4BVBhXrz+EheMpOUJFVLRq7/fzFd2IzA8IBDND4mU8FZDrdq67CudH1Hn7jbpGwEeLQR2Tyy75GEniWmpJvRq2A3x1vonKLP7if7kahIu2R528iz98nU0nkpkPHe8hEcZa/qCFcEyOIVrGpUxyDCh4keZaLf54WkUjRm587frZysL7kTYjyLEtzcfMoi8sIzPb4XJI5cZkyQeysHP/SuHrjO5Jo= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: fb3cabf1-86b5-48f2-fe57-08d3e1309e73 X-Microsoft-Exchange-Diagnostics: 1; BY2PR02MB1685; 2:4HJNAwUpAlm3zUhFij5nvvQwyV7I6KCCUvwaxsokXuxxwX3xIW1bD/O9JpFM5APLyY2YjpEhP4GTZGv/4FOBAnYGeEnQdHgpJTgxLETCW7c9kI1LgEkq3iySzIAJfhU3o68iOcT7neEtKMlsRkmpoYjsV6p0yr5d7vfH5rIYDMKVQCDupKyPA4Srr/ACBqOS; 3:9pUGuoH0CFu+dVtGIuWYFKj/Yp/0O8nWyiE2pPZ/eilm7sYL72I1Ii4V9BHwyIOLOKCwJIPkuz6I9gnfRHHArOCMCGVH03TmGxxkpge9DCknuemeKbRgF9F5QoObZafazOHDM3KZ8gdujGAKkyNccr9NF17Vi7MsDZcMxAGBFeAakMtCVBgECBrFh83Oac0rRo4EGyMvT53vXAL9Ucf+MPUM6W2sMrKLVZBnj9cSoR3gT2Vu0DErfJbVks2L+GRMPV+S42eyXSccB+1RpUV5yA== X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:BY2PR02MB1685; X-Microsoft-Exchange-Diagnostics: 1; BY2PR02MB1685; 25:5CNd9dCQt1EEV2EEXK9+bJmz3BD6LbC0WIGXnYkh9RjUm/VbjNETQFEj4J+8yK9sz/hfD5SS3QQCRCx5sZmlw2M6g6Wz+gBwZgtB1viwLhjfN2fAM4P42XSkFCcCXOQH46TAWkexlb5In/E7Gn/ssjF/Kd4X0G3vajsghQfHN3r3xPS89qx0MQ9ZExuOpDJdzRJRpvF8eYv4GSmaRJKdKDu2YH06iTu8VMikIcWKyjr9uHulIzHVSphlLyfxYEmpwI9lZ73p6SvsoxUDct07uxvqkzX3RKk5BmpI+Utk7hBV4p/1vL8XrKxzWVi7Mt+f+a37vRXvvyI+mqYiwRbUDou+yApKqOHPP8GSyD0MmI2cYb0Kq+Y64/QM+AGTMe6kC9TwJDcxfgqajwsz5tiazCvzlrzZX91IRKtaK3WaD4x6cXmkpQgbtGK3ujVmHKXUYlltEi667+Dnl+TtNQYFLbDUxWDO3246fA+InVuIpOH/cv62Cj7NmzttR5JSkF4QCAxVXKNXZZ0O7kOsvgGR4WKWRk9ENIDbPX9u96QQ+ncQJTIEZ0R2B0NO57lb4PZM5fJnDl6ZEX1csUsTfdFqSYRlyRIIwLikCeV/OYU8jknVbVfdY99oFtSEQl1zfrkP4gQSSXEDWeg4K5enXFvdBL1+onAIUntCaJ3/Uu8VIPEDTk8w4evoUyUEWwkj0TDFSfW3bLilXMUL+p5N/+9IriOayyCgRi2s5qDwhqqdC1CrqbvCHGhO/2XkEgZLiB9nip1WfGef+fnog/4AC7avUaQRCGs5tjZ7cIfUR5aHWuRrF11+Lb9e+Id6k18oqNg3 X-Microsoft-Exchange-Diagnostics: 1; BY2PR02MB1685; 31:Zn8X4eFu5fxCXdP/bIWgLf76yfB25UsGq5ozaBBW1+1lDy/1oUQd7IKf/pen4D6XQdgmoyoFw3CaZL3fLCv4bf8/OvA8TZ9sQMgUiIOluKpZpmkTcMGz/KzR2jC8C8qwSY3zLtGMXWcpLunthsSjPm7qM3bFqkKw9jMxBOdy2+V3j3oHNEPn8OGma34w9Iy6CPZB4JORK/g+Z4Jbag5bOfYu/5ft9coCyg7DllnW8l8=; 20:5zmjCKvRAYIcGJMSNyLdIPs1KsWAYLDL/0FVg76NiLMGD2Y3PMmGydttgCFzPf29U4Vyy8BEwy/E5/vY9xXbQWe/9b1ALH8LG7jCzYnWCmm69XB10c6CKYVyBc/sI4OkJigO9fKJb0/iSzDjZWc6E/ouppfxIja9fRGgn1kWYDLD21iakjoGVTZO7kl6fOuMK2DC5AupowLcHdKcWHGY1deevT5ZFqLn87WVXn4qmjQ7urLCQY+esn49eesqP+GUkNvEIMDdCWsLtxmVj4/bo7IWi19Q9Mcly6L3LdBoFclgeE+HgpnlZuv8tEUX3rvi+1wMV7LPuQcVpU3YCPm9ltqX9bfVmFGZxOcv+GZo9bLh0L3Raa/5RTkBAi/r/0W5q59KFW+1Jqq2f5Wxn815dbosNpFH5pBdTTYH9fmjCR4nI/TXgCrPZ3UCE+0vvcon6ZsrsIoIblRryjuwch3O6PcvIbQyAlsyxOpz48tNThiP5ISZhTASR0QA7wjipJed 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)(13018025)(13017025)(13015025)(13023025)(13024025)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:BY2PR02MB1685; BCL:0; PCL:0; RULEID:; SRVR:BY2PR02MB1685; X-Microsoft-Exchange-Diagnostics: 1; BY2PR02MB1685; 4:25w0nrBmu+xCIgpEM6qvY+40A7riq/NwFyEEZ7HvABSMw9WaDTBio+zFyDAfAifBREcp/3YgHlrmYWesMcwzGRoGXn2NczjAB0Wceq1cGJu3abc/tz4TFUsaHBbbG8e3mE6ITC9f9PQthrFPena/HeqtzviRzpdrSCKcrkA5BK7Ky1fmaHfsStz1UWe0FOuOhKKYo8Pzs0vmBcWDBaTJ/aYHgmKo8RyAcDearO8dQOz/YOJOfM9C5zXbrcEbLjcmJoYg1lsrcY3l33JxGnnmgRp0+5GdOJKkmB94bgFzUvrwUNKr3F6AO6VYcQDx9gzoabBckjsmSfKO8PC4A2LZafULBfWDwDJVLYef3IA+vSyPzXk7eM1GB2SaCFwaLVibGIzdp71ylJ4u1740uNhZG1BsJGVaLkKceEYMSM5VA0eCSCgYOTk5JH+7DvSqSH1g4MesJ9sgEGfJ/RGWoilYs3Qur8Rrq5k7eZwYaIET9WCk+j89vugd33xXrShfJ4xBZ5YhKLLCpVick6rxQOVRJdaooFwUNbNfxLh9ym1Es0Y= X-Forefront-PRVS: 0071BFA85B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR02MB1685; 23:V/DGifLMthZSfmLQi3Ku6IXEQ9muMU3cVUqRQFwk9?= =?us-ascii?Q?rFsuUm3Wu3jix8OHYTTuK1lIjEQzw9lU7CmLXvI+ggxqulQz72XEeKeTpaAn?= =?us-ascii?Q?GAqhO6221N+P/oHuTGwl0+i7eCFxzxJhKcT0YqlvwFYeM6UvYRplOPxrYb4V?= =?us-ascii?Q?TKsI8KhVFLpcXQOooaiNM5ucj9CcEgTMTnAJSxfs4YwuBzppei8MRsps+iQ0?= =?us-ascii?Q?wza9xF19WJDMRUfilVj1Kb1RqOYOPYwTaUW+NEvh5IhibZD0pWeppA6MB2bN?= =?us-ascii?Q?xJXU03GhR9jh3RX9CqYQ0LBFyGRR2z7/3Kap4+7UIGuip9EKz06T1vqAa++U?= =?us-ascii?Q?76enpf9HdlgsngSwgb4Ldv8Ig3hIxuDFivGCC9GjyqmvTBz8JPaLZ8dLKhQY?= =?us-ascii?Q?y4/R8cPFFVJFfX07lDpLA86uUeuKdGGUtKMdYT6uiiMeihm7Fezm65bAJFzF?= =?us-ascii?Q?dhA9OSwjz8tLqGKoQIhcxxwf4iijZB8a45wxKgqrbLLFForgj6PQPc+YLikj?= =?us-ascii?Q?T9/hXPOWN9rJF76PrttM3BlFss153ylCfveGEK2NGfcjWM59ROT4+avWc0fj?= =?us-ascii?Q?w3ko+O1UKzEoFG76czLKVKDfbgiIO43z5oo8a4PyjjJ3QVrw7f1Q0HpWj+Hf?= =?us-ascii?Q?RA/A8NwoaOoU/2KX8sxnVxxLkn8FeCXeq1fE7wi8GEcCrexWdEqF6eVaA1YN?= =?us-ascii?Q?maSTwCeiyXCLaFj/yzwP0JITn2UgZ55wisQspfjpCj1XMkrRl7bH/p+xMSX3?= =?us-ascii?Q?yCDKXD5sfjstn4icgEft2GqX4Z2sjGBz9is9hgZXdlEA6xLRAN3cU4awcRSz?= =?us-ascii?Q?RQTnhk/9hOeHAlysvo7pBf7cwmitUtFn26sWx7/7z2/OvYT4CZRBRGf1d8Tz?= =?us-ascii?Q?hUm7HCpGeNrSHIg/1dQUNss7igj6hyNKzf9C8VK7Qp3TaB/2kI8Cm95ksbh1?= =?us-ascii?Q?qrA7Illo3t81DXCNYzooFM+tWJd7lb/19EiHHJGf5xyM6geodOyoZN8RcsO+?= =?us-ascii?Q?zjEvzgOjNx88MKiitT79OmSKBFzjz+EQVNRzT7Ni66VBv7M33Sqg+iDxlXJB?= =?us-ascii?Q?Z6WAP70mTyFQIhSW0/e8KNQnobywIiqcAQ3AEvnl5PdCvOX9O3QYv3Tii+RN?= =?us-ascii?Q?xg/SarhC0gCIFrI4I/QTzJj11KE1QNbFdiQEjFysOItHv82TA1w+kIK75Mnw?= =?us-ascii?Q?jk3kCjivM7dzzTesQh6Whcscw66810pYHbVMWSzXjHTj2sk1afotcPk7nOXY?= =?us-ascii?Q?tugXTVR9yoh71BEf8o=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR02MB1685; 6:FNH9yISYEHV1CSODR+oOpEh6/M87SudmkKOJ+D0Fq2HNLO3Y5bStmzGRXAV+Au41u103OV/K33D8mqPveBk5vYyaB6heeNDRQuny5fyChwz23jAVXX888CW+OK+QsVD9l+Sl8uHblH2ZXj2+ncsjBNWFj09pzWmkimAyAJ+Zy5KsTiety4DmPh8OIIol1fbeQJBPGcXXdfd8dapJtVexMudtwDQgqHAgXrcu60hEx/f4P5y5Yrdb+yqJVWaBYBnWaUJhQrvB0K5dvmzAcR4ltaurDq3LDfT5x5LlzbaRpkEqSrziA5I/F1vfGpJHmYi51neMhmnRSU2NxZ0Ip3mEew==; 5:AXhYhbu3guDZM0pjHfn8EDgxgqpk/fiSoelpVN6XjL9NIYpks7LblPkvGIk4VUhhR6StutoaOpJAp7JdpATTk19fcoSzy4wZIaSsvTKZozVuuNZNX6KOkvN67aOA1KK6TtkmCviRbncaBKp67X5BOA==; 24:mBAOsgy4jyHz68/FqgzcFVxnVSz0TrSTB7nx+G5MNb0bp5WIJFcMUtlRwo4ToMFNgAVfBTJTH4zWciUHHNm+m/qHwoBsxpBA6kchfo/qqho=; 7:ygZrJOASPgG+aumYIYJXQucSU6jVD+ULms91mu315uTciB2neeF69FoQWSqJO7w/ZC/6+gd+9vk+DwCTV7Z1KuREbNx+TGo7zXjjKjI0gLlPI19Vm9WFqHACENty/iR5qZEoTKFjhbm36vYWRyPcD3Z580Q6Qudcl0UxMsu8VvFGq4SFYuBCZvScrqrYzvi2BG58+ZxtHzUTOLIte2s+YJHMdkjGtL9NkX6loV3r7EqRDye1BafRyImA4I/dmHbDYBEqvQeH6OvNT0OcZNBK+NisRgyzYNY2sfq6RL+Z2Cg0kn2C3fVm1bhBqGGjkcb/ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Sep 2016 08:32:11.9328 (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.100]; Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR02MB1685 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160920_013235_397275_3C1E9CFA X-CRM114-Status: GOOD ( 12.31 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Nava kishore Manne , Nava kishore Manne Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: Nava kishore Manne This patch adds zynq specific check for bank 0 pins 7 and 8 are special and cannot be used as inputs Signed-off-by: Nava kishore Manne Acked-by: Sören Brinkmann Reported-by: Jonas Karlsson Acked-by: Michal Simek --- drivers/gpio/gpio-zynq.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-zynq.c b/drivers/gpio/gpio-zynq.c index e72794e..eae9d24 100644 --- a/drivers/gpio/gpio-zynq.c +++ b/drivers/gpio/gpio-zynq.c @@ -96,6 +96,10 @@ /* GPIO upper 16 bit mask */ #define ZYNQ_GPIO_UPPER_MASK 0xFFFF0000 +/* For GPIO quirks */ +#define ZYNQ_GPIO BIT(0) +#define ZYNQMP_GPIO BIT(1) + /** * struct zynq_gpio - gpio device private data structure * @chip: instance of the gpio_chip @@ -122,6 +126,7 @@ struct zynq_gpio { */ struct zynq_platform_data { const char *label; + u32 quirks; u16 ngpio; int max_bank; int bank_min[ZYNQMP_GPIO_MAX_BANK]; @@ -238,13 +243,19 @@ static void zynq_gpio_set_value(struct gpio_chip *chip, unsigned int pin, static int zynq_gpio_dir_in(struct gpio_chip *chip, unsigned int pin) { u32 reg; + bool is_zynq_gpio; unsigned int bank_num, bank_pin_num; struct zynq_gpio *gpio = gpiochip_get_data(chip); + is_zynq_gpio = gpio->p_data->quirks & ZYNQ_GPIO; zynq_gpio_get_bank_pin(pin, &bank_num, &bank_pin_num, gpio); - /* bank 0 pins 7 and 8 are special and cannot be used as inputs */ - if (bank_num == 0 && (bank_pin_num == 7 || bank_pin_num == 8)) + /* + * On zynq bank 0 pins 7 and 8 are special and cannot be used + * as inputs. + */ + if (is_zynq_gpio && bank_num == 0 && + (bank_pin_num == 7 || bank_pin_num == 8)) return -EINVAL; /* clear the bit in direction mode reg to set the pin as input */ @@ -609,6 +620,7 @@ static const struct dev_pm_ops zynq_gpio_dev_pm_ops = { static const struct zynq_platform_data zynqmp_gpio_def = { .label = "zynqmp_gpio", + .quirks = ZYNQMP_GPIO, .ngpio = ZYNQMP_GPIO_NR_GPIOS, .max_bank = ZYNQMP_GPIO_MAX_BANK, .bank_min[0] = ZYNQ_GPIO_BANK0_PIN_MIN(MP), @@ -627,6 +639,7 @@ static const struct zynq_platform_data zynqmp_gpio_def = { static const struct zynq_platform_data zynq_gpio_def = { .label = "zynq_gpio", + .quirks = ZYNQ_GPIO, .ngpio = ZYNQ_GPIO_NR_GPIOS, .max_bank = ZYNQ_GPIO_MAX_BANK, .bank_min[0] = ZYNQ_GPIO_BANK0_PIN_MIN(),