Show a cover letter.

GET /api/1.1/covers/2230079/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2230079,
    "url": "http://patchwork.ozlabs.org/api/1.1/covers/2230079/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/cover/20260429074356.118420-1-herve.codina@bootlin.com/",
    "project": {
        "id": 42,
        "url": "http://patchwork.ozlabs.org/api/1.1/projects/42/?format=api",
        "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": "<20260429074356.118420-1-herve.codina@bootlin.com>",
    "date": "2026-04-29T07:43:36",
    "name": "[v2,00/17] ASoC: Add support for GPIOs driven amplifiers",
    "submitter": {
        "id": 81983,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/81983/?format=api",
        "name": "Herve Codina",
        "email": "herve.codina@bootlin.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/cover/20260429074356.118420-1-herve.codina@bootlin.com/mbox/",
    "series": [
        {
            "id": 502009,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/502009/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=502009",
            "date": "2026-04-29T07:43:41",
            "name": "ASoC: Add support for GPIOs driven amplifiers",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/502009/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2230079/comments/",
    "headers": {
        "Return-Path": "\n <linux-gpio+bounces-35757-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=bootlin.com header.i=@bootlin.com header.a=rsa-sha256\n header.s=dkim header.b=iwTqf8v1;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-gpio+bounces-35757-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com\n header.b=\"iwTqf8v1\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=185.171.202.116",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=bootlin.com",
            "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=bootlin.com"
        ],
        "Received": [
            "from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\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 4g58V35LH4z1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 17:45:15 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 742903034AAF\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 07:44:12 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 331D133DEDD;\n\tWed, 29 Apr 2026 07:44:12 +0000 (UTC)",
            "from smtpout-04.galae.net (smtpout-04.galae.net [185.171.202.116])\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 3AF7F3A5E84;\n\tWed, 29 Apr 2026 07:44:10 +0000 (UTC)",
            "from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233])\n\tby smtpout-04.galae.net (Postfix) with ESMTPS id D55F6C5CD50;\n\tWed, 29 Apr 2026 07:44:52 +0000 (UTC)",
            "from mail.galae.net (mail.galae.net [212.83.136.155])\n\tby smtpout-01.galae.net (Postfix) with ESMTPS id CFD61601DF;\n\tWed, 29 Apr 2026 07:44:08 +0000 (UTC)",
            "from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon)\n with ESMTPSA id BAB8810728FEB;\n\tWed, 29 Apr 2026 09:44:02 +0200 (CEST)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777448652; cv=none;\n b=n2aT2H/S6xRgQJ/e5VYoiqaAAhCti4VQoFw3L74Pfc7hMJ/9kbykCUWuRKdUR00vHqMGQhlu2+Th1f0IH5iZI4+RIANbyLYN32gfUzFpOAOlGgE1xB7j+oCxTz38nRq+WfpKyDKg2rpL/sBK9mYGs8akG7UJ9js5o+a4yChsNRs=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777448652; c=relaxed/simple;\n\tbh=GOktKvSAf/iV9pHKsUggRFymyn8C8ayVKfxEK1bo6JI=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type;\n b=d41w3HL/FH6QTo2Szv/EjCChwZDKA63PhFUb7W8ULsoSwbFTIs48NP+ZmoHQXOQnlcM9V+IjgipO6NZrJWkG8xpU8qipiVnGYPtBvQfsbjP5wV6cOeB4F7HuoI24DCuQKD4neTfNOWshCVRwGHQhFZDj/EYTn9CKejHCLUFbK1I=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=bootlin.com;\n spf=pass smtp.mailfrom=bootlin.com;\n dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com\n header.b=iwTqf8v1; arc=none smtp.client-ip=185.171.202.116",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim;\n\tt=1777448647; h=from:subject:date:message-id:to:cc:mime-version:content-type:\n\t content-transfer-encoding; bh=V5sXarxVB6g9u15sE7cvcyNfPfBrdDKsaQ44NecsSyA=;\n\tb=iwTqf8v1jTWvZh6GoqcgrpVdhyiED3IPB8wDQQpm4YNobnDlYDFjcikkIPEeq5EpNbMZDv\n\t1ehMTdC4UzjOcQt5bIBrk357kb8Bg6FcfIpHm8oSZfXLbCgrKM7eXIA0k32Bv0V2yAKk91\n\tu4e4CT6y4MxS1OXCJmhkWecNgX4eLWmed079ucouYMnximKf5YkkntAPRAWoV9Xf2HBd26\n\tBaY6irJWEnbygc9FIIoVxNRRe+96c6DpnKFWMBwBgXy1SW8criEkp2llc3vr48EoDADXTL\n\tiZHxHXffuYZVIUsrvIcKRFerf9mm1X0m+hjDUjjBTRll+CU5Afl9SS1Y93aGUg==",
        "From": "Herve Codina <herve.codina@bootlin.com>",
        "To": "Herve Codina <herve.codina@bootlin.com>,\n\tBartosz Golaszewski <brgl@kernel.org>,\n\tLinus Walleij <linusw@kernel.org>,\n\tLiam Girdwood <lgirdwood@gmail.com>,\n\tMark Brown <broonie@kernel.org>,\n\tRob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>,\n\tSaravana Kannan <saravanak@kernel.org>,\n\tJaroslav Kysela <perex@perex.cz>,\n\tTakashi Iwai <tiwai@suse.com>",
        "Cc": "linux-sound@vger.kernel.org,\n\tlinux-gpio@vger.kernel.org,\n\tdevicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tChristophe Leroy <christophe.leroy@csgroup.eu>,\n\tThomas Petazzoni <thomas.petazzoni@bootlin.com>",
        "Subject": "[PATCH v2 00/17] ASoC: Add support for GPIOs driven amplifiers",
        "Date": "Wed, 29 Apr 2026 09:43:36 +0200",
        "Message-ID": "<20260429074356.118420-1-herve.codina@bootlin.com>",
        "X-Mailer": "git-send-email 2.53.0",
        "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-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-Last-TLS-Session-Version": "TLSv1.3"
    },
    "content": "On some embedded system boards, audio amplifiers are designed using\ndiscrete components such as op-amp, several resistors and switches to\neither adjust the gain (switching resistors) or fully switch the\naudio signal path (mute and/or bypass features).\n\nThose switches are usually driven by simple GPIOs.\n\nThis kind of amplifiers are not handled in ASoC and the fallback is to\nlet the user-space handle those GPIOs out of the ALSA world.\n\nIn order to have those kind of amplifiers fully integrated in the audio\nstack, this series introduces the audio-gpio-amp to handle them.\n\nThis new ASoC component allows to have the amplifiers seen as ASoC\nauxiliarty devices and so it allows to control them through audio mixer\ncontrols.\n\nCompared to previous iteration, this v2 series adds the gpio-ranges\ndevice-tree property and removes no more needed properties. Also it\nmerges the previously proposed driver in the existing simple-amplifier\ndriver.\n\nIn order to ease the review, I choose to split modifications related\nto the merge of the gpio-audio-amp part into the simple-amplfier driver\nin several commits.\n\nBest regards,\nHervé\n\nChanges v1 -> v2\n  v1: https://lore.kernel.org/all/20260330101610.57942-1-herve.codina@bootlin.com/\n\n  Rebase on top of v7.1-rc1.\n\n  Patch 1:\n  - Add 'Acked-by: Rob Herring'\n\n  Patch 2:\n  - Use gpio-audio-amp-* instead of audio-gpio-amp\n  - Introduce mono/stereo channel distinction with gpio-audio-amp-mono\n    and gpio-audio-amp-stereo compatible strings (needed if the\n    \"simple-amplifier\" compatible string is deprecated in the near\n    future).\n  - Reduce the maximum numbers of gpios used for gain setting to 16.\n  - Use amplifier-N instead of amplifierN in examples\n  - Introduce gpio-ranges property and remove the no more needed\n    gpio-points and gpio-range properties\n\n  Other patches (full rework):\n  - Merge the new audio-gpio-amp driver provided in v1 into the\n    existing simple-amplifier driver.\n  - Slit modification in several commits.\n  - Reduce the maximum number of gpios used for gain setting to 16.\n  - Fix a memory leak in case of error in simple_amp_multi_add_kcontrol()\n    (Reported by Shahiko).\n  - Handle the new gpio-ranges property and drop the support for the no\n    more needed properties (gpio-points and gpio-range).\n  - Update author and copyright.\n\nHerve Codina (17):\n  of: Introduce of_property_read_s32_index()\n  ASoC: dt-bindings: Add support for the GPIOs driven amplifier\n  ASoC: simple-amplifier: Remove DRV_NAME defined value\n  ASoC: simple-amplifier: Add missing headers\n  ASoC: simple-amplifier: Remove CONFIG_OF flag and of_match_ptr()\n  ASoC: simple-amplifier: Rename drv_event() function\n  ASoC: simple-amplifier: Use 'simple_amp' variable name instead of\n    'priv'\n  ASoC: simple-amplifier: Remove DAPM widgets and routes from the ASoC\n    component driver\n  ASoC: simple-amplifier: Introduce support for gpio-audio-amp\n  ASoC: simple-amplifier: gpio-audio-amp: Add support for extra power\n    supplies\n  ASoC: simple-amplifier: gpio-audio-amp: Add support for mute gpio\n  ASoC: simple-amplifier: gpio-audio-amp: Add support for bypass gpio\n  ASoC: simple-amplifier: gpio-audio-amp: Add support for basic gain\n  ASoC: simple-amplifier: gpio-audio-amp: Add support for gain-ranges\n  ASoC: simple-amplifier: gpio-audio-amp: Add support for gain-labels\n  ASoC: simple-amplifier: Update author and copyright\n  MAINTAINERS: Add the ASoC gpio audio amplifier entry\n\n .../bindings/sound/gpio-audio-amp.yaml        | 270 ++++++\n MAINTAINERS                                   |   7 +\n include/linux/of.h                            |   7 +\n sound/soc/codecs/simple-amplifier.c           | 907 +++++++++++++++++-\n 4 files changed, 1165 insertions(+), 26 deletions(-)\n create mode 100644 Documentation/devicetree/bindings/sound/gpio-audio-amp.yaml"
}