From patchwork Fri Apr 22 15:33:32 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: 8912831 Return-Path: X-Original-To: patchwork-linux-hwmon@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id D45A69F1D3 for ; Fri, 22 Apr 2016 15:29:27 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C3D16201EF for ; Fri, 22 Apr 2016 15:29:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8812E20108 for ; Fri, 22 Apr 2016 15:29:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754482AbcDVP3T (ORCPT ); Fri, 22 Apr 2016 11:29:19 -0400 Received: from mail-bn1bon0081.outbound.protection.outlook.com ([157.56.111.81]:20352 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932165AbcDVP3G (ORCPT ); Fri, 22 Apr 2016 11:29:06 -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=YdbJreE6e7yqRTsGJxv0gwb5NSrY36TztVh9gzeRX80=; b=AvalbxD3KmGzYjjFgj6SpDKb2ySfKeNkww8Kio0UWdswYyLj5Wxxo7JvkyRM+z/cjl7yfUBXrWxvmj8ImlBnVsorxuV1e91jyD5XuIp0C9i2knCoruIv3D9vm0IwEOl6DgPPrRG8C17t1ZCYjfeUEIwoTPyThpJzcCxzR7iTDfE= Received: from BLUPR0301CA0042.namprd03.prod.outlook.com (10.162.113.180) by BY1PR0301MB1286.namprd03.prod.outlook.com (10.161.206.144) with Microsoft SMTP Server (TLS) id 15.1.466.19; Fri, 22 Apr 2016 15:29:00 +0000 Received: from BN1AFFO11FD010.protection.gbl (2a01:111:f400:7c10::179) by BLUPR0301CA0042.outlook.office365.com (2a01:111:e400:5259::52) with Microsoft SMTP Server (TLS) id 15.1.466.19 via Frontend Transport; Fri, 22 Apr 2016 15:28:59 +0000 Authentication-Results: spf=fail (sender IP is 66.35.236.236) 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.236 as permitted sender) receiver=protection.outlook.com; client-ip=66.35.236.236; helo=sj-itexedge04.altera.priv.altera.com; Received: from sj-itexedge04.altera.priv.altera.com (66.35.236.236) by BN1AFFO11FD010.mail.protection.outlook.com (10.58.52.70) with Microsoft SMTP Server (TLS) id 15.1.472.8 via Frontend Transport; Fri, 22 Apr 2016 15:28:59 +0000 Received: from na01-bl2-obe.outbound.protection.outlook.com (207.46.163.208) by webmail.altera.com (66.35.236.236) with Microsoft SMTP Server (TLS) id 14.3.174.1; Fri, 22 Apr 2016 08:26:59 -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=YdbJreE6e7yqRTsGJxv0gwb5NSrY36TztVh9gzeRX80=; b=AvalbxD3KmGzYjjFgj6SpDKb2ySfKeNkww8Kio0UWdswYyLj5Wxxo7JvkyRM+z/cjl7yfUBXrWxvmj8ImlBnVsorxuV1e91jyD5XuIp0C9i2knCoruIv3D9vm0IwEOl6DgPPrRG8C17t1ZCYjfeUEIwoTPyThpJzcCxzR7iTDfE= 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 BLUPR03MB1476.namprd03.prod.outlook.com (10.163.81.18) with Microsoft SMTP Server (TLS) id 15.1.466.19; Fri, 22 Apr 2016 15:28:52 +0000 From: To: , , , , , , , , , CC: , , , Thor Thayer Subject: [PATCH 04/11] gpio: altera-a10sr: Add A10 System Resource Chip GPIO support. Date: Fri, 22 Apr 2016 10:33:32 -0500 Message-ID: <1461339219-15255-5-git-send-email-tthayer@opensource.altera.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1461339219-15255-1-git-send-email-tthayer@opensource.altera.com> References: <1461339219-15255-1-git-send-email-tthayer@opensource.altera.com> MIME-Version: 1.0 X-Originating-IP: [64.129.157.38] X-ClientProxiedBy: SN1PR0701CA0013.namprd07.prod.outlook.com (10.162.96.23) To BLUPR03MB1476.namprd03.prod.outlook.com (10.163.81.18) X-MS-Office365-Filtering-Correlation-Id: 85d6db35-07a6-4e3e-e4e1-08d36ac2d3d6 X-Microsoft-Exchange-Diagnostics-untrusted: 1; BLUPR03MB1476; 2:8P1Kggs9UOiE4PkEGNxBtfTP3IR8qyjVHPpX3FsP9ji4Q8+67+zJHbZ5y67dHDR+Ppd66PutHxl3RJ+pI6nxn7w3PlACN7sNoEEoAIZaUZtFRKrw6AvSWvhd4rRID0dULmTNXHLspTYmnb+h3uAGHu+UpkoxJwAy937EnrUEmLM6pD+kfhydAEdVWYs4ABEo; 3:HKPGrQ1Zb2ZJiWuRvNEIz0g/8bxlA7cgold3hI65R06KbnSPzntQMTvbjr4BaLu8SxQ/ov14DlqkqGzbsKrvWTYMyvvZDYGdxdNNvePNbcsCKW435Ga+kFhQpexVs337; 25:nLryHGjMvnR+KDM8CREgeO0S02FOl/DVLMSptcTnyO4zNyN3xCtjDBt/ZGqxdt1D/W90zbAKwHHPJUPkq4eQsU8KhHQ17l3MEP4V1XjvN30J2SU7Ek6VRNGoefq23k+4dxSRCe583IFUi/WPgLWibOcowXQ6mqAuy93drIjFAyQy2SLnboMpJJ4cv0ke8Dg9PvxbMgBTNBVbN+GqaU4gC97t5U8I34Z9bnmvykLSjZEo+8BdEEWFO4X+BSCR0T5XyzjWExIXzO71luQwb16aF9ZLS1+/JNfgxO7+HqryGopifCYfyjMnVJsti3yYjX+OYSNm7DAO4oclCExdKZK00A==; 20:DCDNzrgIh/0AnT+sef+hq8Y+6SiDVvBf9YNTB4/gfpyQy8Jf3aLfBdKuBtP1HdmzS0Vyk/E2Oiay0KJQlJPhH4KKd15AfJ27Aj27DhbJA4DvJRm6aLOPRJZcgVdOH/y4eYKGeqrPKlHzZ4d92C+2xkvV6Jvw+++NucKK1vE4xwk= X-Microsoft-Antispam-Untrusted: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:BLUPR03MB1476; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:;UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(9101521026)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046); SRVR:BLUPR03MB1476; BCL:0; PCL:0; RULEID:; SRVR:BLUPR03MB1476; BCL:0; PCL:0; RULEID:(9101521026)(601004)(2401047)(13017025)(13024025)(5005006)(13018025)(8121501046)(13023025)(13015025)(10201501046)(3002001); SRVR:BY1PR0301MB1286; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0301MB1286; X-Microsoft-Exchange-Diagnostics-untrusted: 1; BLUPR03MB1476; 4:XbSiuJvkXfarwPaVEnUduYg3fwmhk+E4BC5NGy3P1I9ZFZW2AyDSLTGwgH32pRzlG6MeLk1ygtC+Xv6OCeYpepVtyLtsJqXA25s+TMKDk5CKA7g0OyHt9KAHaWaljMk+EMKa08j3QzQK80Y7rE3zTw02LuWT2Tu4Tt8JYuF6lvl2/vCHiPbkEXR5p5h3maRoJc0+LOOlxf+Y1OgLg4Z6BRjqXaQR1i1UhckV3hGl0uleOnrJ4wUr3EtfjNBut31HCgySjWDucl1g2lnA3Cwct73/4b88zCneTstb8RM4dtTox+b0ZkMFbW/K6RfLcrai2j/kKXNXVLt4TtT4xHXcReZtLuNgSqtid0DrcwYxxcLjYxfQ/DxCvSpUlgdgqP1hPM+Pub5p9/LD7HJucpL8Xw== X-Forefront-PRVS: 0920602B08 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(10009020)(4630300001)(6049001)(6009001)(15975445007)(1096002)(6116002)(19580395003)(19580405001)(2201001)(50466002)(48376002)(86152002)(3846002)(4326007)(2906002)(5004730100002)(86362001)(33646002)(2876002)(2950100001)(77096005)(229853001)(66066001)(76176999)(47776003)(5001770100001)(189998001)(586003)(4001430100002)(4001450100002)(42186005)(81166005)(107886002)(50986999)(5003940100001)(92566002)(5008740100001)(50226001)(921003)(4720700001)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR03MB1476; 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; BLUPR03MB1476; 23:g8Qkem3+8aJDJdFMilmteI+4t/ImXKruoLwD1bEVd?= =?us-ascii?Q?wqlbvoWa/vi5NsacyIOazrG2noBsQCPo2uEda5NU5U+EYdOKP5+PUnQeDJaR?= =?us-ascii?Q?+rMS/HfmaMZAQX4EGGoNbIkNgVYdq6uvelcCSFLlyikl/iIE3EUNnNvJjYiy?= =?us-ascii?Q?wOqlxGBIhAATVDK35kve9kyc7++k1M30a7TOv6o8M9lswEwzHIzIVUwvUx+g?= =?us-ascii?Q?z6Hjv2UfrbxQoE5Z2vLA7+grh/fXKB1K+9RHYop/Pn5WabABehI6pXYX93jv?= =?us-ascii?Q?hzZCsh1Bs3SUu7Adrquser5Hs/o/jfTH+LWNPVjCY2Izc9PYzeJDtWFUNGT9?= =?us-ascii?Q?DcGY2JZSEedkRJPBNjZMIT3pExo0Hrw8XC+OTjMiaSkIWleQ20zrYRZ+Ttya?= =?us-ascii?Q?DDIlflX3x0ACC8fvJ5gPpIZyJzVL4HUqS8V10tvZZWXiZrpQ4kdv7/y4Aoem?= =?us-ascii?Q?3LHKfl2sCvupySbmcnKUnPDKewV4YEsojybQIJi7nvRVU3Sm8P156+WIP5gV?= =?us-ascii?Q?5cqxoAxY3DFarXMR+whDOpMGijqjqw9I2JfyuPNo8p8vlKMilaOeJwRS8RAt?= =?us-ascii?Q?imMEhWHaf3M94HjnyJyjHvGOV15Yw/HPrT+pnz34IMwam8FdDJ4HBT2k2SfL?= =?us-ascii?Q?WP7WKm0w8rAA5Zg/xY+OpUc9+ZM01mEzJVnak7Rq7/iK6fpiXpy1h0Xh2EIc?= =?us-ascii?Q?aRsSXsQ7GT3hgRD4daehHMsc+7eHoXlAVVsUhNEKrn04PbCxJ6HVVeQFAVXL?= =?us-ascii?Q?2vfBbVMFvGUPuAWflTohuyFRt8C9daWvTb0k2jGStWCb1pQeENdVx7J9+BOr?= =?us-ascii?Q?AxiBFri1UHtnCZIonE4/Ar5R8gghhtAixBDuOJhILzvJOi+iVNgdkrd1WBJy?= =?us-ascii?Q?a6Lra6QqqL2Y4+FZRkkNpSbhaXP8R2F3899Gp4CMLAwDdq6CilwxETFXp+JC?= =?us-ascii?Q?JhPNW3ulQcXr78V7x4+3eRdkEtQ7Mfeal3mOwAp3C6cTWl+P9C1QkoDovKt2?= =?us-ascii?Q?xHaXjjo/eRd1qUwOQv9U4OX3M6MpbVG7Xlmw7nyqvUaKZ4VUR1qE4PE5VQTp?= =?us-ascii?Q?I2wGhja/GEBbVEUb2w2tOqAPUjoRId6S/BLAVUQriBHES9mxsauVJ0pTqvkL?= =?us-ascii?Q?ds7AItSt84=3D?= X-Microsoft-Exchange-Diagnostics-untrusted: 1; BLUPR03MB1476; 5:vafMdEzlIkkUdoUaVrjXTA/WUpB3mP08I42hp/1t00ZlrvfqlZIxgz9Yh4KSs2rsJprRqIGq18n53PxO/TuDgqwlEdC/avoj45JH5suj93QjZJqH1FC9YYEok3+3lyrx/jH2mvh6pqCjve7DB/wDo+KzQ3Gb+9Y0oBtuXPWUw6mMWUAHYNxHA9b+ZtTkk8qn; 24:+Z/rp2zI2ROVrX24or3MD4Nr+kZS64uN7ApeeMkd8vsLHSi0kc02+UHkVnZI+W2lZirBjDrNcnlnYz+btQ5w+GYTyCsn3mslhHDlzyekic4=; 7:bhAFuxm+lW/FI+XPgsD7n+uKXeCCWcdQPps09/nf8ZtPKBA8Lw3FmkzzubbaGD8ejTre5+nnsCx+kwqWZ4jvhopjMWwIA8BrYZEsrEUXe94xlbZZ26MjZEZ8bLrv5Gevui56kJl91cxS5ydSwkdv7QoB6AdOMjyFa/uDkfcq3bY3c41qU3zpWb6+VMo8S1hydPbInIJ8xxyF7B1MtkKFUxZiB4tRag+8NIw1gSkGX6U=; 20:IxWoMEVr+HvEQaOxc0NUUDJp5HgJ1kcu+7R/+7XVeOCWORfPvVGwcBzHbT0acLXNoEd2QiZ/mrR0HuAhnSpdxpYiA0lRoiuyKz5tOAARgkm9DXwNuXiB5S2fYw/PpkwO6RAQFzPzpv0acUzrJjXmjEBRz1PGWfRgO3MD1ugWR/M= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB1476 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1AFFO11FD010.protection.gbl X-Forefront-Antispam-Report: CIP:66.35.236.236; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(6806005)(3846002)(105606002)(106466001)(956001)(5008740100001)(85426001)(586003)(50986999)(76176999)(2876002)(47776003)(50226001)(33646002)(16796002)(6116002)(1096002)(87936001)(5001770100001)(1220700001)(229853001)(189998001)(107886002)(86362001)(2201001)(4326007)(86152002)(11100500001)(81166005)(77096005)(15975445007)(5004730100002)(66066001)(21840400001)(50466002)(48376002)(2906002)(4001450100002)(3720700001)(5003940100001)(92566002)(4001430100002)(19580405001)(19580395003)(2950100001)(7099028)(921003)(4720700001)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0301MB1286; H:sj-itexedge04.altera.priv.altera.com; FPR:; SPF:Fail; MLV:sfv; MX:1; A:0; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD010; 1:fJO96WalIoFVkm1uijQ7tvgn3sejvH63emEj7aiqx14PW/udJBV9tAwBp/vdPNIUx9h+1miBAb3JCFaCk8xw4MPKzTB3E4xIMo8z2uQAvGjAKVj3WMwyfuVYFrZJTy14gSL+HTXkqblPf1xCiEryIS+75MhCi/o/V4Pg4vtl5G6tjRV3AYbxwK/aaI+1Pfxn7DxNOCqhXxrvapznz8rA93jDdKHXN3OKgI908gMGpKnrFkSvLNjI+rGtY7TZaJ0umy7qIjyg6TEPOmGsVM1RI2iErZchL7yDzGsuvGcrKi8wWD+2uVUxU2IxZf9gU7m+QKGeIVunznHHBu5TRiMQ3u0GV2GvOkpX0SnyA2B3lCBWaw4XxaY9rSLENf/pXRnRbK64tKKpStqvS1ZY9rbbeL1RUNUBNM7FYYefSRdBRKswHiSsLwevhvPE173TYu+kqVYWm8tF5iCYGvlFSJ9fXyPqcXO4J9nIKiQk/4ADu0BmUZGpnPZsNEzCK05ngykUDSVBT10muj5/nCdpLP4bQkegYv4iCLf6p/Euymk1d8DZHp+U4SOKMbc+HuoH3bR7 X-Microsoft-Exchange-Diagnostics: 1; BY1PR0301MB1286; 2:ayaxg8kKhYWKnZp74lQBD7SNeLfOcls66g1F395C0vY1p38rgYmLEfrH5PL6qja5MhQxHuuZ0bZM00fX6MhY4AuAbcRYLBjzQr72lzWQumkCZIWPDmC2v2kRRbk7Ga8tbvm89A91TdV5dIwx7+gKGWCOwsId7xfwn71MwAf//YFpvED60XbAUzwiSagG770E; 3:/oFzxd1aj1tcMrFs20g20ji0+UBG1lNO7g1LG4pfWpOd3zvBywkOKmcl7WOaprJy3y7dgbDTDWSaMroe7D/Dub+jycx3U/jEG7uTR2ycJ4IHGmhLBfRkpep6IUl0iaGxoxcYNagVnbmWlsQTrj+2yDYKEzq0gb6RSJr0Sr1GLroJEN4AuCabROBeCQFDJTGEdh3cztAMjMLwByh1AdCmncjTXqfqt8Yn/kowZYzMJo7aUroVQsrWXzEB1tqXBF3h; 25:DDDQBEXWryxWdC+4h83PmhkBx3efwk+F4WslLb+dEFua0s/0DSZLyBaTc3/BhBw7o1Qw6rCmaXfm8b7VLXO1d9ZEzmAL0lZiAXqBY1APUnvzthLTDSVaYGMx0U9zh8pVJQJD6tbo/dZQseXpsfHsNa1qaYA0xWiK3fm7dyRDfDZ4z1zUXU23iZDUFSNcfOr5hXsuCX+Ht12IwLMPw3cARjQnFXom4Jkhf3VUZeQ6a9wjBTHrn0GVttAPy+5179QqVoeMcPW5+XPkjWa2VFYx1Fvm4EA9g6zGXdfYyM76ptefW48Ymu3j1++B7m804YE3ex8PqMjf7mnB9Xv+k46aAw== X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(3001016); SRVR:BY1PR0301MB1286; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0301MB1286; 20:dk/cxrnxXEKeXkXpqgOdveHesI/IJWjVuk6QgMkh20GG4nzEMfGlZZY8w4lRv+c4rEY24Tui6x9bT1x+6JwQSbh0EkXy1BnivwuJDIDcsB5K9+tAghvylR1uA+WGbVDy3EuOIj1EccImiEXNgrfzWfJ/8SNRjHrWQ9J3Z1wyVw8=; 4:YmYMBZtyiw4U/q7xthB5+GIJGeH1nEs+UIGtCnjGGJiEYIosrmmzjMf9/MvfTU4o+FpUaiEB6T3i/o9k0dS6zODApdmXQJvDaqFZe3IrFcV9CCWULfYHMD0zAuOFKUSBTrmF4RIDrKmCUgh8hLHKgrqnVa3j2H820Tf+rNjrHwTWKcxkG7nBt9paTmxWoWDwpWkpIhH9DZi6Q36erNEmNxiLo4iz0sM6PMcjSruTz35egLL79MLPslmAKcq1ZjBM2JXP6pEC99nvnCBkpltpXsmBivzgqTRIL7nt8FYdLwir/EC4HF/MEL3P+CPcW6N+Op0gdlRI++B/IEu/WfpR0lnZnI855DoTs9beVnQDcN8SJ153s7ks/aI5qwALx4mTpS1m/B+UYQsczmzPE0bNKWvob04RRZSGtpUvqkJYWlGWj7CXG7/6yG4ZZ4ryXqvWcBRwyZI8DSfKUGIfkHpnqL5j331g66UIm42ewWRjVkQ= X-Forefront-PRVS: 0920602B08 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY1PR0301MB1286; 23:gqCNWGDHCajZ5k9HBqLEQm4ttsZoEqhBxhR8BZI?= =?us-ascii?Q?t/WdOz0RYlHpfDE8XD/MmYHtSNN1PsZCi9Oj87tDI8BFYSJlFG+5Pn1v+zSe?= =?us-ascii?Q?PHpK4YTZOq4MUydNeZWHDDajBQ2WhtnMZ/8DF3BSChc4PNBkzExCt1Vbb9l2?= =?us-ascii?Q?CeIdA/nA1H4Hjt5maxVqTRAFM7BajNJc81x6zQHoIjKhRsLe+ux4oBFAOPQ6?= =?us-ascii?Q?66RxGhf2Pwpsq2DwBvICugFxV0wYJ/ZsW0IZ5MXYnaETDJ0syM+biQLmiYo/?= =?us-ascii?Q?+mv3tIbSpdI3GrPbzZbrYwkSNMmpzEWAhvliYqs68OqFNl6w3wDiPYdkdCkv?= =?us-ascii?Q?rgxltKHexE+9KLXPIEel2O/eU5dSnLVQJ8HYs3RrM4shpqraxih2H/so648/?= =?us-ascii?Q?X3a5XeFTWaktIQA4E2VquER3vTquDTIUAFRJc5UiSoEA7BWpf2mMSgOMwZdm?= =?us-ascii?Q?DGKjnYdsZNUPrxd+sHY5tRgAVefiyGeRz7XkMYdbk3tPaKiiU8Qn5Tdf2fXP?= =?us-ascii?Q?B+vWYpfjTpYgMXdQ0NRleyDmiYicRjtCw+z7jiNHquI5FkQVUkDkUUdT4YS0?= =?us-ascii?Q?ZLmuTNGk1eiQNJal8YQ6oKXSw5PqW81htGbC1Q414PLCT6+/ekXTKljJLOPF?= =?us-ascii?Q?iYahEUcncJhTgkeLulDM2Sr8vzpuezxhKQpPn7kwtSusgsintFqgXaXMS6ND?= =?us-ascii?Q?EV7v+IKtjL44jxI6VigND9cRQlYQQH7Gsoe7MsYJaZkhdjGlghkiv3rp12Qp?= =?us-ascii?Q?Unhv0b6CN+09ai7LV8DtH7jgiZXHF54m1Wv3FxcBfhS18iO2UzyT+1RoSRSQ?= =?us-ascii?Q?53Cr4eoryUbnffff863M5eSkGmCZ/+khXlkPvVQ7iFIdmqmeKRzDL2ChL5yo?= =?us-ascii?Q?k4KzMXczwaFZTuD2T7OL/OGB0qVSOSnZn+mUNZQVaYq/BOYX58b6gFCDivDv?= =?us-ascii?Q?OyWlc9kOG8/T59FUI93LAEgUSGyRYSVZvIHEt51YQw+rrjRc4N3o5u8rylMD?= =?us-ascii?Q?Wc2V5K7rZurFKg0KOwFdA6eSRt418r3MfFIjKgg1N5K25oyF75Oa+mZhTd7J?= =?us-ascii?Q?fRh7Qd9vTHqHuk54bP6H4O2d+tDuiDc+5/pF5o1/Xy7CSsVXHxgkzmqVG+6x?= =?us-ascii?Q?JqGwckBglgqfK9+MjbzhDa/091zb6ELlyDk7LgIbfM4jWdoMuGAc+m/xItYP?= =?us-ascii?Q?ysHeovsKpuJc9d17NPBhFKolKJLdYG9mA7BBsGopB/hQRSRYMFwUYQbUq5Aw?= =?us-ascii?Q?XlCFfe4GdBlj9aaYEuAowekSeOKWhSvj4Aj2OZc3Dq1gp23MhYkB2vcSg0Qt?= =?us-ascii?Q?vqqZX4DVuyti0619MDpXwLS6nCKEyYk/qh7LPDCS2Vg5fO3kiZqnoLNwOCHR?= =?us-ascii?Q?nEM3b6Rs3igDdTKIV0yhLe4KXrXE1vEZQoBOqjVfTt2bHD3zmEDQqoMg0lzf?= =?us-ascii?Q?65TwbQQ7baA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0301MB1286; 5:vJA0RZDBaGbYu3B9k2X+2R6mSRArCU1FAMrtygbzj34Wgm0/e9idlPA4sdjBaU8hgWf/ZKtXaO93CcjFqP5xVN/q5YoCBqM8cXeqBFnhuWrJsVqigqH0gMhxJJ39iK+AACz+wGFOFaWL1W8T4Okc1MIsjqijm+wHNzzuvkRUYHAIeQ5eWhz6uvKfRgqU5vH+; 24:KBH8T2rerAluilANWArvQ00Oqk32sZOb0GYy2lsdWu3dYQACxmj81iftcqZhoPb24xgrKgIXBDmJXKlw7L2Ys8dtlb4677TsYC+N3WV+ahA=; 7:F+yvNBWOf9+TCxaOwN6M22igCh/7/9iPBIfJw1upiXjYO1+PU+Y8Z/k6x9OZFntNIeXtm+45B6CG8YKYQg+UO+NG8xJb/t7GtMta+poMWMJLwuUDQ+5GNoRcSm02rLq7iYhOOuyLiFE4bbKk4dwAl0tbSDblWLuuKSVe79rAG6wuVxHTs8bHfm/l+R8f57GGAzpqvizcmORzuYnD+x0New==; 20:gcJmRAzyz8wrzo/4ZWXO402GkxN/P0c480VcWtEnqFzF4a7ZK9vLAS2Vs0UZOBl8auDBibSWgYfMljkMeVg5Vo9keHMWsDZscm4A6GWN7yzrIOhpblHvdw0j14ahWE680/23mhNEccmXuXmx/EaKUkVYIgxJnIqTxZxmbrRWIUU= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2016 15:28:59.5903 (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.236]; Helo=[sj-itexedge04.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0301MB1286 Sender: linux-hwmon-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-hwmon@vger.kernel.org X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 --- 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 37f0378..66c8789 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig @@ -775,6 +775,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 40ab913..410e981 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -21,6 +21,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..a65fbe6 --- /dev/null +++ b/drivers/gpio/gpio-altera-a10sr.c @@ -0,0 +1,140 @@ +/* + * Copyright Altera 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");