From patchwork Thu Jun 2 17:52:24 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: tthayer@opensource.altera.com X-Patchwork-Id: 629398 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 3rLFTR67Nsz9t8R for ; Fri, 3 Jun 2016 04:03:39 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=altera.onmicrosoft.com header.i=@altera.onmicrosoft.com header.b=ZVlz4m7RgP5Pxv8DmWUwIUh3IltNc9YMfpCwrqB6x07FPFAUpwifoiinp0XzifEVao1Mxy1muTTvQeoqJqBjprNPy5QDhVJdJI0HJCWwJxZJm7lWQtYhQgTtDIvAKFlq00rETtLgiXn0zABp6FnBzdofM/0YOQhBkw9M3/NaYUM=; dkim=fail reason="signature verification failed" (1024-bit key) header.d=altera.onmicrosoft.com header.i=@altera.onmicrosoft.com header.b=ZVlz4m7RgP5Pxv8DmWUwIUh3IltNc9YMfpCwrqB6x07FPFAUpwifoiinp0XzifEVao1Mxy1muTTvQeoqJqBjprNPy5QDhVJdJI0HJCWwJxZJm7lWQtYhQgTtDIvAKFlq00rETtLgiXn0zABp6FnBzdofM/0YOQhBkw9M3/NaYUM=; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161477AbcFBSDh (ORCPT ); Thu, 2 Jun 2016 14:03:37 -0400 Received: from mail-bn1on0096.outbound.protection.outlook.com ([157.56.110.96]:55456 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932152AbcFBSDf (ORCPT ); Thu, 2 Jun 2016 14:03:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.onmicrosoft.com; s=selector1-opensource-altera-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=CuYbJKLeIhIupKNd5zgWvjnposw4vGpIYwYVD9kehVU=; b=ZVlz4m7RgP5Pxv8DmWUwIUh3IltNc9YMfpCwrqB6x07FPFAUpwifoiinp0XzifEVao1Mxy1muTTvQeoqJqBjprNPy5QDhVJdJI0HJCWwJxZJm7lWQtYhQgTtDIvAKFlq00rETtLgiXn0zABp6FnBzdofM/0YOQhBkw9M3/NaYUM= Received: from DM2PR03CA0035.namprd03.prod.outlook.com (10.141.96.34) by BY1PR03MB1452.namprd03.prod.outlook.com (10.162.127.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.506.9; Thu, 2 Jun 2016 17:47:43 +0000 Received: from BN1BFFO11FD007.protection.gbl (2a01:111:f400:7c10::1:173) by DM2PR03CA0035.outlook.office365.com (2a01:111:e400:2428::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.506.9 via Frontend Transport; Thu, 2 Jun 2016 17:47:43 +0000 Authentication-Results: spf=fail (sender IP is 66.35.236.227) smtp.mailfrom=opensource.altera.com; hellion.org.uk; dkim=pass (signature was verified) header.d=altera.onmicrosoft.com; hellion.org.uk; dmarc=none action=none header.from=opensource.altera.com; Received-SPF: Fail (protection.outlook.com: domain of opensource.altera.com does not designate 66.35.236.227 as permitted sender) receiver=protection.outlook.com; client-ip=66.35.236.227; helo=sj-itexedge03.altera.priv.altera.com; Received: from sj-itexedge03.altera.priv.altera.com (66.35.236.227) by BN1BFFO11FD007.mail.protection.outlook.com (10.58.144.70) with Microsoft SMTP Server (TLS) id 15.1.497.8 via Frontend Transport; Thu, 2 Jun 2016 17:47:42 +0000 Received: from na01-bn1-obe.outbound.protection.outlook.com (207.46.163.188) by webmail.altera.com (66.35.236.227) with Microsoft SMTP Server (TLS) id 14.3.174.1; Thu, 2 Jun 2016 10:46:26 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.onmicrosoft.com; s=selector1-opensource-altera-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=CuYbJKLeIhIupKNd5zgWvjnposw4vGpIYwYVD9kehVU=; b=ZVlz4m7RgP5Pxv8DmWUwIUh3IltNc9YMfpCwrqB6x07FPFAUpwifoiinp0XzifEVao1Mxy1muTTvQeoqJqBjprNPy5QDhVJdJI0HJCWwJxZJm7lWQtYhQgTtDIvAKFlq00rETtLgiXn0zABp6FnBzdofM/0YOQhBkw9M3/NaYUM= Authentication-Results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=opensource.altera.com; Received: from tthayer-HP-Z620-Ubuntu.137.57.187.33 (64.129.157.38) by BLUPR03MB1473.namprd03.prod.outlook.com (10.163.81.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.506.9; Thu, 2 Jun 2016 17:47:38 +0000 From: To: , , , , , , , CC: , , Thor Thayer Subject: [PATCHv2 4/8] gpio: altera-a10sr: Add A10 System Resource Chip GPIO support. Date: Thu, 2 Jun 2016 12:52:24 -0500 Message-ID: <1464889948-28793-5-git-send-email-tthayer@opensource.altera.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1464889948-28793-1-git-send-email-tthayer@opensource.altera.com> References: <1464889948-28793-1-git-send-email-tthayer@opensource.altera.com> MIME-Version: 1.0 X-Originating-IP: [64.129.157.38] X-ClientProxiedBy: BLUPR05CA0069.namprd05.prod.outlook.com (10.141.20.39) To BLUPR03MB1473.namprd03.prod.outlook.com (10.163.81.158) X-MS-Office365-Filtering-Correlation-Id: 4d15b7d8-0af5-4b5c-049e-08d38b0dffa6 X-Microsoft-Exchange-Diagnostics-untrusted: 1; BLUPR03MB1473; 2:xMelgmlpt04AFnoigx/hrxiAQAzmC+0KQ3faiOR5ATxYjzYj2MgznirLbfxteLtKbYvo+1SLVBvGfDMPLSRzgEgCQSXrwqfMJ1xEDPWpcIayu3wozo8VTma2mTjlwpXOYhIjGUQQ3ME8kEM7jaBuSlFn8ZgMrW6MExnA9erM+MHRb+41b0xK8b6bfjeSDwHt; 3:kJXL+LuI7lD+4lATJq5fQEfPoFbyt0m96Te4UFAiPDRX+pw0DASBKsxF706H/T9k76Xhxb7o845NtFUB/JJdkwSHKijHDvnFr36mnwhXYVYwWQCKapAkUnk6nLaiGf2A X-Microsoft-Antispam-Untrusted: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:BLUPR03MB1473; X-Microsoft-Exchange-Diagnostics-untrusted: 1; BLUPR03MB1473; 25:pfAQxl8pzotTrRPdcaT4PCyJxRN3LqLLb2/H0FTrLCMY6tU8YoBHPaZH2c/v5s6kBaw1kI6Gy7uDnaakyN28PEOPZGCtTbVOTfERr7gS0eo055iYyVgjgSom7HNNZOBaVtJpXEqwj21Y/5AY5StdPof8yBMHTI5ULBb4Q1CAz8m35qTd4g3vo1o3gPOXWHzEaZGoPiaGxP2dRc9jikrmokZaqNwwxqoQIoNm67451laJ3PTI5s9vj1KegEVSjptjzTNSMDn1D6V3mPrrhkK068teVYfR5YzyCHqS1Jd70tsI4L9rIiDz8uExBrLik0NHkcNvQFRTTL+tBYkGNgjVj6/WEhqZ1A3iUdhsoh6LkEJm3Q/MAuqiS9OA8eiz6BwTSaShr82WVQXsfBymFdsit/vp8UbpiEWManQCwWB8sjZuMCJce49rVkH5AccqapHjgCYmBLVDqVk28xPJCcK5EyagFGIVpif6FmShmetguup0FplOJxlWX4MBj3Xap/M2eihYWpjBICZFZjJhjdMWAgZrIMI06BvJfDM2c2HguaBUS46uFhvKLvjP21wNRZldN4sfZoJffJv+xA6eaGXlgTxHXCL7a2GJvKaseiQ32sWRKjq9mnNRgn2YdiMaFqlHK6LAUWxbh18292eSKjkuhHXh116dQ0+VMaI6GH+vZkolFR7YGW6jvcwccs5uDrEZWD1V8T64AaxVJJJZNYcGZJRJfqwoTmSab6YaJUzNlt2hJVVqNHu+5CUL2ggLeKv1GaJMv7uVGjyPKpIdHFl0ZrndWTCUwrnPCvx5v5ucjVA= X-Microsoft-Exchange-Diagnostics-untrusted: 1; BLUPR03MB1473; 20:qMNY2lno+31h4VFqRvAf8NlJ6hd7ZXPh8UtisNyqYfq8EqiXmmU03aN4yop2s/BjJblOOeBN5XxV7P05zxaiuLsWLUKWSLA6qNHeFx7afo3PCmccbPf9Q3pC/d86HpUvJcvJld7LMydDEoFC7z/ODT7V23YSRiw7jNtquACqEZE=; 4:Pw/dJWV/TmBGml9o3aM4UYHy7xD0Dxi0I2ipy9ifosbCU9aa5MYLo4rvCwVteKNj6XReXl7B9Yds7vy+6oLXG1wQfLwLrU/doelsKlbLk+GBjDVxgb01wN5dvIArxfPLEG36lrJ9uY7YZXS+2wc4cxLmMOAjuJEpgO/vByLxS1mMJTh/Xsvr6bzFjgUFcCfFqsp4IvWjUx7A9dnbsAmd8NHEbyWj5j5BUtnafu5hi92J4QQfkjYWYbrIzxpYr4EqhBHW9qXi8xMs2jeyD1tCjaGgq8Q+AKpAUo9ProGyNwUkLi21egYUhg2PaLKMUQDe41hxma9tF2+AMJEkwxd+FpfN3UNWVpb5v8jLiIZUVdPFrw8f59GJxmjtjtLndN3H9w6xa9axw7z+nLHJxbBvW06XxtXiufjsmz3Jw9yYhUYTsBMzMwbqeIELhF1r/BR2VXBHCvPPUaz6saPYMKuVzPytdWz/zqf6tuArRYvdSA60/9JLAyKDk4FI7ppdnA9z X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(22074186197030)(80048183373757); UriScan:(250305191791016)(22074186197030)(80048183373757); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:BLUPR03MB1473; BCL:0; PCL:0; RULEID:; SRVR:BLUPR03MB1473; BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(13024025)(13017025)(13018025)(13023025)(13015025)(10201501046)(3002001)(6055026); SRVR:BY1PR03MB1452; BCL:0; PCL:0; RULEID:; SRVR:BY1PR03MB1452; X-Forefront-PRVS: 0961DF5286 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6049001)(42186005)(47776003)(33646002)(107886002)(4326007)(66066001)(2950100001)(77096005)(48376002)(2906002)(189998001)(15975445007)(2876002)(50986999)(19580405001)(76176999)(19580395003)(50466002)(229853001)(4001430100002)(5008740100001)(3846002)(86362001)(2201001)(5003940100001)(92566002)(6116002)(86152002)(5004730100002)(8676002)(50226002)(5001770100001)(4001450100002)(81166006)(586003)(4720700001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR03MB1473; H:tthayer-HP-Z620-Ubuntu.137.57.187.33; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1; BLUPR03MB1473; 23:Dc7J/Kx8U7dVmhBHJW2pF1myr4ENKm9pYaHpZVCmW?= =?us-ascii?Q?phMbl/jB8m7w4iDiE5ASkqH4T2Hr574UandKy0aMei0F0/28gP5+gOLJBp28?= =?us-ascii?Q?gVHwkC8hAiTBOItsXWSzsuM/NIX4dim4q0EDOw72tmi2eAMJklz7h+pcKFyW?= =?us-ascii?Q?MMUbk073WX/CaMg72+TYOYNbpHJAWLAqB1OSMFCPTmUAn37a5FyGAkcmYDix?= =?us-ascii?Q?kMKus9IL8YH9T+wyP7m8esQF9KxGUck4ZGtXwOnH27OVRJqsIc57dYeOTUFP?= =?us-ascii?Q?B8XRopS8j3Tpp5I6s/mozkH6WWj3UVrZiRJRnzj0uGurmY6mufd8wf3Yp5dw?= =?us-ascii?Q?O0zVvh59BpihhyUzZaP/dXuYK6qoFfATWgN15xm4Yu4OAzjoMo1FTDRq2xhW?= =?us-ascii?Q?15vXW70+qmr/LY+L0eUk+q4aAMCqqmspktdWp/zEcXqXICUdD2i3Hadb3rO+?= =?us-ascii?Q?Sv95qA5br3IrGj9pAsUd/bE89A8CGYZE6s8b1fGj/GgkTM1NrkgRYMX2sc/k?= =?us-ascii?Q?zC9TtfBXEcSU/pYb2M5wljTHDRmHtkaZSUT4w0L3UNakwYfihHOVUHnPq2/3?= =?us-ascii?Q?ZOEvF0Ee+QeQX0VtuAgik6mN6FWq/0/TtrhLVyUd824yaJOTyIpmYTSFAt+X?= =?us-ascii?Q?AQ/p5OBX8TVgLBheHeJOuOeDRx/ZCvKBb9pqzUAiz239y95wxdhvJ7ZeY/Ou?= =?us-ascii?Q?moqaHrCNV2CprGgEZTbzR6T1kXsm6QIgkqRC9xv3cg5ZBBkHPNO9RZDDwQWg?= =?us-ascii?Q?A0maa14Gm7DIPXQenZqBbC6DPXZP/jSHMDYra9JQHabI4R38jaP+wt00omt9?= =?us-ascii?Q?TWiehnJxSPBXoICnOhDnC+QlwWADRoc2RDMTyWnt3DhZ5hIpoRZ26kfC9+Oz?= =?us-ascii?Q?tt+fdNhK3ittLH6dVFlexof6g6E5CkiXByLq7DYI4vlqDID7Eltr/KIe29p0?= =?us-ascii?Q?4ekBDSu3rqv1pxSaDH9krMgT99XLyeaSA0OmVCD3rBLockuHpJH7EIa7LgH4?= =?us-ascii?Q?/wy5GYEsmMO0Jvm5CZiJn13FgM4uZ3FWi4CLs+70/jvOcNAFzx5kT+SmtAUd?= =?us-ascii?Q?AHbBvWNTieb7UxCqGZbR+50NkkU?= X-Microsoft-Exchange-Diagnostics-untrusted: 1; BLUPR03MB1473; 5:RCGJl98L71A+RmVr4AdIZVj37FmbltiVWhvnVl/vC5tZ6Xr8LkEjsFT+y5Z0lGte3KEOa/AsjZO4MkGOHXZyDM3mUTldpT0pcdiFQl0NQKVe45EMZv+ipCdsBO3jhE5jtAAUSAWuyqTZzEBFuehnMA==; 24:BkDcqXb7i64HhJZRr8bHgcAf59/wrAjWnfso1RoGXEyrToc5AmW8pZeSJcdo7pscz/SAaJjcQRE56G1AbB4If7Rx6iqf7aLNJ7xi7ahnA2s=; 7:DsLeY3O9jCyrM6vbKWPAySY4ZGjq4E1p2xdxyUo3xxAR6juSIdu2/t6NuLiSmy2n70Zoca8sicOToOwyvRoZcr7MaHTa0gGYRA6MOjOklEujLSDFFCVi9UUf0nyCKk58aJ49r722MFo8p2pn9oPvqmQcxvsHJgQr3eDknU9bCArstscWF6TBRLoLin1Z7V6r; 20:qg5lgIusQGdPGrY4o9qE2d+fOsu7O5MkWKPz8keEXcoj87Vhplr2WobpEzQQRHySXS74UWBUY+s2IFV5Dp91LnpqCFzKksTiUyHuKqp+sl2RXEUhfzes8iMG/0wc0hjEoqCq0qymExRBupfAnrGllO5d65tSLipbbH5YHB9rbI4= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB1473 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1BFFO11FD007.protection.gbl X-Forefront-Antispam-Report: CIP:66.35.236.227; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(76176999)(50986999)(48376002)(15975445007)(19580405001)(50226002)(19580395003)(2950100001)(47776003)(11100500001)(4001430100002)(4326007)(85426001)(66066001)(5004730100002)(77096005)(86362001)(5008740100001)(2201001)(50466002)(87936001)(3720700001)(2876002)(2906002)(16796002)(86152002)(5001770100001)(4001450100002)(956001)(106466001)(8676002)(189998001)(33646002)(92566002)(3846002)(107886002)(105606002)(6116002)(8936002)(81166006)(5003940100001)(21840400001)(586003)(229853001)(6806005)(7099028)(4720700001); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR03MB1452; H:sj-itexedge03.altera.priv.altera.com; FPR:; SPF:Fail; MLV:sfv; A:0; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD007; 1:pZuO/+cxBfwepCvp/cOyg7R4SXDlErTyT4EAXgbWxglnaMsj9bSSoz6IE7Dq6AW17jchqQnoQ1LSB8FP3o4Wjxp+2CnRu8+gmBVQOjWXSMEW3PYsI+nBVH9e7CJCH7QxWPxS+4vT2tXm8jfEaWN5rRBUSf8WoC2kpseZn/YuWmigrb4dZK00LGpYb8YJ2L5/5R5S11UnQU/a/2J+EZ9/yOjjj2bwG1IJ3i5WfCr70T0j3f9S5d6Tq7BL0gH99xh1SaLA1oPQur/xtDERyrlbNemPjM2sMR4DrjmqpXDnf6F5la2Uuv5gGsGBf4irmc6NZhmlXZ4WiSRv9B6Uo5RHfy8fOM2vh8Ej9a3/i1gq/hkQqrp5NLsUkss5KjBXw3QX5ftexnp99F3Owkeud3GeihbSAjBB/6sG22QMwybB8A+V0LpIACe1UH7mQcvt9VOX8rmIhsT/I+mlZeJb+go6INH01rx2WcyG7j7HnriGYIQ57sHvoa9NplgK8Tj3G00wm5AJ2eWa69XMHoLqSL6JpR2HFsOOo+TtJCwOdfdTpyI= X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1452; 2:v+D56KkhjyLnxfSFU08AWu3CnPfzuVTakdjp5EQT8xhmAnh/lGI3a4lcNk8YXJKCEveywRU1xh8eEmaNz6m8SBAMWj7o3qR+LNNFMcSPnzpBtbuwadOw5xVz6hV0gUhKAD9odkb+zho+u0BroHmBBTbSaxEwug1UAPG7ogRdbkSJIQp9voGqh5UX6Z51ft7J; 3:2DsvjS1g1azxItGlnagHBUq2z3VMseFNuuRCEZ0hlUHIGtKuNo4ppnCYJgkq28RaFSt25FpjlvIn0tjP806w61CtK1plkT1LbLPSuXWRCIn4OHpDO1e0cNLq/Z21rAUIg5HBbmvPDCtTu95l4aWECO425u2Ktf2YEUj7SxEgcKKI+4K2jpPZgIMdtl8UT5qmkpMPC1pA1rdOZlxuURsPgsGML6ss6Nqr3odV3/64PSrlxHyBYTqbfcCfH/6LDrwe; 25:GAH5Wde0t2Cg2FYup5Mkt4pVxOvGYbDBW/r8UPvdJ33+9ZwBQY0Tq/qvr/jgxusvoE1ln7PzBJRfbobru+T2ZpZ3ftLxuLOa9q6SZUMwuplNtFl1z0WEIl6dG/mZ2rfxaE5uLRqmNarzaUhNBrobyP/BAUdSN0xgtpGIganHj8oDFdw9bwAGqJqkqDvHFt/GjNGymEfGhy1RpbFrqQPl3To3qpHK9AsV0azfckEOJZvZlnXBHij4knfchZ5YeXJEY/V6GarJ96NbOW/B5Qtl2gkM+OeqKilAXp1U17Av/r6HmWobQajeA6FyD+r07ii4iOvgPjLNUAL+nV17GfUbsMSqkNlSyu2z5tmoiOcELjOAQQ1OnGrdDouHSE2eqPxVltf6uk6+a0YcuRoRG84HBqvX0lKXv6cUKreps3lESzQ= X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(3001016); SRVR:BY1PR03MB1452; X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1452; 20:8mQ5bFFjnsK3MMXDyqPyqnM8+z9laKymNNxT6Px/tQomyPKIAkxe0FaQvo3XI1NHoqntTzP2FIICs4iKb4EbaDU6kJsCiSSRc/74Q7QP4+oatvOurjMX4iJFMLz0d3p16UZCiyWZ9CF+8zP/+yzSU69bJzaN7o5I2VvD6tNPv2M=; 4:+sl2n8PY2PEVjlqgALAwKAQ+LGtelrh6QRxD4+uR+FiDYpXFwOJOb+/3uKOrm9WpYdCSYTjWHFgHc/3Pwu1Sah1ILrl6pm6wlAiHk54zG/cXiqNskAAqpbZAb6Z7PZPBTZBD01klh0SvQyU00+pymXMV3Md3jAn2Q1v/AFwLsUfKhig5kr7yk7HcbWWeA/K3vmy4/6XeMPpezxjD0/MeSzHEXO6tInqwNGHIbCoIgAEQR22yCxiSCnCvVD7x2VqJUHjRe9JYOzvA5v7+5UURJShUUNouzEZbnfCIqHvvzlo6/TwRhwtvHuemXWY8RtyhZYJp0jhZyTZ8l2MQocjY2Lnowsy42fZVLI1Xl+3xHi+4ivuBBchhq8rzSgZcCFJ23MRv1JTQQtiMu1t8BiQ/nlopVISv61d4D/4OaTpL5sp7+5FHn478RYZPdd9k4YaIdcfzcP5mT4aD/yqJNSJQDyeaovZGcDgPDPtNs8DIXjg84kreOyvsm/gZavHNzXAn36lWQqhG7rbKeyR7GRiUwHan3Pwrgw3ejE/UjFpNHVBDZ0Ek9tA/jRkJ99MKQez/fsplnZgYVnuS7gDiJzMkgw== X-Forefront-PRVS: 0961DF5286 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR03MB1452; 23:+YZA2Y4k5VxltJJ6G5bXEQK7uAf0Evqz019VgEcSf?= =?us-ascii?Q?N4SCILGd3lWPhmS+Yl6nP30cOeJ0SvLB2BQMfva9ZK5LkTICMhN3x6ZeiMAW?= =?us-ascii?Q?XGGvIjQ9+f5njiaDAznp6EenCW+7EA0yT21oNIqffW9QqXcEUe6YgyMSJ3Qo?= =?us-ascii?Q?HcPU/tVjCxf44eEsYuSra+CmkXyQZoLVotOZCb66JkpYDkaSQtqyronGyVgJ?= =?us-ascii?Q?0PgH0TUVb2vB1N90AutBwu9mOOeqHaobW+34Lut9fHaYQ5KwFBb6TCATtOf3?= =?us-ascii?Q?8o88PRXKycLPn0CgOW5oNCorExUN2piB+ASF/S0USMzdXFAU/J2KnLFGSnlj?= =?us-ascii?Q?I4csFrDFWyp6yxHe9udnaJZonqvN9ixnG63XY/hfh5DeMITUxTYMTEHrGXPy?= =?us-ascii?Q?3GVjbbPkjbT1DTVd31GuyPZMEshJvXfeJXW/QzRc0IRVi0U5rEzYbcci8PVm?= =?us-ascii?Q?MoO5IvAw0fmrW6GFLFCUs+CHgi2RKaT4v0hoKq77sjGtjiFoZr7+La2TzRQN?= =?us-ascii?Q?ic0Ip5/zbDcJzLHQzc9a/FP/RaU8+RwTBN5CvKCJGZi1pbxu9ebCSXZjWYv3?= =?us-ascii?Q?jmVeRKdRvyKxZplKIh8LCF5hgdHtk67r8ZS/3YH499ZlZxw8QYVjDFdM6YfR?= =?us-ascii?Q?4y7vTTEUSy4uIE/uE7E1CawkKeW6rxC4uwJpwUfqaJEB9yFaGS4V6nIw7nug?= =?us-ascii?Q?Uqdc6vPmeOPn8pw5rN1t2bKHyabwqmTIf15pI3piaOsHdKUUJIp+/ZU8t1Ge?= =?us-ascii?Q?AXe7YLyoYZfqPL4Tf8lcb2kdkWBBkeb8JO8YOsOlfThyUCNfzGZyEK3RkZE6?= =?us-ascii?Q?SKa1s3JlhJlAT9XHxpvm0K5nxuzNayFkgu5AizS4/hhqgdj6iA63CihNi+Vk?= =?us-ascii?Q?2h10PXceUnQRoj8GH9AC1k8sR235QU7Xq9KoJ0+FZVCg5c/Z3P2jqWRFQl9l?= =?us-ascii?Q?6OCB/8/4m0iGIeNpuwxT66QCMpofFfgc/mJr3PyGuG38sYZ2PwNeSA+dvGz/?= =?us-ascii?Q?iZqpYa3de2LHO14P4t/hEbmyfy6NJtjoKfdB/lsjAoHqFaXkca/DIRrsj8UZ?= =?us-ascii?Q?tQXbKCBbUxIE5kkaFsvBnk2f+Bp7giyiLrGai3PKljZ2wBwwjsjADHfokLMf?= =?us-ascii?Q?Mch8gaiCd0V4H+NQxFHvb4DZajPSXS9brjoMsMFA4hNNa5awatfC5CMjPWZ5?= =?us-ascii?Q?xNGaJ34LuOmNyD+W1J6GqWEWvt8xpuYP9II0cJuLhD1hsKl3RVtPgUj6v6UA?= =?us-ascii?Q?b394WU1Zl96rbuvPK52tFMFy19gqGWYprQzZ3FnLn5WL23lbkcFNm+MDTbNG?= =?us-ascii?Q?AS87Hp9PkHL5y4WyV5R5HhK1R3aDriOhUlviFXXHLjOfdJxPwG+6ZXM8WXtN?= =?us-ascii?Q?bjKFxXKphhgsf289/BxelVQGxnPQNuY3yHTdVJewB2w2ZwGHvG1n6fHPm2be?= =?us-ascii?Q?pg1LpwQdQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR03MB1452; 5:V4CcTxru/UzW9qt1XHDy6MSGXqJgJPZEcu8F212Q3RBV+YAQLIO6Ih77ihNM9oVtxAHrtp32gLXfn4XhB1IK1ZDjiACDLC9D12KoiQY6PojGKNFpY/45Tu05NmqNzYJbW/WGKWkdSTi44JiEqlsuIA==; 24:BHfE06g4waeTsICmr75gSsLI0YhCCf5CQebkKBfqzv3ecdDBAStMl19vKkQHeq+V3iFVhg5u4dCLFQE5KZ9mEISoI7zBpoazdwVgCJHTExw=; 7:bjA4CaonRbqYQN7Y4uwyT/KIPqcxWkSTXUTJ20Bydl9kSwWaGft9U9j4Jo1Fb4Cph8uYsolZ9YWzDQ5/lLiCMKpPoiHx071veadc8lZ+0svj50wXp6aKKYo8KqLlhomUNS5PVRFnf1VHofDZrQHhkOAe0BRxOUh9y4Kb9XDZ0GM=; 20:/f9sZQIGqm6VOWsXn0NYsMxC+MZArjLrSEB2xqvAv6IXCygMmtDHrbx4G4+ttRRL/OZ0FmMMraQsH+MXILEDvO3Sbz0FvejLWPCs69eQ1Glx8xgXiC9TMdvVwXt3bt5++OyFUYj6ouglD95E9Hiol8rU3/iuwotqdmfxxAA83qs= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2016 17:47:42.4909 (UTC) X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fbd72e03-d4a5-4110-adce-614d51f2077a; Ip=[66.35.236.227]; Helo=[sj-itexedge03.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR03MB1452 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Thor Thayer Add the GPIO functionality for the Altera Arria10 MAX5 System Resource Chip. The A10 MAX5 has 12 bits of GPIO assigned to switches, buttons, and LEDs as a GPIO extender on the SPI bus. Signed-off-by: Thor Thayer Acked-by: Linus Walleij i --- v2 Change Altera to Intel in copyright header --- drivers/gpio/Kconfig | 8 +++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-altera-a10sr.c | 140 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 149 insertions(+) create mode 100644 drivers/gpio/gpio-altera-a10sr.c diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index 9244381..c41c74a 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -786,6 +786,14 @@ config GPIO_ADP5520 This option enables support for on-chip GPIO found on Analog Devices ADP5520 PMICs. +config GPIO_ALTERA_A10SR + tristate "Altera Arria10 System Resource GPIO" + depends on MFD_ALTERA_A10SR + help + Driver for Arria10 Development Kit GPIO expansion which + includes reads of pushbuttons and DIP switches as well + as writes to LEDs. + config GPIO_ARIZONA tristate "Wolfson Microelectronics Arizona class devices" depends on MFD_ARIZONA diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index 6e111fc..ac4b09b 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -24,6 +24,7 @@ obj-$(CONFIG_GPIO_ADNP) += gpio-adnp.o obj-$(CONFIG_GPIO_ADP5520) += gpio-adp5520.o obj-$(CONFIG_GPIO_ADP5588) += gpio-adp5588.o obj-$(CONFIG_GPIO_ALTERA) += gpio-altera.o +obj-$(CONFIG_GPIO_ALTERA_A10SR) += gpio-altera-a10sr.o obj-$(CONFIG_GPIO_AMD8111) += gpio-amd8111.o obj-$(CONFIG_GPIO_AMDPT) += gpio-amdpt.o obj-$(CONFIG_GPIO_ARIZONA) += gpio-arizona.o diff --git a/drivers/gpio/gpio-altera-a10sr.c b/drivers/gpio/gpio-altera-a10sr.c new file mode 100644 index 0000000..8274f98 --- /dev/null +++ b/drivers/gpio/gpio-altera-a10sr.c @@ -0,0 +1,140 @@ +/* + * Copyright Intel Corporation (C) 2014-2016. All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + * + * GPIO driver for Altera Arria10 MAX5 System Resource Chip + * + * Adapted from gpio-tps65910.c + */ + +#include +#include +#include + +/** + * struct altr_a10sr_gpio - Altera Max5 GPIO device private data structure + * @gp: : instance of the gpio_chip + * @regmap: the regmap from the parent device. + */ +struct altr_a10sr_gpio { + struct gpio_chip gp; + struct regmap *regmap; +}; + +static int altr_a10sr_gpio_get(struct gpio_chip *chip, unsigned int offset) +{ + struct altr_a10sr_gpio *gpio = gpiochip_get_data(chip); + int ret, val; + + ret = regmap_read(gpio->regmap, ALTR_A10SR_PBDSW_REG, &val); + if (ret < 0) + return ret; + + return !!(val & BIT(offset - ALTR_A10SR_LED_VALID_SHIFT)); +} + +static void altr_a10sr_gpio_set(struct gpio_chip *chip, unsigned int offset, + int value) +{ + struct altr_a10sr_gpio *gpio = gpiochip_get_data(chip); + + regmap_update_bits(gpio->regmap, ALTR_A10SR_LED_REG, + BIT(ALTR_A10SR_LED_VALID_SHIFT + offset), + value ? BIT(ALTR_A10SR_LED_VALID_SHIFT + offset) + : 0); +} + +static int altr_a10sr_gpio_direction_input(struct gpio_chip *gc, + unsigned int nr) +{ + if (nr >= (ALTR_A10SR_IN_VALID_RANGE_LO - ALTR_A10SR_LED_VALID_SHIFT)) + return 0; + return -EINVAL; +} + +static int altr_a10sr_gpio_direction_output(struct gpio_chip *gc, + unsigned int nr, int value) +{ + if (nr <= (ALTR_A10SR_OUT_VALID_RANGE_HI - ALTR_A10SR_LED_VALID_SHIFT)) + return 0; + return -EINVAL; +} + +static struct gpio_chip altr_a10sr_gc = { + .label = "altr_a10sr_gpio", + .owner = THIS_MODULE, + .get = altr_a10sr_gpio_get, + .set = altr_a10sr_gpio_set, + .direction_input = altr_a10sr_gpio_direction_input, + .direction_output = altr_a10sr_gpio_direction_output, + .can_sleep = true, + .ngpio = 12, + .base = -1, +}; + +static int altr_a10sr_gpio_probe(struct platform_device *pdev) +{ + struct altr_a10sr_gpio *gpio; + int ret; + struct altr_a10sr *a10sr = dev_get_drvdata(pdev->dev.parent); + + gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); + if (!gpio) + return -ENOMEM; + + gpio->regmap = a10sr->regmap; + + gpio->gp = altr_a10sr_gc; + + gpio->gp.of_node = pdev->dev.of_node; + + ret = devm_gpiochip_add_data(&pdev->dev, &gpio->gp, gpio); + if (ret < 0) { + dev_err(&pdev->dev, "Could not register gpiochip, %d\n", ret); + return ret; + } + + platform_set_drvdata(pdev, gpio); + + return 0; +} + +static int altr_a10sr_gpio_remove(struct platform_device *pdev) +{ + struct altr_a10sr_gpio *gpio = platform_get_drvdata(pdev); + + gpiochip_remove(&gpio->gp); + + return 0; +} + +static const struct of_device_id altr_a10sr_gpio_of_match[] = { + { .compatible = "altr,a10sr-gpio" }, + { }, +}; +MODULE_DEVICE_TABLE(of, altr_a10sr_gpio_of_match); + +static struct platform_driver altr_a10sr_gpio_driver = { + .probe = altr_a10sr_gpio_probe, + .remove = altr_a10sr_gpio_remove, + .driver = { + .name = "altr_a10sr_gpio", + .of_match_table = of_match_ptr(altr_a10sr_gpio_of_match), + }, +}; +module_platform_driver(altr_a10sr_gpio_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Thor Thayer "); +MODULE_DESCRIPTION("Altera Arria10 System Resource Chip GPIO");