From patchwork Thu Jun 2 17:52:23 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: 629393 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 3rLF7M3mp0z9t8W for ; Fri, 3 Jun 2016 03:47:59 +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=LVvCekNfkFsZGBd1pjoHU3ImFEzM+WJ7x+QNsrMVmbeE0Hqnh5Ryhf5QcU/kNE79cM1DJd3/ZXjDIBZJvOk4aFvlzzQhbvz7q11ur4QpfnQyRJUzp9wTDdsQYIv3uDB8P7i0jjL/nDwfRt6zMhOfbv72iNIXfwLBWHgkQYlsJmw=; dkim=fail reason="signature verification failed" (1024-bit key) header.d=altera.onmicrosoft.com header.i=@altera.onmicrosoft.com header.b=LVvCekNfkFsZGBd1pjoHU3ImFEzM+WJ7x+QNsrMVmbeE0Hqnh5Ryhf5QcU/kNE79cM1DJd3/ZXjDIBZJvOk4aFvlzzQhbvz7q11ur4QpfnQyRJUzp9wTDdsQYIv3uDB8P7i0jjL/nDwfRt6zMhOfbv72iNIXfwLBWHgkQYlsJmw=; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933117AbcFBRr4 (ORCPT ); Thu, 2 Jun 2016 13:47:56 -0400 Received: from mail-bn1bon0069.outbound.protection.outlook.com ([157.56.111.69]:34080 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933003AbcFBRrx (ORCPT ); Thu, 2 Jun 2016 13:47:53 -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=2cmr/uvNcaKuSBMqyjxjyiQH+vFCaR0YwQPN3cm0CXk=; b=LVvCekNfkFsZGBd1pjoHU3ImFEzM+WJ7x+QNsrMVmbeE0Hqnh5Ryhf5QcU/kNE79cM1DJd3/ZXjDIBZJvOk4aFvlzzQhbvz7q11ur4QpfnQyRJUzp9wTDdsQYIv3uDB8P7i0jjL/nDwfRt6zMhOfbv72iNIXfwLBWHgkQYlsJmw= Received: from BY2PR03CA011.namprd03.prod.outlook.com (10.255.93.28) by CO2PR03MB2374.namprd03.prod.outlook.com (10.166.93.22) 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:46 +0000 Received: from BN1BFFO11FD026.protection.gbl (10.255.93.4) by BY2PR03CA011.outlook.office365.com (10.255.93.28) with Microsoft SMTP Server (TLS) id 15.1.497.12 via Frontend Transport; Thu, 2 Jun 2016 17:47:46 +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 BN1BFFO11FD026.mail.protection.outlook.com (10.58.144.89) with Microsoft SMTP Server (TLS) id 15.1.497.8 via Frontend Transport; Thu, 2 Jun 2016 17:47:45 +0000 Received: from na01-bn1-obe.outbound.protection.outlook.com (207.46.163.183) by webmail.altera.com (66.35.236.236) with Microsoft SMTP Server (TLS) id 14.3.174.1; Thu, 2 Jun 2016 10:45:41 -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=2cmr/uvNcaKuSBMqyjxjyiQH+vFCaR0YwQPN3cm0CXk=; b=LVvCekNfkFsZGBd1pjoHU3ImFEzM+WJ7x+QNsrMVmbeE0Hqnh5Ryhf5QcU/kNE79cM1DJd3/ZXjDIBZJvOk4aFvlzzQhbvz7q11ur4QpfnQyRJUzp9wTDdsQYIv3uDB8P7i0jjL/nDwfRt6zMhOfbv72iNIXfwLBWHgkQYlsJmw= 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:37 +0000 From: To: , , , , , , , CC: , , Thor Thayer Subject: [PATCHv2 3/8] mfd: altr_a10sr: Add Altera Arria10 DevKit System Resource Chip Date: Thu, 2 Jun 2016 12:52:23 -0500 Message-ID: <1464889948-28793-4-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: 2232767a-7a7c-4b83-5461-08d38b0e01b1 X-Microsoft-Exchange-Diagnostics-untrusted: 1; BLUPR03MB1473; 2:0wOripMvwY8QrbI+j9zFJKlym837AdXolYtk4prcOdTP1Rmeb2zAYuzlXji9LR2qbVJfpr7iqp4JzSTkAZWOfz+JB70kERZcH6X8p91qe18eAk0IFUxX6g1MMl/Eshin6UhXVY9q+jxnZcfSXy4aMCjfylzTgoQWLmt6AfywKBBj34ueZEIJD699Wk8UX75N; 3:K8ZN58WdUqqwKyv3ZteMFZnAglIMgmkdAvHyzC0CAse28o5l8t0eg0/NrZOTs9y01BOU7MLit7wOklWVlfr8HyOH2bp1OImXRz0KHurtykqurHYw5NJ98H4b99Vg980z; 25:D9Nu7sMbwkrG3AjMU9FSpGkuiDmAHyijNRoHvY64ZjXWcfasTNFukjp5NQmTlFoLRJNq8K+0W+MtiD6zsiv1WP1qMN7CfVZqL3O6HIE0Px2NmlLXs6YowFZ0ZnEY+f5JCKghaieT//lqIvVpAHK+LEIjn99i69mY5QmesUP64W+6bvlBdcQJgtMDcB3QYqP/+BAloQDzQSo+BtFZUHyyMgEneDXHuZY+rOF/+MN5R9D1sZR+0e9tljm63ShBQsotsaAOEKVYj2Dg3l0CfhH8AlcvJkZD1eVafO3Asify0hy2vKOUpE2h+chnAhKkFWQWkkDfNp8uWrBYRqOiOrwQpXr02ZhdadgT0ROzX+2/khvc7SmGAen78+krvmHWMxDW9SO/fbJzL6l/+okypdEd7DI4Z/+dHPrlNMXpve22CPo=; 20:llWCujIBrdQ7IW/+ZIXM5Y+mN2n/F+ftfV9BlkKpEeJcLT6trQra29rDsvBHKZVy4xUb7kFNZPa2vGwxRhNastKg3o56PV3gYUucepW0f5GCNl0hPT6uiEI2QOZooxfqZ1FtrkTBbIebeqQBYfY/qTid19HO1chWHMcjqhgxqXk= X-Microsoft-Antispam-Untrusted: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:BLUPR03MB1473; 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)(8121501046)(13024025)(13023025)(13018025)(5005006)(13017025)(13015025)(10201501046)(3002001)(6055026); SRVR:CO2PR03MB2374; BCL:0; PCL:0; RULEID:; SRVR:CO2PR03MB2374; X-Microsoft-Exchange-Diagnostics-untrusted: 1; BLUPR03MB1473; 4:o0jpJCnHgSGs/59xWI8/C0uBE6PY0L/Teu2OpomH0bEmbQoQ1XWle+jDhdwDxanuePWZi1zgO7nFuSB0/TRjvEu4dFyUmrL72JNJEj5/TiuIQCQ45erH3gg6QyDd57r1h0wd/asYQbEjvnDgYxxsz5mcKbbIu4gJllQOcmQzD5usM16qO7JJMXiHqK6Z6CW23XlXqfP/pKvB2IsEhYlKGvZpwwQPRqiWTzNBIxRUIDxOoiJbv1kGOm/v0DhrK+GO6MgOMReq962zrr6Kh1/sa6Pxj4n8AMLSnpf3743dfxySwyE5i3T2WHDTNrIQSPkVowzXNycA0wRjCTdRC8d8RGayRxjSerijI6iA/10/QaiHtek1DXQA6xcJ6v/UfqiJBZNg21/qhTTEJlm85DefPjv6Mv1I+bXUDLjZT1hUxOX8gAlyCkOX7j2YQtFJQAVVYFHj/0DlMwb+OoNiK9StMacgKyxSh4amDPwXrToaxPtSXpR5x1oQFpjoGeWPXJDS 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)(575784001)(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:sbRPpVEojbs4hkpuiDioXXRfXpxOMTNvQAtn+dmYY?= =?us-ascii?Q?owosPUK7zPVORcfO3JwTv/QlX3XnWFw6WfqOGSVj20h7fYu3yHQvNxIxg9oC?= =?us-ascii?Q?BHcbXD5Hi33a2p3XE6U91s6am17QypUmPfmhKp5BmTVkLC4TZR5Z1u6SbgUH?= =?us-ascii?Q?ftz7cYNEtN74jM5DVuJa63c1GXFWqPoGgy2EXWN/NHpUbTmHHFDRizuTb8Xk?= =?us-ascii?Q?X8D5JQVIEol6CFWK4Pv4g21JSjrv7koIcC3ZCBW3y1ZpWM3hPBkPEi0wrz+H?= =?us-ascii?Q?LxytlgJX4bPvzJzXCS6Rd1MLmgITl+o6bjmww3kNyDCUhkGCk1YqnSlvTwL/?= =?us-ascii?Q?Bmtwc9Ul3OQx0p0TrpYEwyBwaz3xTOrABwXVXomoQXtUqxUAPJ5ED09QBqbb?= =?us-ascii?Q?rG64bIC9HYuuH+yGKgJ8Vk7mN0eur5qcKgicCyNYGW84Y/Z3bSShr4MQepMA?= =?us-ascii?Q?4D53w06mwVV+f72tNzx9uZhS7xNvwox6vrzXobrxvufuzfiFOBrOrMLXCEdM?= =?us-ascii?Q?R/hV2KEL2UD9NxTWC0tDtWYoyL/q5eBNpQYDKQjx4WJdNukS8vOwEJa8Lt5y?= =?us-ascii?Q?2815MwVrcbUELWcfcIlJEA4ZclTr57LG3/hejX82KMZYU05VQ+ARqJzz7Z7T?= =?us-ascii?Q?VHm0CCSLtKFa6IlnNT/cOD3s792aLUrWYdP8cn11IH900mqypW1LKCtCr+Gb?= =?us-ascii?Q?5E9dWPT6KMlQX2OvajHDEXt1UBgu2dNeOD4rsY+bVmr9hbMex8m8TMfJUm/t?= =?us-ascii?Q?zCK4gr5veIzGnsjmg6xBhX/8sR8vy98vAhwDJ7K/pDcam80rbwQglTFJqVAz?= =?us-ascii?Q?jRajt51ClHhyYEAf1uFBp0ce/6dywWh7fnm/qkHN1QF/DkLe+DKfzzB6BvEh?= =?us-ascii?Q?z4m0WiOyWpQrTl5KLPBOO1twcvE1lUEn5Cuw4DjP1E1BeHei/0BK/CKB0tiN?= =?us-ascii?Q?hiVX3zbsyjIgdG9LbEFoBHgpy4oq4ZVvA4YoL7WJcITtYRhrliKaQzmKoWRt?= =?us-ascii?Q?xc/CstRs0PtEvn1XTQd0dL8b4IdQ2ffoH3p5ySVzhXoSHGQ/o9oj3reEhUqV?= =?us-ascii?Q?zwqGV3WMYElyoFJXEO7tUcfjskOGq0Ih8NB4jnO9bp+UsmU6g=3D=3D?= X-Microsoft-Exchange-Diagnostics-untrusted: 1; BLUPR03MB1473; 5:6ZcTiPoYg9DV1m7JitgZ+55EMBrcNcbe176CyQ/ftO+d1TcI0Ci5NFb5F6QkzrDueYTWaBDDKcpC8o1sHAnVRGf219opWrARqThY+Vd313yk4UluNiMQxpfrtCieu5lX/5I4UD9OZN57u98gelEY5A==; 24:Kinp0oOr0Fw/ktP9Mn2WvY2baGbN7EVRIkDVNPnL3eafdQIsExNzB6E9PdniYJ48Ga+gIEBa3MfUhHjrPeBbEpKCvxkwjpG5h4KAJBm/Lzw=; 7:5689mfInAI+JwG8jHM2D9JWnUrFh1/+wCI+A35m4FJCPWRgKCMCrWjg3ZW4Rbvf0WCeAXkU7C/X2DzM/L8zqPAb29orpECIIpE+QEIQD3UGyjn8bd4uV3cQNvZHGKJS5JZelwLVGWZTYB2SNCjJsipUfy23yJS3jYt+J/C6tpivlSrvPb56FB93wfiWITskC; 20:lgPFuSNxifQ6YQQ+L+asejYX4o817mJJz9YHWip42cGYfiM0ow0ZCQ1oZlGYULPQY5Fs3fw4KQ1bgWGu618A4qcm98jhvr0rzhtJtPJzPUSxd7YT0rijy1wCLY6RKbRkXj7t04CAaZSuKNsXjtIuk1ycyu6RerG7cmRcLbjUyRw= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB1473 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1BFFO11FD026.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)(9170700003)(8676002)(4001450100002)(85426001)(92566002)(5003940100001)(16796002)(21840400001)(81166006)(2950100001)(86362001)(19580395003)(33646002)(107886002)(77096005)(19580405001)(575784001)(106466001)(48376002)(5001770100001)(15975445007)(105606002)(87936001)(189998001)(50466002)(86152002)(229853001)(66066001)(47776003)(2876002)(76176999)(5004730100002)(50986999)(11100500001)(4001430100002)(956001)(50226002)(2201001)(5008740100001)(2906002)(586003)(3846002)(4326007)(6116002)(6806005)(3720700001)(8936002)(7099028)(4720700001); DIR:OUT; SFP:1101; SCL:1; SRVR:CO2PR03MB2374; H:sj-itexedge04.altera.priv.altera.com; FPR:; SPF:Fail; MLV:sfv; MX:1; A:0; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD026; 1:pOZL7TvJDB8Bw+hqu8lN5+RPv1TeSjVPJbWoi3S+rGM/riTY0mL4Vu2sJ7GyC17Vxll1aWC9bJm0iq7xBfjoyjMG8rNAHEKTpHUoGHnpxJqL2nuh+qPDQTsrEQeA6MC2yywKqrIDu3vXB21XA4Lco5/cwrxGOUPYR2Q+rXgfNBlhVDFueWRaWM+ZUCoQ1RaK8yOC+G+789QcESGIQ9J9CRuGrK9Olilx33tUEXdQ3p8bvut9TTSgiwzzJlwTH+UFX/AL/WQOcaNJJDGxcSeiM5kfedjSviO53SgQ9EFUbzxJWZLNjKIi8XZgakzfFp5KiqiM3MnKG+Eg5EVzaaQqCVlNFRSNkY/zQTTUXDbnkaT3H9ItvkNXfSRj2QzfvB+RqAdiP27Wi2+GeHYzlQQfGq2DrWKXVZy0KGCLPySX440YKbW2VKQGkD7MzyKX3QWAxW0p6TaCFPg1AmvxZIzJCPsz03xlGTRjNlFCR5dLZeg37lz1yYXNs1fnbahSbruo3zHxrPFsbYf0Su/2cNsl4BNuFWxEjMInpl3ReI/rnxI= X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2374; 2:QIm36qLVjcsioyMwvzRpptTonb0DzK9ZXlqaH2Cu0riUeyidI8RG7ZnAgMu4X5s8YmT/Xx2iKMiZ40Zm4WERWmEqPVqVpBE0fCecUW4/42T1Wo+ut4VYt7z0Qp9IMt+Eg2Z2mAjFIlvT4rb3B4Fajxgk+fqUXYt375HWj5foj7CheRGgHpbpoXpXB9SgZNy9; 3:GNqw7BIh77PqgGRq+8TQtOriPSE67diaaorVkTfVKqz/CnCsrKcvIXKhrZ1urWQ/YQ08W9NFoBLA+BVGMzgKD1XefhybOz7/M3q9OCyUeRf0fSLhahv6koig2EfZeRbSsd3PRGzNB2WGh1y1tyFyb6rtZDJLnqIWMCdAWIAEa1zlQ7qd1Uxn5AV1vGRfWiFolOcCGfGVtC/nbKUnOshOq5XDkPK5LBGzbin/PlRQ5SZe2wTZb5YpASY+ELo98FJT X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(3001016); SRVR:CO2PR03MB2374; X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2374; 25:1Cp2gAGNsvLwumL7soGNn3d9raYp9D+pyNI9/+DS/hKEV7fzGzfPpvq/VP3j679TTT73q9kgCvBQ5xNQ65aM7v1R7hJv/rFx9ld9MarAQtKLqop9uCXGbzbQdxsJ7D/5q1Ey6qjctfl70g0bWEWfXvNDcJeHl041dBeJU8Ikd3seNhvZ783mICusHjsipt12ACr1H0rW8Mi9vMMkdYE6rsqURENSV2y2PTIvahbJjnXGVqi5xQleYhAzI//hSH6PuFWLnaRK7n8up3rNRG3FbAN+bHgFnU81YYzIHmt1kqRPalIB9zjK+SyPxhvIByUAj7hj6asjTr2BZHNCiEWxb+sg6QlogU6oJkl/583ysqAu9GtAnD4OrLepHFxuQ4YRI2taEWy7K5e/QMNgJTc+a1jpYC/sqyPVfQeH/jBCM/oUMCJN9odRvAUQsY5UWJ6Wd/pZdrHbcGgGsiu4o/Zcx4fZkahqsNFsDAsD1nq+PrYOtfZrwq82V7BuhLnM5O1Cs3EVwGEMu4eIc/e3tXgyz7u760rpjfkRBeleP4gRBexG9i3HsOlxIiUvbo+W+o6W07BqqUstxgP7dbQdIEDUsWutrsnJjHq/lWYJYxBI1pMfhbqmXMIss8mIKCEWAl4DIWuKlLdnRrkQxs85haoQGzjk9Ul53M1hNofSrPlDyAQDD9I7vhdNUM2gbyGMydek8YAu4EBx6dieR9iVkrUhv+/yFMsBBoIHCH8KzZhE40SeMxChGpPRzvkTgdFZvy3XuPJaW4q85GFh6i6sb+AxWnfzLIyVEV/Zb9kNPcg3Xb/CwXjhEstv7lyyRvVNgb5n X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2374; 20:+kVyN8ORwEXc8zbnLf4W59m/q8PuoWSYbnGMheGFQPx7WFnqVstPgMejDTztfGGDf6XjW1tma/DbLL6upIKLMt4lNEY+VxcZAo9fNO7s9v37ThNuqhCqTEdCwHLRpvaicYnCgcCQtIP+ddf2Yd7Ks0rvHSkxUv9KiQHyMuBRiDk=; 4:veEKYO7yPw5fDV8LQrn32NgCCU9QMG9KHfDkpHChEhvE4Vg0DWMaIe/g5s4rcAbt1EOlRZI3ghtiKOW0obME0u6oxv1PMCcYirv0O4AKRdP+3tmhQShwkbr1IWc3jADmVK4mWenQPmGMR5Wa+oOoiGwwPu+GpaA1nTojWrLNpw8wSo3yQpEzBWqB4cdK+GMV3SG3mpImuXpqbTVDGCC8ij4kljNdr+RKXQw07MetpSqK6mLIpEP/LMS4c/qciHF6YUoMuKBWI3fENEhxiXHfp8OoucZD6neBYiicycxqHcUpEaIB+2qVpF9lP8CExgnNJhXPxfPt5H77V5fQK62MmQmMDai0Dype2ff5cX7hIfFz4F7pPucmjdr9nHjtOh0WCW8GPO2MHJB6EKYBvozJK488Hwg6eRdz9aN+EQZzB9ft6FvS7JbiERFy5nuR6y/Gyo86t7aJWdCP6b117M1RIxTIDeOPKJxdH3xvhhr8TX1QQWZI2JsrT7XTz4wUg8ZAUqkP2zefj8/VkoizqVMZMP8yLbTTj1TtTM5FnI2BltT8pz81ARspwGOhMQvXcVvdOcTu/e+beemx4xkB3uPIrA== X-Forefront-PRVS: 0961DF5286 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO2PR03MB2374; 23:mPxAPksFrRMl/esucbqtD5rWib9jfHMaDrd5eaS+z?= =?us-ascii?Q?P1hdl647DVG2Ha3m+GwPpXm1RWTIqkBn10XaYwoVyvgdvgL1K7+59fejcJL9?= =?us-ascii?Q?DH+P7/q/PA9CNiFAWWb1TGiLaos2q2lcZg0uq4/l/6SB4jZIekKT90M7sk6z?= =?us-ascii?Q?esfemv8HmQskRRRAtu9UvshqnmKaAQvcFMGpSojIT82FGA+0M1DqR5W2RIsD?= =?us-ascii?Q?RwwLoi8XeXfdeQoKC4ar7QcPmBZZTcZ6ftzUYQskh6XChedwq8B3MpivTfRh?= =?us-ascii?Q?fWsL1It3L4PKfZFfwrWW27Z65Q9Imhb9GPvKlSDZbOBwc7Ie3xOwbwK8Quqr?= =?us-ascii?Q?G8OIoKhni/Z3F71KC9++eIfzIzWeRudFkQnv+8hP6H2kkPM3HwLC2UfwtCZw?= =?us-ascii?Q?Sq7u6ABqDUTTUCPb2lpFvtUKqci4XaItnWfmM5NOcXvkc5lshct5yWEzYfyR?= =?us-ascii?Q?w+8Q/LB61o/49OycvVa34uzNGIpuHMSyT6Kw0Qd3CdLHJhHKfXpzgGvFm2UV?= =?us-ascii?Q?pIjucZMZjZB/fZCaeAv4/QN2qIiBKqFU1Awo9Vr57xkNgzhFwqOCxMXsFJ2i?= =?us-ascii?Q?sNqdslrESK5hktnhXz6GWaYjaLSxqubBZsDYS/ALpvS5q+vhKCTCcwwUB9JD?= =?us-ascii?Q?Ujh1+TgJHBRRPiEXKBlGdIQCL5ygRwKVxjIQqbIbQ0jckuDnRUJMCxSNXIzQ?= =?us-ascii?Q?Cm/eN+NvOIRe0UAj4nfNbFDcUte8WoUZB4yXdpCWxcs7cTWG5xX37lpKiR3q?= =?us-ascii?Q?wsWY4YEJqSSx5UJwvFaYEtbcKIUZZeS+lD6HjLrO6BjAO6ywQZoeahP36zHI?= =?us-ascii?Q?k2uOqCEyIBzUsVxr6gK0B+wL0c/V/seUdnRFVjwtdHiPN7UCOQ1XG7AVhW8J?= =?us-ascii?Q?TyclUGzUkHtjjoD/R+hVPDDB3PxQdPUZfdOiBEEtVxLBIQQj1O5rNaqj7d5E?= =?us-ascii?Q?yX/f5/WqgnMjIV8handm2rXbWPHaZmNjcO/l6FOxjDztX0UQwuY2YvPRRQXv?= =?us-ascii?Q?ShoXMkdXC3sRe+F3YmK5Yqu5ISIAT/dQx0T4IRY93Or+WJboYBQnT6rnEt8q?= =?us-ascii?Q?Gmms79+voo8SmfuDyumce2tibk9XdXOTgpuIZFR5KNkzBGP2CX6mDiwy7ieV?= =?us-ascii?Q?OjeJwqHDf915/g9emISPE5V7TUeXW/uMQWa+lUSuRHXRRAJHFNC3jEAVR8R6?= =?us-ascii?Q?WqinQLSnBg9+WsOqlQB5t1/77Fn+7goIFjPrL4UW5kogO7MvRABOqGafKau+?= =?us-ascii?Q?afGNzxtmf4SFh9Mtypy3ChI5P/5gP+/1heeCT1sRsJbyBeIvCfMiH3M70nEG?= =?us-ascii?Q?j+VYfR+1FdqWy03HiPsJTYsAjFSF8C3zFazejp1J0UXQo9a0xYfLpGEjb85E?= =?us-ascii?Q?rENjHR5wP+ogYkf9vY7DJA9mohhxOPLl+g5TpDlPDofbVpBfNyp7b+ImIs9W?= =?us-ascii?Q?sSW/qrzgtnc079gneZtOYbNpdqnyaw=3D?= X-Microsoft-Exchange-Diagnostics: 1; CO2PR03MB2374; 5:c0rBx/5384QuJM56A58+U0UktimBLi1Y2KHMSR26zaC54+3lQqvw8K2lj+486anmSCTZINgEdO3cgqWGWkijDNsFwakjZ+OxyUTmrkXVIf/wqaifxsdCldmijz7mpOxSC5gsGRoh4LXv9VkY7ImZMw==; 24:p33/CxLIxPQIwimm73T0DnjuhLDxX8iuckndwEWKcvhimdpxY+bQIZ2nKB8L8ftbj3zg58mV0hZ9yp67P+QloQFA86roNT232/DZ2uZj0os=; 7:WkCAdqopSFkY13ZXeT3oZcEtYQnuLnixs5D0UbFhROjtNBqMa7nCNL6kSROUFwpWYeESz4ZzBGsPuBtb4ZhBo1hmFcVyZtk669monUq96NZFG0qT9dyst3DZNTLH+s93dxecTGlcGFZkFAIvNek6cR7XS2rhKT65kvphDDd7i0E=; 20:EKafgx4IwlIrcjKb95S3iGAj51lYOfkP4TdCaOvMIhIAU2W0Qdu19539P7R7rJr8iG+p623Q1ScJWwQ8MtfjAW3S2JZ+AiM2F5L9c705qIAgCMfBZUeZxc2vBXFRL4aLu5qK61E4LYlGTYWRzkiQVAG5clTDUbz9CL4Dz6nvqDM= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2016 17:47:45.9829 (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: CO2PR03MB2374 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Thor Thayer Add support for the Altera Arria10 Development Kit System Resource chip which is implemented using a MAX5 as a external gpio extender with the regmap framework over a SPI bus. Signed-off-by: Thor Thayer --- v2 Remove hwmon from description. Change Altera to Intel in copyright header. Remove Copyright and Author from attribution Use devm_mfd_add_devices() and remove .remove() Fix Kconfig spacing. --- drivers/mfd/Kconfig | 11 +++ drivers/mfd/Makefile | 2 + drivers/mfd/altera-a10sr.c | 169 ++++++++++++++++++++++++++++++++++++++ include/linux/mfd/altera-a10sr.h | 85 +++++++++++++++++++ 4 files changed, 267 insertions(+) create mode 100644 drivers/mfd/altera-a10sr.c create mode 100644 include/linux/mfd/altera-a10sr.h diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index 1bcf601..00ec129 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig @@ -18,6 +18,17 @@ config MFD_CS5535 This is the core driver for CS5535/CS5536 MFD functions. This is necessary for using the board's GPIO and MFGPT functionality. +config MFD_ALTERA_A10SR + bool "Altera Arria10 DevKit System Resource chip" + depends on ARCH_SOCFPGA && SPI_MASTER=y && OF + select REGMAP_SPI + select MFD_CORE + help + Support for the Altera Arria10 DevKit MAX5 System Resource chip + using the SPI interface. This driver provides common support for + accessing the external gpio extender (LEDs & buttons) and + power supply alarms (hwmon). + config MFD_ACT8945A tristate "Active-semi ACT8945A" select MFD_CORE diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index 42a66e1..2ba3ba3 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile @@ -205,3 +205,5 @@ intel-soc-pmic-objs := intel_soc_pmic_core.o intel_soc_pmic_crc.o intel-soc-pmic-$(CONFIG_INTEL_PMC_IPC) += intel_soc_pmic_bxtwc.o obj-$(CONFIG_INTEL_SOC_PMIC) += intel-soc-pmic.o obj-$(CONFIG_MFD_MT6397) += mt6397-core.o + +obj-$(CONFIG_MFD_ALTERA_A10SR) += altera-a10sr.o diff --git a/drivers/mfd/altera-a10sr.c b/drivers/mfd/altera-a10sr.c new file mode 100644 index 0000000..c05aa4f --- /dev/null +++ b/drivers/mfd/altera-a10sr.c @@ -0,0 +1,169 @@ +/* + * 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 . + * + * SPI access for Altera Arria10 MAX5 System Resource Chip + * + * Adapted from DA9052 + */ + +#include +#include +#include +#include +#include + +static const struct mfd_cell altr_a10sr_subdev_info[] = { + { + .name = "altr_a10sr_gpio", + .of_compatible = "altr,a10sr-gpio", + }, +}; + +static bool altr_a10sr_reg_readable(struct device *dev, unsigned int reg) +{ + switch (reg) { + case ALTR_A10SR_VERSION_READ: + case ALTR_A10SR_LED_REG: + case ALTR_A10SR_PBDSW_REG: + case ALTR_A10SR_PBDSW_IRQ_REG: + case ALTR_A10SR_PWR_GOOD1_REG: + case ALTR_A10SR_PWR_GOOD2_REG: + case ALTR_A10SR_PWR_GOOD3_REG: + case ALTR_A10SR_FMCAB_REG: + case ALTR_A10SR_HPS_RST_REG: + case ALTR_A10SR_USB_QSPI_REG: + case ALTR_A10SR_SFPA_REG: + case ALTR_A10SR_SFPB_REG: + case ALTR_A10SR_I2C_M_REG: + case ALTR_A10SR_WARM_RST_REG: + case ALTR_A10SR_WR_KEY_REG: + case ALTR_A10SR_PMBUS_REG: + return true; + default: + return false; + } +} + +static bool altr_a10sr_reg_writeable(struct device *dev, unsigned int reg) +{ + switch (reg) { + case ALTR_A10SR_LED_REG: + case ALTR_A10SR_PBDSW_IRQ_REG: + case ALTR_A10SR_FMCAB_REG: + case ALTR_A10SR_HPS_RST_REG: + case ALTR_A10SR_USB_QSPI_REG: + case ALTR_A10SR_SFPA_REG: + case ALTR_A10SR_SFPB_REG: + case ALTR_A10SR_WARM_RST_REG: + case ALTR_A10SR_WR_KEY_REG: + case ALTR_A10SR_PMBUS_REG: + return true; + default: + return false; + } +} + +static bool altr_a10sr_reg_volatile(struct device *dev, unsigned int reg) +{ + switch (reg) { + case ALTR_A10SR_PBDSW_REG: + case ALTR_A10SR_PBDSW_IRQ_REG: + case ALTR_A10SR_PWR_GOOD1_REG: + case ALTR_A10SR_PWR_GOOD2_REG: + case ALTR_A10SR_PWR_GOOD3_REG: + case ALTR_A10SR_HPS_RST_REG: + case ALTR_A10SR_I2C_M_REG: + case ALTR_A10SR_WARM_RST_REG: + case ALTR_A10SR_WR_KEY_REG: + case ALTR_A10SR_PMBUS_REG: + return true; + default: + return false; + } +} + +const struct regmap_config altr_a10sr_regmap_config = { + .reg_bits = 8, + .val_bits = 8, + + .cache_type = REGCACHE_NONE, + + .use_single_rw = true, + .read_flag_mask = 1, + .write_flag_mask = 0, + + .max_register = ALTR_A10SR_WR_KEY_REG, + .readable_reg = altr_a10sr_reg_readable, + .writeable_reg = altr_a10sr_reg_writeable, + .volatile_reg = altr_a10sr_reg_volatile, + +}; + +static int altr_a10sr_spi_probe(struct spi_device *spi) +{ + int ret; + struct altr_a10sr *a10sr; + + a10sr = devm_kzalloc(&spi->dev, sizeof(*a10sr), + GFP_KERNEL); + if (!a10sr) + return -ENOMEM; + + spi->mode = SPI_MODE_3; + spi->bits_per_word = 8; + spi_setup(spi); + + a10sr->dev = &spi->dev; + + spi_set_drvdata(spi, a10sr); + + a10sr->regmap = devm_regmap_init_spi(spi, &altr_a10sr_regmap_config); + if (IS_ERR(a10sr->regmap)) { + ret = PTR_ERR(a10sr->regmap); + dev_err(&spi->dev, "Failed to allocate register map: %d\n", + ret); + return ret; + } + + ret = devm_mfd_add_devices(a10sr->dev, PLATFORM_DEVID_AUTO, + altr_a10sr_subdev_info, + ARRAY_SIZE(altr_a10sr_subdev_info), + NULL, 0, NULL); + if (ret) + dev_err(a10sr->dev, "Failed to register sub-devices: %d\n", + ret); + + return ret; +} + +static const struct of_device_id altr_a10sr_spi_of_match[] = { + { .compatible = "altr,a10sr" }, + { }, +}; +MODULE_DEVICE_TABLE(of, altr_a10sr_spi_of_match); + +static struct spi_driver altr_a10sr_spi_driver = { + .probe = altr_a10sr_spi_probe, + .driver = { + .name = "altr_a10sr", + .of_match_table = of_match_ptr(altr_a10sr_spi_of_match), + }, +}; + +module_spi_driver(altr_a10sr_spi_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Thor Thayer "); +MODULE_DESCRIPTION("Altera Arria10 DevKit System Resource MFD Driver"); diff --git a/include/linux/mfd/altera-a10sr.h b/include/linux/mfd/altera-a10sr.h new file mode 100644 index 0000000..45a5e6e --- /dev/null +++ b/include/linux/mfd/altera-a10sr.h @@ -0,0 +1,85 @@ +/* + * 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 . + * + * Declarations for Altera Arria10 MAX5 System Resource Chip + * + * Adapted from DA9052 + */ + +#ifndef __MFD_ALTERA_A10SR_H +#define __MFD_ALTERA_A10SR_H + +#include +#include +#include +#include +#include + +/* Write registers are always on even addresses */ +#define WRITE_REG_MASK 0xFE +/* Odd registers are always on odd addresses */ +#define READ_REG_MASK 0x01 + +#define ALTR_A10SR_BITS_PER_REGISTER 8 +/* + * To find the correct register, we divide the input GPIO by + * the number of GPIO in each register. We then need to multiply + * by 2 because the reads are at odd addresses. + */ +#define ALTR_A10SR_REG_OFFSET(X) (((X) / ALTR_A10SR_BITS_PER_REGISTER) << 1) +#define ALTR_A10SR_REG_BIT(X) ((X) % ALTR_A10SR_BITS_PER_REGISTER) +#define ALTR_A10SR_REG_BIT_CHG(X, Y) ((X) << ALTR_A10SR_REG_BIT(Y)) +#define ALTR_A10SR_REG_BIT_MASK(X) (1 << ALTR_A10SR_REG_BIT(X)) + +/* Arria10 System Controller Register Defines */ +#define ALTR_A10SR_NOP 0x00 /* No Change */ +#define ALTR_A10SR_VERSION_READ 0x00 /* MAX5 Version Read */ + +#define ALTR_A10SR_LED_REG 0x02 /* LED - Upper 4 bits */ +/* LED register Bit Definitions */ +#define ALTR_A10SR_LED_VALID_SHIFT 4 /* LED - Upper 4 bits valid */ +#define ALTR_A10SR_OUT_VALID_RANGE_LO ALTR_A10SR_LED_VALID_SHIFT +#define ALTR_A10SR_OUT_VALID_RANGE_HI 7 + +#define ALTR_A10SR_PBDSW_REG 0x04 /* PB & DIP SW - Input only */ +#define ALTR_A10SR_PBDSW_IRQ_REG 0x06 /* PB & DIP SW Flag Clear */ +/* Pushbutton & DIP Switch Bit Definitions */ +#define ALTR_A10SR_IN_VALID_RANGE_LO 8 +#define ALTR_A10SR_IN_VALID_RANGE_HI 15 + +#define ALTR_A10SR_PWR_GOOD1_REG 0x08 /* Power Good1 Read */ +#define ALTR_A10SR_PWR_GOOD2_REG 0x0A /* Power Good2 Read */ +#define ALTR_A10SR_PWR_GOOD3_REG 0x0C /* Power Good3 Read */ +#define ALTR_A10SR_FMCAB_REG 0x0E /* FMCA/B & PCIe Pwr Enable */ +#define ALTR_A10SR_HPS_RST_REG 0x10 /* HPS Reset */ +#define ALTR_A10SR_USB_QSPI_REG 0x12 /* USB, BQSPI, FILE Reset */ +#define ALTR_A10SR_SFPA_REG 0x14 /* SFPA Control Reg */ +#define ALTR_A10SR_SFPB_REG 0x16 /* SFPB Control Reg */ +#define ALTR_A10SR_I2C_M_REG 0x18 /* I2C Master Select */ +#define ALTR_A10SR_WARM_RST_REG 0x1A /* HPS Warm Reset */ +#define ALTR_A10SR_WR_KEY_REG 0x1C /* HPS Warm Reset Key */ +#define ALTR_A10SR_PMBUS_REG 0x1E /* HPS PM Bus */ + +/** + * struct altr_a10sr - Altera Max5 MFD device private data structure + * @dev: : this device + * @regmap: the regmap assigned to the parent device. + */ +struct altr_a10sr { + struct device *dev; + struct regmap *regmap; +}; + +#endif /* __MFD_ALTERA_A10SR_H */