From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751932AbdCACCX (ORCPT ); Tue, 28 Feb 2017 21:02:23 -0500 Received: from mail-sn1nam02on0044.outbound.protection.outlook.com ([104.47.36.44]:35070 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751488AbdCACBJ (ORCPT ); Tue, 28 Feb 2017 21:01:09 -0500 Authentication-Results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=cavium.com; From: David Daney To: Linus Walleij , Alexandre Courbot , Rob Herring , Mark Rutland , Marc Zyngier , Thomas Gleixner , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org, David Daney Subject: [PATCH v5 0/6] genirq/gpio: Add driver for ThunderX and OCTEON-TX SoCs Date: Tue, 28 Feb 2017 17:48:46 -0800 Message-Id: <1488332932-2691-1-git-send-email-david.daney@cavium.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: SN1PR0701CA0071.namprd07.prod.outlook.com (10.163.126.39) To SN1PR07MB2432.namprd07.prod.outlook.com (10.169.127.144) X-MS-Office365-Filtering-Correlation-Id: 50570cc2-2b84-4a2e-4b55-08d4604521a0 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:SN1PR07MB2432; X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2432;3:a05ND/GhlcVhO+HKgQncUnSY+ZULCL6nsOJX0A4KmtBWsTTLOlAk7R8rzp4xLPdXQ2g24Ni2/1banWf9VEfL+WsmpSdqsVzhTK1xdbiVElXPiVTjoCYiRvMflXqW8Qc32USMb/qZKruaCYlC2/MOyEZhR+yjUMmA4DaBXm2tvbQsSAt6jRTeAwC3FPgfsZf1cT2pKfKcsULhx9fQSGaJNSvDd2zbMm8iGzQtwlVBZKwMlN0VzkXXPlktx1RlkWlgS+2XDrkqGLUsDwhc+pbU8w==;25:KdwALktep3WkH3g5f7VdsbKfY+mQOEq8bDoYyJeCoZCsXNP6MWylxDm05Lwp2HpQuiDdoRRWRDT3oIEi6jC06Y9co2SndjIoLmPPRSZKECZep7jEMu7jY+5iksyRlEULp0R2pMcyB9wp0ca2neClEB8WITnvummEpx1RbfHJIzLBSLwdfGzCCjr/u8cn6+H6PekJXLBHcO+pjkxNAj0+Wf44n1O8onrDbERqNX18z6p/Y3NgItdM4CF1n0IobJA+ZiR8KV/XWtDGTosAP/Zs2MKHkBbn+jjdguK2tj733Iny+pyUk4E1OTGBzegBnsIlqpduha2/TIofbq8ZqAdpcG+eXICaB8apMPQoBGlikBaFCP1RQS6LgkI0X8w/j87CF/o71qTLCFr41SmZcIoc4GZwXX0xfkA+yWyp+Zrxkastjko4xpEJIy1drMUGty4Q1HbtsccERKvV0gFMDTIpZg== X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2432;31:Pob5s/fufD+Bsy4VfdLOY2nrkWcKpxez0fm9EzzFc8MuxaEZM0gMYJWzw8v8EmMkDdK4sm7xwP9fOQJx2my1dHfeA33kBaDfg4c6UcRx7pAWiper3Xujtlw5EXXFx4ihjnCEMBMD42YccToRh5cv0Ocy/JNCdXOuCUspDACF9I/tnYBF5VxQ/JSAihp5sEl3nl5JwfXyFksLMbxJH/tmYfBI8d3I75Q8oRwkAAAAsms=;20:12AOuHp4lPuBxmngEm8CMWc7/0fmB0rxSEqysBVpi7EmkuAJM06Z1y25BX7gzdulnZIHbs8rx7VN19io0zbctucIYCo5jJkfaVu0jMbDvYemFWg7QxAiVInwtUhjQUSBAzEZ0WlRMqdfbnBo+y8EKbE+T+ZsUzUbQoQTcERA9mKDT01lMoDOl/R/LtE0gFCVfq0Zg56znkNECr2G00INppQFE4DSvOe9SoH0aqsTp5PkRw0u3aQ4QMghuTF/+x7actF8LZDZN2Y0g3BrUkRv/5l9juI/rpQ3VjO2RfBExupMulwkSSPa3A+A2zHck9RKDnirdIOSpQBl7RXalJUcz+vVvjfMBf+cysSMxYiEsjshve0aIgw3dU+6AnBqSNY7fa8+hcUIIbd8zP3wQyUU+J29bDt1UCsm5tnq2UYGDn6h4wZ6ymjIEHV5hUThDSaNnmfsapcs60BX+uEMPw+e30K4H6uFijEZ6rfFCQe20kElI6q7/7AliC8vOGreSkH+ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123558025)(20161123562025)(6072148);SRVR:SN1PR07MB2432;BCL:0;PCL:0;RULEID:;SRVR:SN1PR07MB2432; X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2432;4:3a4fd0sItnpoNgd302Iaft89kgdEFDXCwO9JPy2Q/PyUN0iKkdeGYYQ7GL8viz/+2qJVtNafvWEtfwodgDFkS5RsmLbUidM5krGVQZMULtZvPGU2y8gqPtwPvd+bB9jL9jIfBK7PGTKuf3EdqMwUN0g0UuFCYg8eVdR3qxiFCjWLmBPWg9232lb5OxVxcNInvHxIMtFKMNZ+qlRXrUrbU6J6KwEYX7m270KgRuL2Qzg/J+wIT3ek67IMUd/fYIIL2Xx2rapKV01eJ8xNZVYQImpKz7Gh5OY0p/vSuNZtBWzm1RikbGDOsUtGsQZ5Wv9Sav/gZSLo1DSeSJoZeMYhprMf6HzmNWrI/jCi/5rWRK1fJXmPXxSdux30/Cr3KoQzgo/L6YB1UqUj9C96k4CIFsJL3X8bSdO8neC4KJMRvw4IflVkzR7EhAk3PyEdFYJ3OYv8wdR/+B+Te+KQ0qS0lQ1PZVAC+M/2XXSLcoXbbikMcZ0shfD/LBmQXA3i2CtleyNl5bNG5ShEPl1XMcw552V4z1zJ138j2pZyR4rXyHR0qlJUZfIT9E888VE2ruKd8+1l6tKcwJp5Ud2oAlpTi+FN+16iIH2Qx5juO8v50A4= X-Forefront-PRVS: 0233768B38 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6029001)(6009001)(6069001)(7916002)(39450400003)(48376002)(53936002)(86362001)(6486002)(50466002)(25786008)(5003940100001)(6506006)(36756003)(81166006)(50226002)(4326008)(50986999)(8676002)(92566002)(7736002)(53416004)(5660300001)(6116002)(6512007)(76506005)(4720700003)(42186005)(33646002)(2906002)(66066001)(47776003)(189998001)(305945005)(107886003)(38730400002)(6666003);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR07MB2432;H:localhost.caveonetworks.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN1PR07MB2432;23:qDOL3jbgZoIf0HSfalu404pql1xsavDPL4QoHkl3D?= =?us-ascii?Q?8GbIcKp010kvVmC4CrWzp+Ac8Sg6D88Y8v4BJVjuM5IRUyTe6jUvKexsAR8F?= =?us-ascii?Q?265w4TQHiDL2conEzw4Qz4MoF5sHbysulA4f4mHwUlnG3NMNaT4EUycbkMJ0?= =?us-ascii?Q?pKtT5qqqzx06mZYB8bWk0OwNbWllK9/5k8RUhXlCwX9MD1geAos5+M4QPZrF?= =?us-ascii?Q?KLDzgzGRWG2LtrmzARkszwtMdfJ0J3RNGatYsHqyxHpzmnkT1PJPtkMeWwmN?= =?us-ascii?Q?FKikJoJDEvraxS1QBMPGzzmTMuh6hSycp38g3R/jDh27uYHpKTIDJdKTC8mV?= =?us-ascii?Q?G9222zH8MpvArWfZN1dSFlR33uetqN9nqxvY6aF1tUSEU5JFn9eoiTcQAhn1?= =?us-ascii?Q?ED9UZjacdtsMuSxwM8elViIIufEtPDzEwfj1GWemnFAr6m36BLEEBaQiCxN0?= =?us-ascii?Q?dusbt+mkZu0VEMgaPhW09N+/1oM9OTyA5XEylnu8BTBNV8JzNHDP/tryrj8z?= =?us-ascii?Q?RDARF3s7kiDUe+kJygB7QGKqq5XDWQOeykuMOmPVzcW+nzIx2b2PiCzkdVxb?= =?us-ascii?Q?Jx269cKbgO2ZrgQK6pD7gg2gfmZA5BxR3X/9kiDLdsTt92SQI5MVOGd2MVWD?= =?us-ascii?Q?qxBofallotcRcXVKKkuftsBYLKgiMKefii16WXKq1c6DFlh0jxKCLOtKvzDZ?= =?us-ascii?Q?pW+4N49pRSevjnNZGrc7B9bYl0QrOgYHziC3ao3wffVVt902eyskrdHm4g4d?= =?us-ascii?Q?1YyaDQyHv5E47nnhBZSdzkBmFY45SZxMV4JCAPb8qMxWN9Pn1VNfSEFIJy9c?= =?us-ascii?Q?/p/3y0Zgg1SkD3hAgkbCU5pvfGGDMq2BD5xBXTovuPX4jLSdDnrle2iYp73x?= =?us-ascii?Q?EWDbLaS8xA3hQb0pePpn3XPedDwGTbyKRHCVgayUEAeF6bbnIpEmdbEnM+tc?= =?us-ascii?Q?FLeuX0x31OdhX1M4dToMaut1+vuH/pI6nLzBOjMsA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2432;6:OL81qwCeUq4PRx27As6wkVbC0bI+OsRjUsdEhfIoRFl6HvjIDamjrPElF2J2fkZ0YlMwFKRpokb98I8GHLhSHZsKe7BgW1NtCUOrWx8jHm0xUaT6hafXiMHBUevDKvcN2g7lwzOIXQuZGEpIuNDY8/7fsPPl8PTkPPhPxO9wwbVTMelfukoRwjBlg1OMacdtKXIfZxLWt7T77t5sKvQI6Xnuq6hyJ59PVaDabw5Moj4JB8gZ0Blvogc9xwa/DcAMmJ4lUcjmlAF6pkR3sQp1ouLJGO7sTUIVT3ux0hlqc6R0UTXFPJLU4fn5DT8OT/Y9YWcnyML3tQhiMahtd41Knf601e8pNUzyXXXaWSOp8/M7dASI2wHhb/TKETiHoNP9il4MZ+q2crRtqPkQ1KudFg==;5:ibZ4CCpeXsdCcGM0ajXjqDjZ5ySZFJURSmQtOG+vJeX+i7PMne6QuzIOMxPOhKC06sAhorjV0jbXKSlJZ3gEdtfmDLCirxqE+4GLhFX2DgYiWO/NDW7fCtA3iAIn3s0OgXsVk9nglAwWGUj0vGjWgg==;24:RD77QnYxD+jsp13gwLp4wO48ApeFXRx7O2eRAZ+jhsoP55Nu894IlgoIicHpfJP3B9O/A+/QNX9QDUqW/Bzil6hTzXBz+qWIo0wPuKA5fPA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2432;7:8MPxrAVG9UHql0H5IIdl8pmJnImIEh/nl8KgnNYH1yU3w1GoPy/j5ACmJuNBgc97aUK8nRyf5jHBji1U6Bdx6VJtAyMKtFnghXPpsOvDarllhlpJAQ26x10WO/Z8JX8g1Q7/hpfH2jgzVkKauoJ2E73sptep0v5KafhaW+ERntP8WligB2eFc6LVDV/9t8+JGb2Ldoq4hSjI2sC7Y8ytwV3vkABmha7XhbJLuAiHClHTdMOi04WDaInPzx2RprTsaMevs3T2WryhtPUxvvX8lo1wXDG62eeugvJM65qKsQ/KHRV7HUt3rMdDXYUEgj79ORPQksYqD68tZaX0MCTx9g==;23:bFc1foFdNqydWm8xhW+ZoXg8vjRZFDRMy/5Pt9O5iKhPSHknOWOSXmRYhO0dwrU8nPnMDxRFc4oXYqjs2qEIe0vIM29VEzCQy5KfV2CB3ysoAMjUslifEXDqABrL7x9oaDQFmCGSyS3Na/eVBL+Waw== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2017 01:48:59.3776 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2432 X-OriginatorOrg: cavium.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The ThunderX/OCTEON-TX GPIO hardware looks like a PCIe device, with the interrupt signal from each GPIO line being routed to a dedicated MSI-X. This interrupt routing requires that we add some custom processing to the beginning of the MSI-X irqdomain hierarchy. Changes from v4: - Rebased to post-v4.10 to support .set_config() function. - Added .get_direction() support. - Added PIN_CONFIG_INPUT_DEBOUNCE support. - Removed some improper use of ENOSYS. Changes from v3: - Add some "depends on" to the driver Kconfig to avoid build errors in some architectures when doing COMPILE_TEST builds. Changes from v2: - in 4/6: Added Rob Harring's Acked-by - Added three patches to genirq/irqdomain to support interrupt code in the driver. - Rewrite irq code in driver to use irqdomain hierarchy. - Other naming and style changes as recommended by Linus Walleij. Changes from v1: - in 1/3: Addressed Rob Harring's comments. - in 2/3: Trivial cleanups found in internal review + add some comments. David Daney (6): genirq: Export more irq_chip_*_parent() functions. genirq: Add handle_fasteoi_{level,edge}_irq flow handlers. irqdomain: Add irq_domain_{push,pop}_irq() functions. dt-bindings: gpio: Add binding documentation for gpio-thunderx gpio: Add gpio driver support for ThunderX and OCTEON-TX MAINTAINERS: Add entry for THUNDERX GPIO Driver. .../devicetree/bindings/gpio/gpio-thunderx.txt | 27 + MAINTAINERS | 5 + drivers/gpio/Kconfig | 8 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-thunderx.c | 572 +++++++++++++++++++++ include/linux/irq.h | 2 + include/linux/irqdomain.h | 3 + kernel/irq/chip.c | 105 ++++ kernel/irq/irqdomain.c | 137 +++++ 9 files changed, 860 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpio/gpio-thunderx.txt create mode 100644 drivers/gpio/gpio-thunderx.c -- 1.8.3.1