Message ID | 20230623085830.749991-1-herve.codina@bootlin.com |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp5634966vqr; Fri, 23 Jun 2023 02:11:36 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4S3154Ob3Y8ncbFg5FYGfvMz3HjYShcZCjxz95ZmNDhQCduLy3cH/Hb3Ti8AD09L0q1kf6 X-Received: by 2002:a05:6a00:801:b0:668:6eed:7c1a with SMTP id m1-20020a056a00080100b006686eed7c1amr21103112pfk.7.1687511496509; Fri, 23 Jun 2023 02:11:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687511496; cv=none; d=google.com; s=arc-20160816; b=WM9EqsXjXodGccSNs5wQPWA1aslS4Lk0bEea9QxY/0WSz2QHxc3pFREm2Qi9Mheu8o 7EUgY8044TH4w23TofXpLmTJDDo9yZ/zc2Zsr7/3W6/BCLtUUwDKk8kqjqA2Lds7O8J9 ltqSFKRdzjpYCY3F6m8tnKHOhVdZpSt6Gq9LdnCgN0GpfFCTo1ya9Hu0cEfV9omvA157 pY9rh2NKsGJ5qmB33aMPu18TSOSEmsSiytu8UfqfcziHL28koLOUHubmFnM4tCsjDHzH DPiyCfsFpx1quPjtN8ejJHiPUcPq8BRpUFvlTLEVUEnKhpgF+zaqfOyor9cU16Lz8ZDn r2Fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=dRhnfUP864nFvXMjKJxcUvdp/GyOCJ/wA4XwLZHl0r8=; b=m6B8EORTSH6pmkzc/VBH3fUMPT/+4CqO7Y/oTQAGzIRW/upaSQF825IyAwoFqV2FBA oZwV9Kfy5kVBF6SxczsQefjCqjwjDlYF9TBIMRhb9qPxl2D/z0C8xVXUWJZmVobRMtBl fucen8bFVf2KS+M3qli2CdgpEyBEauF21tCRkHHJj0mleg2ZIN4K4sbyKNpcuQcKlMZQ NBZY0f4A9e/AjV3dOFFyY8+kUNb8nBxaNTowNzgRo08Gbi2+LYQbtaDEO6FQBMj7iUww TpaHWmmVjQ/fz/G+VFnbw/9h/Bd/bvlNpXIq5P2D+N7nSinrdVnfugCPCPZYSenr8aBA zHhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=JRfB9T7v; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q11-20020a056a00084b00b0066a645b07d1si2694171pfk.113.2023.06.23.02.11.23; Fri, 23 Jun 2023 02:11:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=JRfB9T7v; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230348AbjFWI6o (ORCPT <rfc822;maxin.john@gmail.com> + 99 others); Fri, 23 Jun 2023 04:58:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41874 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229999AbjFWI6m (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 23 Jun 2023 04:58:42 -0400 Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::224]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D2C7B10C1; Fri, 23 Jun 2023 01:58:39 -0700 (PDT) X-GND-Sasl: herve.codina@bootlin.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1687510718; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dRhnfUP864nFvXMjKJxcUvdp/GyOCJ/wA4XwLZHl0r8=; b=JRfB9T7vYqO9nn2taqAfOnyGS1sJL+v81xZ5gQsQfSRtQy9jqwAz9C20nn6oyHuLqoKiaX ZJ6zm0Kyg6FfUkdNH557CdcZjjCIGg0JN4r/T09tIIE/erfn2rK4tBKoNICxbV513fBtOz GBnJ+8JiiTJQ2vMMoqZGgbnAnmWZvTXNijHNQtpE7zrB6Ecxhwf5cRf3643pPgq6fO+XOc 7mFHkmBCAiu4iFHPx91XTR/+GIWEK+UsvPWAFCuIQ1pypQtyrKjVF/RmRNCyLEH1AxgwPq yvRzcNEZ28Si1f66cBWCCi1vc7DV0SIJKM4kwHjQyD8vhqv33soKCtpzjqiq2A== X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com X-GND-Sasl: herve.codina@bootlin.com Received: by mail.gandi.net (Postfix) with ESMTPA id 2BCC5E0004; Fri, 23 Jun 2023 08:58:36 +0000 (UTC) From: Herve Codina <herve.codina@bootlin.com> To: Herve Codina <herve.codina@bootlin.com>, Liam Girdwood <lgirdwood@gmail.com>, Mark Brown <broonie@kernel.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Jonathan Cameron <jic23@kernel.org>, Lars-Peter Clausen <lars@metafoo.de>, Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>, Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>, Andy Shevchenko <andy.shevchenko@gmail.com> Cc: alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, Wojciech Ziemba <wojciech.ziemba@intel.com>, Christophe Leroy <christophe.leroy@csgroup.eu>, Thomas Petazzoni <thomas.petazzoni@bootlin.com> Subject: [PATCH v6 00/13] Add support for IIO devices in ASoC Date: Fri, 23 Jun 2023 10:58:17 +0200 Message-Id: <20230623085830.749991-1-herve.codina@bootlin.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769484055132798167?= X-GMAIL-MSGID: =?utf-8?q?1769484055132798167?= |
Series |
Add support for IIO devices in ASoC
|
|
Message
Herve Codina
June 23, 2023, 8:58 a.m. UTC
Several weeks ago, I sent a series [1] for adding a potentiometer as an auxiliary device in ASoC. The feedback was that the potentiometer should be directly handled in IIO (as other potentiometers) and something more generic should be present in ASoC in order to have a binding to import some IIO devices into sound cards. The series related to the IIO potentiometer device is already applied. This series introduces audio-iio-aux. Its goal is to offer the binding between IIO and ASoC. It exposes attached IIO devices as ASoC auxiliary devices and allows to control them through mixer controls. On my system, the IIO device is a potentiometer and it is present in an amplifier design present in the audio path. Compare to the previous iteration https://lore.kernel.org/linux-kernel/20230615152631.224529-1-herve.codina@bootlin.com/ This v6 series mainly: - Fixes comments - Does some minor code modification Best regards, Hervé [1] https://lore.kernel.org/linux-kernel/20230203111422.142479-1-herve.codina@bootlin.com/ [2] https://lore.kernel.org/linux-kernel/20230421085245.302169-1-herve.codina@bootlin.com/ Changes v5 -> v6 - Patches 3, 4, 11, 13 No changes - Patch 1 Add 'Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>' Add 'Reviewed-by: Rob Herring <robh@kernel.org>' - Patch 2 Add 'Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>' - Patches 5, 6 Add 'Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>' - Patch 7 Fix comments: 'buf' -> 'buff', '__unconst_typeof' -> '__unconst_integer_typeof' - Patch 8, 9, 10 Add 'Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>' - Patch 12 Set struct snd_kcontrol_new fields for the constrol variable at variable initalization. Add a missing blank line Add a comment related to min/max swapping Add 'Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>' Changes v4 -> v5 - Patches 1, 2, 3, 4, 5, 9, 10, 11, 12, 13 No changes. - Patch 6 Fix commit log. Add 'Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>' - Patch 7 Fix the macros to be able to use them with: - an array defined as int *buff; - an array defined as int buff[N]; - Rework the way to "unconstify" the temporary variable to avoid issues due to integer promotion. Add 'Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>' - Patch 8 Add 'Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>' Changes v3 -> v4 - Patches 1, 2 No changes. - Patches 3, 4, 5 Add 'Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>'. - Patch 6 (new in v4) Fix headers inclusion order. - Patch 7 (patch 6 in v3) Add a comment related to __must_be_array() Use __array[0] of *__array - Patch 8 (patch 7 in v3) Fix minmax.h inclusion order. Add 'Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>'. - Patch 9 (patch 8 in v3) Add 'Suggested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>'. Add 'Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>'. - Patch 10 (patch 9 in v3) Add 'Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>'. - Patch 11 (patch 10 in v3) Fix a typo. Add 'Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com>'. Add 'Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>'. - Patch 12 (patch 11 in v3) Fix typos in the commit log. Fix headers inclusion order. Removed unneeded variable initialization. Replace {0} by {}. Use struct device *dev in probe(). Check an error on the snd-control-invert-range property read. - Patch 13 (patch12 in v3) No changes. Changes v2 -> v3 - Patches 1, 2 No changes. - Patch 3, 4 Add 'Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>'. - Patch 5 (new in v3) Removed the 'unused' variable and check the null pointer when used. - Patch 6 (new in v3) Introduce {min,max}_array(). - Patch 7 (new in v3) Use max_array() in iio_channel_read_max(). - Patch 8 (new in v3) Replace a FIXME comment by a TODO one. - Patch 9 (patch 5 in v2) Removed the 'unused' variable and check the null pointer when used. Use min_array(). Remplace a FIXME comment by a TODO one. - Patch 10 (patch 6 in v2) Convert existing macros to return a compound litteral instead of adding a new helper. - Patch 11 (patch 7 in v2) Remove the file name from the C file header. Use directly converted DAPM macros. Replace <linux/module.h> by <linux/mod_devicetable.h>. Add <linux/platform_device.h>. Be sure that min <= max. Swap values if it is not the case. Move the bool structure member after the int ones. Remove unneeded assignements. Use dev_err_probe() when relevant. Use str_on_off(). Use static_assert() instead of BUILD_BUG_ON(). Remove unneeded comma and blank line. Use device_property_*() instead of the OF API. - patch 8 available in v2 removed as already applied - Patch 12 (patch 9 in v2) Use devm_add_action_or_reset(). Call simple_populate_aux() from simple_parse_of(). Changes v1 -> v2 - Patch 1 Rename simple-iio-aux to audio-iio-aux Rename invert to snd-control-invert-range Remove the /schemas/iio/iio-consumer.yaml reference Remove the unneeded '|' after description - Patch 2 (new in v2) Introduce the simple-audio-card additional-devs subnode - Patch 3 (new in v2) Check err before switch() in iio_channel_read_max() - Patch 4 (new in v2) Fix raw reads and raw writes documentation - Patch 5 (patch 2 in v1) Check err before switch() in iio_channel_read_min() Fix documentation - Patch 6 (path 3 in v1) No changes - Patch 7 (patch 4 in v1) Rename simple-iio-aux to audio-iio-aux Rename invert to snd-control-invert-range Remove the mask usage from audio_iio_aux_{get,put}_volsw helpers Use directly PTR_ERR() in dev_err_probe() parameter Remove the '!!' construction Remove of_match_ptr() - Patch 8 (new in v2) Add a missing of_node_put() in the simple-card driver - Patch 9 (new in v2) Handle additional-devs in the simple-card driver Herve Codina (13): ASoC: dt-bindings: Add audio-iio-aux ASoC: dt-bindings: simple-card: Add additional-devs subnode iio: inkern: Check error explicitly in iio_channel_read_max() iio: consumer.h: Fix raw values documentation notes iio: inkern: Remove the 'unused' variable usage in iio_channel_read_max() iio: inkern: Fix headers inclusion order minmax: Introduce {min,max}_array() iio: inkern: Use max_array() to get the maximum value from an array iio: inkern: Replace a FIXME comment by a TODO one iio: inkern: Add a helper to query an available minimum raw value ASoC: soc-dapm.h: Convert macros to return a compound literal ASoC: codecs: Add support for the generic IIO auxiliary devices ASoC: simple-card: Handle additional devices .../bindings/sound/audio-iio-aux.yaml | 64 ++++ .../bindings/sound/simple-card.yaml | 53 +++ drivers/iio/inkern.c | 86 ++++- include/linux/iio/consumer.h | 37 +- include/linux/minmax.h | 64 ++++ include/sound/soc-dapm.h | 138 ++++--- sound/soc/codecs/Kconfig | 12 + sound/soc/codecs/Makefile | 2 + sound/soc/codecs/audio-iio-aux.c | 344 ++++++++++++++++++ sound/soc/generic/simple-card.c | 46 ++- 10 files changed, 775 insertions(+), 71 deletions(-) create mode 100644 Documentation/devicetree/bindings/sound/audio-iio-aux.yaml create mode 100644 sound/soc/codecs/audio-iio-aux.c
Comments
On Fri, 23 Jun 2023 10:58:17 +0200, Herve Codina wrote: > Several weeks ago, I sent a series [1] for adding a potentiometer as an > auxiliary device in ASoC. The feedback was that the potentiometer should > be directly handled in IIO (as other potentiometers) and something more > generic should be present in ASoC in order to have a binding to import > some IIO devices into sound cards. > > The series related to the IIO potentiometer device is already applied. > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [01/13] ASoC: dt-bindings: Add audio-iio-aux commit: cacff5e8a305b98595829ac4f5fe669e015ce19c [02/13] ASoC: dt-bindings: simple-card: Add additional-devs subnode commit: b5f3484117b86cb128f500ff2d730c3cfcb9ddfc [03/13] iio: inkern: Check error explicitly in iio_channel_read_max() commit: f75c544d74133278b004195220f540d8ab953e14 [04/13] iio: consumer.h: Fix raw values documentation notes commit: 1e1b4fbd6d0f8c54af14dcf18bd3136816153b12 [05/13] iio: inkern: Remove the 'unused' variable usage in iio_channel_read_max() commit: ad4e8480a1db8713ee7dfcc2770ea9f577750111 [06/13] iio: inkern: Fix headers inclusion order commit: 524cfdf6b88e2536f90f726b8c01ffe218f37d68 [07/13] minmax: Introduce {min,max}_array() commit: c952c748c7a983a8bda9112984e6f2c1f6e441a5 [08/13] iio: inkern: Use max_array() to get the maximum value from an array commit: 97aee7157eeadaf628e7f76da5e49cee91f19901 [09/13] iio: inkern: Replace a FIXME comment by a TODO one commit: 4dc603735826ec3963e30d6f25260255ca96d103 [10/13] iio: inkern: Add a helper to query an available minimum raw value commit: 7560418078b939e1e83f7dce502ec3c1ca8c152f [11/13] ASoC: soc-dapm.h: Convert macros to return a compound literal commit: 12e58fec5b2aff3ae6fef4e6c278f295a666b9b6 [12/13] ASoC: codecs: Add support for the generic IIO auxiliary devices commit: 1d298ad822178d365b53eac298c1752730505306 [13/13] ASoC: simple-card: Handle additional devices commit: 6d8ad35d119ca4c9c6fdf83faa733102c4a63f4b All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark