{"id":2228954,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2228954/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20260427143437.3059210-1-arnd@kernel.org/","project":{"id":42,"url":"http://patchwork.ozlabs.org/api/1.1/projects/42/?format=json","name":"Linux GPIO development","link_name":"linux-gpio","list_id":"linux-gpio.vger.kernel.org","list_email":"linux-gpio@vger.kernel.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260427143437.3059210-1-arnd@kernel.org>","date":"2026-04-27T14:34:27","name":"mfd: wm8994: remove dead legacy-gpio code","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"18a573de93246e7b1a126c0863df656e34f2eb50","submitter":{"id":80402,"url":"http://patchwork.ozlabs.org/api/1.1/people/80402/?format=json","name":"Arnd Bergmann","email":"arnd@kernel.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20260427143437.3059210-1-arnd@kernel.org/mbox/","series":[{"id":501663,"url":"http://patchwork.ozlabs.org/api/1.1/series/501663/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/list/?series=501663","date":"2026-04-27T14:34:27","name":"mfd: wm8994: remove dead legacy-gpio code","version":1,"mbox":"http://patchwork.ozlabs.org/series/501663/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2228954/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2228954/checks/","tags":{},"headers":{"Return-Path":"\n <linux-gpio+bounces-35596-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-gpio@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=hB/29f12;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-gpio+bounces-35596-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"hB/29f12\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g45mh4d3Qz1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 28 Apr 2026 00:39:16 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id A8C033064A9E\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 27 Apr 2026 14:34:44 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 955E92EBBB9;\n\tMon, 27 Apr 2026 14:34:42 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 5836B25A2A2;\n\tMon, 27 Apr 2026 14:34:42 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id CF4AFC19425;\n\tMon, 27 Apr 2026 14:34:39 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777300482; cv=none;\n b=Xrh39+l2OY33SMThtkm2mLAkVXfxh5d7qKrbqTR2oHyv8PFMZ5O8ggaARzdl42oEfmU98SywSf6mpOqRqCRkFofB5lX6icqtv34hzn7i/MYNPdiNi1OFqFet/UHNEGNNjzlvdJIWkTeqvN2xbMtXnGeK04fIhdiNLppsFYB6dew=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777300482; c=relaxed/simple;\n\tbh=mTUH+5o1bCZlGv0N2SmW4VVGqADrGr5LqXlgXCKhQnw=;\n\th=From:To:Cc:Subject:Date:Message-Id:MIME-Version;\n b=HILAEF80G8+ZjS3145dHdWMFUBpuOUpr0xQFXFdVSd4ljlZZcrje7p7zIpt9s7O4DGTAxI82Ay60+JHvE61MF2M1SWQX7GRZzYPTgTCGM22ZI/mLsryRhEFbmQOA5VHkw0jLF3I2D+KXwnuu/G/t3hRMuA8G4pB2UfvVMSAmtdg=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=hB/29f12; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1777300482;\n\tbh=mTUH+5o1bCZlGv0N2SmW4VVGqADrGr5LqXlgXCKhQnw=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=hB/29f12hACMom2d+lmOodTokY/eVGgg90TOy0kA7jV3TlFc+D6t07nW2cCpEbNFR\n\t CLzsmwo3J8tcDFIoTX3EubxEyyYEQWhq3QKyyFI+6ml0w2pinNUuaV8Crs48h/Znq+\n\t Qor38J/7YFbEuzUN85I1CKsN46pvgQbu+iHvQMYM20FoBiTd/4iirAgmovmcedx4LD\n\t qMmCqHPzZTysrQbyA5qq2c/DqKqhHMvGry/skI5OQecxjIzwk+YwypqLd7p5r5VQkq\n\t ZZhllAv2RJvhn8wBS44yQJIIS1kLaPAlFMZALAW9t/3qisUMHkAUWqrLKHYo+DOPv3\n\t uzNKmvC7Whe2g==","From":"Arnd Bergmann <arnd@kernel.org>","To":"Lee Jones <lee@kernel.org>,\n\tLinus Walleij <linusw@kernel.org>,\n\tBartosz Golaszewski <brgl@kernel.org>","Cc":"Arnd Bergmann <arnd@arndb.de>,\n\tBartosz Golaszewski <bartosz.golaszewski@linaro.org>,\n\tThomas Gleixner <tglx@kernel.org>,\n\t\"Jiri Slaby (SUSE)\" <jirislaby@kernel.org>,\n\tpatches@opensource.cirrus.com,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-gpio@vger.kernel.org","Subject":"[PATCH] mfd: wm8994: remove dead legacy-gpio code","Date":"Mon, 27 Apr 2026 16:34:27 +0200","Message-Id":"<20260427143437.3059210-1-arnd@kernel.org>","X-Mailer":"git-send-email 2.39.5","Precedence":"bulk","X-Mailing-List":"linux-gpio@vger.kernel.org","List-Id":"<linux-gpio.vger.kernel.org>","List-Subscribe":"<mailto:linux-gpio+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-gpio+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit"},"content":"From: Arnd Bergmann <arnd@arndb.de>\n\nThe old-style gpio handling in wm8994 came from a commit 7c8844481a1c\n(\"mfd: wm8994: Emulate level triggered interrupts if required\") in\nlinux-3.11, but nothing in the kernel ever set the 'irq_gpio' member\nin the wm8994_pdata structure, so this was always dead code.\n\nRemove it now to reduce the dependency on the legacy gpio interfaces.\n\nReviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>\nSigned-off-by: Arnd Bergmann <arnd@arndb.de>\n---\n drivers/mfd/wm8994-irq.c         | 94 ++------------------------------\n include/linux/mfd/wm8994/pdata.h |  5 --\n 2 files changed, 4 insertions(+), 95 deletions(-)","diff":"diff --git a/drivers/mfd/wm8994-irq.c b/drivers/mfd/wm8994-irq.c\nindex 1475b1ac6983..a46cea948763 100644\n--- a/drivers/mfd/wm8994-irq.c\n+++ b/drivers/mfd/wm8994-irq.c\n@@ -135,53 +135,9 @@ static const struct regmap_irq_chip wm8994_irq_chip = {\n \t.runtime_pm = true,\n };\n \n-static void wm8994_edge_irq_enable(struct irq_data *data)\n-{\n-}\n-\n-static void wm8994_edge_irq_disable(struct irq_data *data)\n-{\n-}\n-\n-static struct irq_chip wm8994_edge_irq_chip = {\n-\t.name\t\t\t= \"wm8994_edge\",\n-\t.irq_disable\t\t= wm8994_edge_irq_disable,\n-\t.irq_enable\t\t= wm8994_edge_irq_enable,\n-};\n-\n-static irqreturn_t wm8994_edge_irq(int irq, void *data)\n-{\n-\tstruct wm8994 *wm8994 = data;\n-\n-\twhile (gpio_get_value_cansleep(wm8994->pdata.irq_gpio))\n-\t\thandle_nested_irq(irq_find_mapping(wm8994->edge_irq, 0));\n-\n-\treturn IRQ_HANDLED;\n-}\n-\n-static int wm8994_edge_irq_map(struct irq_domain *h, unsigned int virq,\n-\t\t\t       irq_hw_number_t hw)\n-{\n-\tstruct wm8994 *wm8994 = h->host_data;\n-\n-\tirq_set_chip_data(virq, wm8994);\n-\tirq_set_chip_and_handler(virq, &wm8994_edge_irq_chip, handle_edge_irq);\n-\tirq_set_nested_thread(virq, 1);\n-\tirq_set_noprobe(virq);\n-\n-\treturn 0;\n-}\n-\n-static const struct irq_domain_ops wm8994_edge_irq_ops = {\n-\t.map\t= wm8994_edge_irq_map,\n-\t.xlate\t= irq_domain_xlate_twocell,\n-};\n-\n int wm8994_irq_init(struct wm8994 *wm8994)\n {\n \tint ret;\n-\tunsigned long irqflags;\n-\tstruct wm8994_pdata *pdata = &wm8994->pdata;\n \n \tif (!wm8994->irq) {\n \t\tdev_warn(wm8994->dev,\n@@ -190,53 +146,11 @@ int wm8994_irq_init(struct wm8994 *wm8994)\n \t\treturn 0;\n \t}\n \n-\t/* select user or default irq flags */\n-\tirqflags = IRQF_TRIGGER_HIGH | IRQF_ONESHOT;\n-\tif (pdata->irq_flags)\n-\t\tirqflags = pdata->irq_flags;\n-\n \t/* use a GPIO for edge triggered controllers */\n-\tif (irqflags & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING)) {\n-\t\tif (gpio_to_irq(pdata->irq_gpio) != wm8994->irq) {\n-\t\t\tdev_warn(wm8994->dev, \"IRQ %d is not GPIO %d (%d)\\n\",\n-\t\t\t\t wm8994->irq, pdata->irq_gpio,\n-\t\t\t\t gpio_to_irq(pdata->irq_gpio));\n-\t\t\twm8994->irq = gpio_to_irq(pdata->irq_gpio);\n-\t\t}\n-\n-\t\tret = devm_gpio_request_one(wm8994->dev, pdata->irq_gpio,\n-\t\t\t\t\t    GPIOF_IN, \"WM8994 IRQ\");\n-\n-\t\tif (ret != 0) {\n-\t\t\tdev_err(wm8994->dev, \"Failed to get IRQ GPIO: %d\\n\",\n-\t\t\t\tret);\n-\t\t\treturn ret;\n-\t\t}\n-\n-\t\twm8994->edge_irq = irq_domain_create_linear(NULL, 1, &wm8994_edge_irq_ops, wm8994);\n-\n-\t\tret = regmap_add_irq_chip(wm8994->regmap,\n-\t\t\t\t\t  irq_create_mapping(wm8994->edge_irq,\n-\t\t\t\t\t\t\t     0),\n-\t\t\t\t\t  IRQF_ONESHOT,\n-\t\t\t\t\t  wm8994->irq_base, &wm8994_irq_chip,\n-\t\t\t\t\t  &wm8994->irq_data);\n-\t\tif (ret != 0) {\n-\t\t\tdev_err(wm8994->dev, \"Failed to get IRQ: %d\\n\",\n-\t\t\t\tret);\n-\t\t\treturn ret;\n-\t\t}\n-\n-\t\tret = request_threaded_irq(wm8994->irq,\n-\t\t\t\t\t   NULL, wm8994_edge_irq,\n-\t\t\t\t\t   irqflags,\n-\t\t\t\t\t   \"WM8994 edge\", wm8994);\n-\t} else {\n-\t\tret = regmap_add_irq_chip(wm8994->regmap, wm8994->irq,\n-\t\t\t\t\t  irqflags,\n-\t\t\t\t\t  wm8994->irq_base, &wm8994_irq_chip,\n-\t\t\t\t\t  &wm8994->irq_data);\n-\t}\n+\tret = regmap_add_irq_chip(wm8994->regmap, wm8994->irq,\n+\t\t\t\t  IRQF_TRIGGER_HIGH | IRQF_ONESHOT,\n+\t\t\t\t  wm8994->irq_base, &wm8994_irq_chip,\n+\t\t\t\t  &wm8994->irq_data);\n \n \tif (ret != 0) {\n \t\tdev_err(wm8994->dev, \"Failed to register IRQ chip: %d\\n\", ret);\ndiff --git a/include/linux/mfd/wm8994/pdata.h b/include/linux/mfd/wm8994/pdata.h\nindex 6e2962ef5b81..b95a56a338c3 100644\n--- a/include/linux/mfd/wm8994/pdata.h\n+++ b/include/linux/mfd/wm8994/pdata.h\n@@ -226,11 +226,6 @@ struct wm8994_pdata {\n \t * lines is mastered.\n \t */\n \tint max_channels_clocked[WM8994_NUM_AIF];\n-\n-\t/**\n-\t * GPIO for the IRQ pin if host only supports edge triggering\n-\t */\n-\tint irq_gpio;\n };\n \n #endif\n","prefixes":[]}