Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752753AbdDKRVU (ORCPT ); Tue, 11 Apr 2017 13:21:20 -0400 Received: from mail-by2nam01on0051.outbound.protection.outlook.com ([104.47.34.51]:36944 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751824AbdDKRVR (ORCPT ); Tue, 11 Apr 2017 13:21:17 -0400 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 v6 0/6] genirq/gpio: Add driver for ThunderX and OCTEON-TX SoCs Date: Tue, 11 Apr 2017 10:21:03 -0700 Message-Id: <1491931269-15650-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: SN2PR07CA009.namprd07.prod.outlook.com (10.255.174.26) To DM5PR07MB3498.namprd07.prod.outlook.com (10.164.153.29) X-MS-Office365-Filtering-Correlation-Id: cc1bc4e1-1f66-4321-6783-08d480ff28c6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:DM5PR07MB3498; X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3498;3:d239m1hC/EWyKpwsasw+rIFrix6FT0h7Nsu+WE5WDhGQ6koPXP6VkNcfckuYJjy4okTueGkaCijXVmHkys7pdQN47KR6LS/e+a4LFNP+WLN93ZkTE68Wm2yc1mfdX21P5F62cT2pwPrHmCjxid+Fca0AR1R+m6fJIfrcPWzBEMIHdA2M46viKNthMihNlwMHFzSedU4V7YU7Ra8Nz8+XBoa1XNbgNSUZsGu8Y6dfjkTwu29Yft7SsP4k1C6okXYZOwR770ONjKOxV4TA6InAxT8ixszNYU+A3IHM/S0jDrSO2skUkdL9ahB5tt7h5pWsd9M9Pyo21UeRqXQXiR67bA==;25:Re4mWuKy0YpNXGX/LoNd4ImcEk+v+wDDDhfIcqxwebaq4hbvUzW/MAmjoPf0BHlQXFwteJSDCol8eSQbzVMRRgbQqc6aqmXDRaygeBc8tpDj0vVKuoPM3iScmRq56rjaxymZNlUMY4+ADSH410+uPvRjtfLysqdadZGMbxgiENGvXfFgm58sRM+Py2b9LcC/jeon5HOOH4OsIX4mSY81Dd3UUyBXws0TP3xdDxlXeR7JVxI34A2vOr37xoPAPbdsj8z7nvr0zStVHzXZ48liYE61qBQPwwEJD5aWThFtE22h9BBOxoQ6YRS3VlL5Hv4qObhavagqf4MlxZBzQaOAAz2lX7OCDXPBVVYfFjvqTLuCVeRSLjYUwTSki3SUfYrvlXnfQG07aApuwoe7DPd7qPq/RFPhPkzjHapvGBlWyYcGjkhfZ2N1bHmy9uxGDxf3CmKgl5xGcoOyjGMDNrJS8A== X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3498;31:BGOMQC+V+qMvQk6zr5UAjEn8CXvDVaQgOJ9MKfOVBIS7LaBKV3VMESBeJ4ZHojI002D++XigRytw8MW1tD5/vixyerGpKQFIcHUOePdl3I1Vf2cPfqN9FoBBETAqTwgreP0famLO3YQdrt/Hm8Kq+EvYEW8NWYUILQH7I+UXDzbyT2kVHs1FQWRYMiu7CBwAVbtVrsbEeltya6Cx4BItHfOI86Kxiqlk8ckHxzoARxNhtvG4zu4xQaGV4LNpKtuF;20:KsKcJbUVeobeCO0Z9iZdX53ID6CbXLcJJ9EIp61IbiFdAOFSzNzBA3hE7HR0ytmQpezvQMAO+qvYE+WxJPEQL/0UXp78xemjRDjQuVaNg5VE1mdfu9JZfC+LFHo485fbDLclm0J2JAZ/KcOVDpYld09BUic6E6Juu+FJgFZI4YyCCDCKLJw7AB8Mtr1cHwrI7G8T3kx19L6f8UhpxrapS8eAemEYme3wlQRQX1aDPHWB2oNqe91MiAeDsDdW8HoEmnhYq/igNvborlcFA2iP3rK4o/OYGZlwJWCHbKgynIluGOSApEFH9dA+1KXCRbGS+hg2ch6kXG5IB51ilmXxYwSIocrnoFzzOSca9FkjtZdTFW6+CRKIfEsTaG+P8HXjXLxfAt+bQLnuw3acgbdt/U3c465tfr3Rd0yAOxLpwwQz4LysSBrrVR6HCeLOCkSKA7JG+Q5XvdiqaLr8WbyQHkJAhDwGjG0Hc+QiMFR4g5AOBadFYjsuMgMH2h6l07ZU X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123555025)(20161123564025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(6072148);SRVR:DM5PR07MB3498;BCL:0;PCL:0;RULEID:;SRVR:DM5PR07MB3498; X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3498;4:7OmU+XhOfLhcHTSRyzhy4aDvnJFK1xfEWjSQBYlH/QSi/oYwnGvmIxh5GMgkZ/4c5SGCZWo1q+FRuM63+KN908A06lj1FdghIhf5vHQhFJ9MAj9SgH5ur3cGCtcU7tDcOy9R45FPcSI66Z8DqehSSvxGIzTgXllWv9iyyXo6CXoO3KmFDGrm4+LY3NoshtxIm86htqWc40fMbAQD8ZiTd+qZSHd60z65QpgG0vZTKSlPCacWBhjk6//prcHx1BZ4kfE+coisdbDyw7USiQbKela3Is3FdT7LwOJnaRJvnUq3bEiVCLCDHBmYGe+ALR9tivt0Tl5QXIJBULP997MYvLiczHP0KQdT7w4wZ94TUqDp78BgIdfKWyTIjyXcZexEiQs1F2Yrzm7jvyAObYT9d5YOyTGbiIG/qEs2T8cGAfiBTfi+Ig0ZL2UBI4x4xjDR8VrnTXq2euEbcmrqcgTwgScmmnrX/kq0rjdBOyP9QNU5hw4guRWcCRJr19KjOeuHvoa8EIUrsVsFEm89kx3k9MHf3UxG5DSq2Jym4tUiADkD1dgHBq2SANcD0ciVqOLKA5DB3w2qF+EPz2qKeJWvhS4uC+7HERtF3XJpXbYNeleWvy2Gai0F26svjgD73wGgxeusph5kb9S5s4DTmmX70ieC2W/Dycdu2eHouPsLZJ7pQIDUtkBjZ6+vI43cwzVYH7CNF9S1wbnUepNNbwiuCw== X-Forefront-PRVS: 0274272F87 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6069001)(39450400003)(39400400002)(39850400002)(39840400002)(39410400002)(47776003)(36756003)(5660300001)(66066001)(7736002)(305945005)(5003940100001)(42186005)(53416004)(76506005)(4720700003)(189998001)(6666003)(53936002)(6116002)(25786009)(50986999)(50466002)(3846002)(48376002)(6486002)(6512007)(8676002)(81166006)(50226002)(6506006)(33646002)(107886003)(4326008)(86362001)(2906002)(38730400002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR07MB3498;H:localhost.caveonetworks.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM5PR07MB3498;23:uS72hwQ+tPgcdAk6TvchbEftZb6k2NDLiBak9xIWN?= =?us-ascii?Q?GdGTlE31GXltY4stx3ryCb1a95qNwmobhVgsNIi4tRBD76RgJ6MIqEzMxuZC?= =?us-ascii?Q?gxXxt9jF5sFwkCOHWrK0UTQNsi3b5JuwqU3xhwMlGodV9plRqJ71JNUhkcZq?= =?us-ascii?Q?O/jDtPR89+qLBI5qWxIqVjGfMmakBkhfJoZnb8guj/5c+e5Ny+CiQaondeOF?= =?us-ascii?Q?DDcBMDttA+L/o5HJ8xnmuANsFv2PsXXdX5i7rIGUmtQgE9D/RPFmD8yTAoeD?= =?us-ascii?Q?A2CHVPTSB75TW+y1HBUgSryGiumPNgjRHGcdu/p9IBKoRkrwWOFwmAGI94Hs?= =?us-ascii?Q?yF/zF52S0dYqPx1Sa+tgHO4NXKNwFVIDspgML52FpmJIG6R1ht5lQu9b6ITe?= =?us-ascii?Q?J1DEfnkcBp3Uy7noDgqUijuDqbc0vZabt5GCo9MrKzPhwmzvCb7Dtrqy5UWY?= =?us-ascii?Q?HV9jBOxYR0xbkKXk1vMUsBKgDrJz+4F3nSPuJbt6iNdIE9fecDVm2qMBvSom?= =?us-ascii?Q?1yUm/Wl7+ANMdFusFYCl5REXidTKnsYuWrGVbpbukeGn2KUGLPC+kuzqO5JR?= =?us-ascii?Q?yKAECK+NN33feimu0yeGvM/QXrB9EJXIG82gWEWDEU+ZXZq54XFxWVLRdHf1?= =?us-ascii?Q?tuGTztQAUHBIPhvQ6pi3avCwVRt7P3xttSlEhBfuWDzFs69VfebdfeCx4xcx?= =?us-ascii?Q?l3uQbrQnPfSEiWqSNU6ujipv+YbbML+s7zhKYkNnxqWscOnoONHhs6sdDQEF?= =?us-ascii?Q?jWl8S78Q9cv1vEVn5TQF4yJIY/tYGXgGOOYRStHfVBblpQLVXEWg1i8be+Yo?= =?us-ascii?Q?0bnsB0yXe7kE+Tl/Hf5lLRPsSDteCXxrQpw+rJ/vpRzp85GMQ2nnL1leoH/I?= =?us-ascii?Q?iv9eURZF2ewpT3rVwF81oL8GxuRPohCPrp5wArm6DB0J+Aj4JsIjaIO7mcHx?= =?us-ascii?Q?kJPKLD9OeO9pJ2sN2kbKuemRblQmBVBS0rjJZGDBHKq5ojUvGPmFK/3BUAwW?= =?us-ascii?Q?WgqWNQSd1wbETzQHTQiUcab2kpCBZz0UOsbAD/96dwkqA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3498;6:DqD5YZ6TcT+B2eiu+0AJ8LdAaW6NKJ7fqfO8HQ082kk+5/VBWdskTWPHcgv81WyQ2TiD5ZUzYI5nFbUJoeQmD9snC0+qzca/ORYfhQOCzc2lvrvxiLDv7NkQdtdv28hTTIdtbpFn5rsxrnksfwC/cb5FalpvOsTwa1kU1seWTF43XJROFvrIlOkn3DUeGLfcN2MK1U7XR4d1z1AJKm7B/6d0oOENS/SHsCIzZFUNqHsl6+0JZIOHTI95fAZQt6XervAJHeCVQIy4AbZUdJZpbxINM7e5j/lhIrFMKfWnI+MPla9R5NRYZORAVaiDgiEfkMnyEy8m5mkR4ALm3tR/QMsRj02tL13ae7cSftX1O6vCWbG0B/HoaZqOOGxep+GigEew35fndQ+52cObzk3/LHZgaLQU/ZBv4vycyvX+FX0kWQA6LlD/JMJcfxYVlsgtWjBVwBk5r4kUOjuNvfBtzA==;5:oa4OYUB44RKPeo1m7YsJ1AOCwx5FWKzHqJnzEy/ouycXut8NK5T1wQxgjJDs3OM2pVBmcNy7Ssu3ABprFdglSvChbxZoXs1bIk8HRlLSBwuF3FgfEkegK/Dtu7stBBdCSzFOcr9ft/iNMUu/ayeAwA==;24:q6PTvxu1moYuLWqMCssIDMQEhIyBAVhMVXwLF6f4J/WjxCPgLiwD55gxRG3L2Qm6aXrPrxKXXeQBzJSgDdGUF0dhf3kwACCrmWz7dcVuh8I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR07MB3498;7:PAQf0PlJ9gnaREMc9WAiF+JPiIK/+5rzAJQfA09eS2JmtnJurbDUw3RjqJUOTDdGa9WzxgN7Hod7nYKatdQZ30NMrgYOEOclXW5l9o7nEalijQ1tk/a+q3c3xr7mVsHmxWUwRUt8lbjQ9Wn9wxXTOFWEoSp81nxFqxt1Q+UdXcN4GUFtLQjz3OmI+8ovQ6qeXPnvEnv6FTGXBvVoypExnmhMpokqkrhwsJWt4uKlwL9YfVkPJTnjW8/nMKwQ45ZXE+oGpgW4LXXqsJdxWHNW1elPO2VwnmxdzNp9BYYa2zdDLa1Y+CzG3zKCDwNASN1i3k2VbaE6Uipjtpr9D90BgQ== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2017 17:21:14.7234 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3498 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2352 Lines: 69 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 v5: - Added .irq_{request,release}_resources() functions to irq_chip. - Quit calling irq_set_irq_type() in the irq_map() function. - Added more error condition checking to irq_domain_{push,pop}_irq() 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 | 639 +++++++++++++++++++++ include/linux/irq.h | 2 + include/linux/irqdomain.h | 3 + kernel/irq/chip.c | 105 ++++ kernel/irq/irqdomain.c | 178 ++++++ 9 files changed, 968 insertions(+) create mode 100644 Documentation/devicetree/bindings/gpio/gpio-thunderx.txt create mode 100644 drivers/gpio/gpio-thunderx.c -- 1.8.3.1