From nobody Sun Feb 8 01:34:05 2026 Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7805299AAC for ; Tue, 30 Dec 2025 20:35:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126930; cv=none; b=nBUsdScYhGdx7Ls2vvb6IKuHUPH92BBiQb4xUJp6lwHsFVegiqMpl0/RAAKF4pPSKsAkZ55HR4a1zLJKdmAYLA9tIl0fcHjESaGAuv4UMHzoe/u6zQxFcgrHiQUtDJLpYXlFTbcqSDvFJSJ4ecSHWZcjOWby+SIcqNW7yX66Mvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126930; c=relaxed/simple; bh=UAGRpfY4KwT+V4v61wxdidc8gTTnzFLqaP44Mz50hz8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o5A4Ajj1VbUugkJ/xqF7LZ2oaJdeEMOY+3PhPoBwZvXa5b5eFNEi73mX80UbcNFKk/jXcvGkdGIxQJF6tJUDYZQyt4Lu3xay24eLHYxDJbvUZLubYjfNItZ5tc9v9d2xElx1UId4vOCfzZ+WMmUgiq43rrn4BLbfz56mfEsFtn8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=epw2/IAC; arc=none smtp.client-ip=209.85.215.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="epw2/IAC" Received: by mail-pg1-f171.google.com with SMTP id 41be03b00d2f7-bc0d7255434so6049044a12.0 for ; Tue, 30 Dec 2025 12:35:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767126928; x=1767731728; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xNqW8ND68Qn1BInNnrDeX5W9wJC6ZSLjSp3dk9M7GPQ=; b=epw2/IACFFedkNyPfGJPyZNXKxnln9SIt1aIRK2KAC8gK3FfVl8R/ugXyCou82JeJD cxYJ6wyV0WNoX7R0gVQ/tB+IJPNEKJgjGRtozOS1bD+s05+UakNfvxtTGoiY5RFd3lko dHj8dpoEc0/zVJD0addMPTzESLa19wzBxsAIzNY9/IpBpxXxE0wVl2Z+8YGQRk2rOt07 Dp9POIACFWiWC313GZJ5hwFbUlNhbJe5GNh6Er6jWH8og/pqrg3AvaTjMY+MXxjIT3ao dpmYu9W+DLCKGz6a92/H9NzNRIvfjrwwz1Q2PsUkLfzdncY+hqyhfZmvavvctRbJJ4is BJNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767126928; x=1767731728; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=xNqW8ND68Qn1BInNnrDeX5W9wJC6ZSLjSp3dk9M7GPQ=; b=Q6VsjUrSyNb5eyNLHT4DDBiYZWqrG8K0alin25kJP3sVTi9BADBLibUYfcKUa8BcFN hM/n+/UvMtOR3aCe6kk/FT5CkdraTlKfWRPChHoIImXxh6o9VUja9Ols5DUIVsfoP6L9 Ro3V5dNJRUBuvPWHbFXrVs4dJCSocvv58NHoaklnYiGh0itUZmQGMAm1so5WPG0FiSMs VGnXSrdxdV5o6zc++iQMt8mlM56ax6wWFhHqe3GFX5AvbiUbz81sFODIcgshuhM+dl3h AesgwPYLD4DZIyUzgtQpbcRKFLl6JEcVT9405D/X5pOOAhpl87d9EdKC6FucP6mEoG84 /ckg== X-Forwarded-Encrypted: i=1; AJvYcCWexswn0gN5oSf2D95UxsAKjExDc6Z49rF43sPbefC5dsXQoVrF6AUQ2pEVTjNS8Ed03yJ//kZKj17WfG4=@vger.kernel.org X-Gm-Message-State: AOJu0YwV4UEAf9WBsEneSiRHT7D7o5mshtDgoHrS1jYQnFN34ujJLVVr qZv/NP+zOtU4Cjui0yfgHPj5sOda0EtkAY2Pcu/246sTxvRGjNX8OIih X-Gm-Gg: AY/fxX77UAqjTtiO/TvNtVyiT/N81L0qLfAK/CXZ/9jYWLPPoz9CNgLIrdYBGMblmhE AFIzpJc5dRndlX09kuIsP5PeVC+cY0e3R63m518E1Cirsa0tE4r7oYqgbKFs9TirJBwGDHcbMPw zNBA+eSjqGaq11G0hlqFn4f2JlxRq88UiUWXFwk/lhdtzqM4e33qfLBOsF8UyLGTLfQLPzJ6bso GKEmnxpsvKX0v9OOzP1nqSIekf8t9tbeZI969kBtKO9i0r+gMtWYFOy3OE/CbVJsFFi3fHIMDPI fbxpECj+PcE0zuU/74r822zCu7J/n1yItKHEpPJvA9/Zt2ZoqV2GBsM4Yuet/bBef/r/r9QrzQP sDX+kilYCzvFq+w42+RZkkRZdL1/XnbLlx8Z80HDMlx26sre6xunN9FOEP0zXvWmajjo5kv8H1Z o4MEPEvwq+xkIrWd4yoron4JQ3kZY5epv2cOTISOZ+88S+Ru2zoUg+5sTsp9vk5drGc5ohuf1E3 JKNAWQ/t6NtiQ/k45jy9a57gAdfT6PK4DdfMY8Q27cbmbF5fTNgmwOrfH9SIFnJk+YSqx85 X-Google-Smtp-Source: AGHT+IEsKIgPV4K9v9BN3J2QnbXkkuZD29ZOjL2Cv8OdoAPvO3VG4YohYWZFBlHHTexO8jnbyNRtjg== X-Received: by 2002:a05:7022:92a:b0:119:e55a:9c03 with SMTP id a92af1059eb24-121722dd671mr36870001c88.31.1767126927887; Tue, 30 Dec 2025 12:35:27 -0800 (PST) Received: from Lewboski.localdomain ([181.191.143.75]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1217253c23csm128074981c88.9.2025.12.30.12.35.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 12:35:27 -0800 (PST) From: Tomas Borquez To: Jonathan Cameron , Greg Kroah-Hartman , Lars-Peter Clausen , Michael Hennerich Cc: David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, linux-staging@lists.linux.dev, Tomas Borquez Subject: [PATCH v2 1/6] staging: iio: ad9832: cleanup dev_err_probe() Date: Tue, 30 Dec 2025 17:34:54 -0300 Message-ID: <20251230203459.28935-2-tomasborquez13@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251230203459.28935-1-tomasborquez13@gmail.com> References: <20251230203459.28935-1-tomasborquez13@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Cleanup dev_err_probe() by keeping messages consistent and adding error message for clock acquisition failure. Signed-off-by: Tomas Borquez --- drivers/staging/iio/frequency/ad9832.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/f= requency/ad9832.c index b87ea1781b27..a5523e2210bf 100644 --- a/drivers/staging/iio/frequency/ad9832.c +++ b/drivers/staging/iio/frequency/ad9832.c @@ -293,27 +293,28 @@ static const struct iio_info ad9832_info =3D { =20 static int ad9832_probe(struct spi_device *spi) { + struct device *dev =3D &spi->dev; struct iio_dev *indio_dev; struct ad9832_state *st; int ret; =20 - indio_dev =3D devm_iio_device_alloc(&spi->dev, sizeof(*st)); + indio_dev =3D devm_iio_device_alloc(dev, sizeof(*st)); if (!indio_dev) return -ENOMEM; =20 st =3D iio_priv(indio_dev); =20 - ret =3D devm_regulator_get_enable(&spi->dev, "avdd"); + ret =3D devm_regulator_get_enable(dev, "avdd"); if (ret) - return dev_err_probe(&spi->dev, ret, "failed to enable specified AVDD vo= ltage\n"); + return dev_err_probe(dev, ret, "failed to enable AVDD supply\n"); =20 - ret =3D devm_regulator_get_enable(&spi->dev, "dvdd"); + ret =3D devm_regulator_get_enable(dev, "dvdd"); if (ret) - return dev_err_probe(&spi->dev, ret, "Failed to enable specified DVDD su= pply\n"); + return dev_err_probe(dev, ret, "failed to enable DVDD supply\n"); =20 - st->mclk =3D devm_clk_get_enabled(&spi->dev, "mclk"); + st->mclk =3D devm_clk_get_enabled(dev, "mclk"); if (IS_ERR(st->mclk)) - return PTR_ERR(st->mclk); + return dev_err_probe(dev, PTR_ERR(st->mclk), "failed to enable MCLK\n"); =20 st->spi =3D spi; mutex_init(&st->lock); --=20 2.43.0 From nobody Sun Feb 8 01:34:05 2026 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B4B7D270ED2 for ; Tue, 30 Dec 2025 20:35:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126933; cv=none; b=NVTX4yRwQNala1xuRMYRuN+5azCMl4IwgyOr6dSI8wFyL6fpLE6dLbubmRxwPZcFV01/ceEgpxetD5LUJbCFq57N0emzBoWRsc1D6GfwBASWyGqib5+Z1Sqa3b4Fay+k/JZCBrXZCTei9Wf4z67vLhPx/4SC5f6UxGsIAo1eV+w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126933; c=relaxed/simple; bh=uLLykXd56vesJ9HtK213SAYa5HAGc3d+EtRYj3wel3Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qCiynYu7JfPP7pbO7wD/V9dl+TywBDX+YvkIP85xjjKjt3oC0bSRa6f92vBqkVfDyn0cF5lMUlr4maFK7l6ZwFdHN1CNrbscmpf45sa85Bf+TyRETMwdJfyuqiwYoXjtJsmnXBNii7v1umTTWqpGbNRqPhkg/L8kmmB9zaaC8Yc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HtS/r1bt; arc=none smtp.client-ip=209.85.210.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HtS/r1bt" Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-7e1651ae0d5so7979832b3a.1 for ; Tue, 30 Dec 2025 12:35:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767126931; x=1767731731; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=D6EZZUu4o39Ojycy+6hXtm+M1PWmD2n3TmdY9kxESqw=; b=HtS/r1btgaGJXfiYFe9SRKa3B/X6yK6yHqH9xAnqcr7wdmz5iRkkVCkmCXJ8s05o08 zGlmOABeverShHNM0mhHtaeTVD1oDnA+qeLwab0GFjroJSU9VCAE4qsrBx4W/FqeOkkl b6oAJ9tM+J6sOTnMBnfcQ3u/UQlx+Y/6z5vmXnWejJl4C5zeDaQdTn1G+vLJS1flO0ao hXXR71D7EFebQ3CJDDtnsUg9nRKVAOPxFbMW0pEtQoOmiDfMWt7R0aqQoHfH1pUiSbH8 mLPekKHb0MBGl93LuVPaL5rHpMc26U6FJr8Ilc2QaUuIF7XsKepOOMd8F6/BGj6TEEj6 miYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767126931; x=1767731731; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=D6EZZUu4o39Ojycy+6hXtm+M1PWmD2n3TmdY9kxESqw=; b=nQhOWESfOwAjrPBeemrIAbRLvb43HL9jx8khPm2SKcP9WpcVoU8oyXz+4e08ueM+f8 C/BY/zKoVqLKmYPSUCHeNIE7Lc+IRF/IAMVtHhM6WGzKlMoEdMGNCH0T9Da+gV3bjGVH yEC/02y2127gw8FgvZaHfW3HwMCXHuU0M1N4uUEgey/jtt3xZHwNblU2zamhvG77cRpJ IjfGeHhIhM7TZyAAp7iWCU5OJ6L3IYoc47k3VkMtq9qDAw9OJW/0n9AoUZrGNlNsaQTy 5ZI9B1LybC9ITnfdk+iWMaMBjcmzmwFLigKV+lbbq6YXQ7Zy3k7s4hgq+pis1FmQQFC/ KywQ== X-Forwarded-Encrypted: i=1; AJvYcCVwKC5d42S9uOHsRLK7ou7mi6PwKXlGDSQq9FhtfDFNX6SFyo9+QAzYeSSLsWRjLVb+D1mGoD2VpaOepDc=@vger.kernel.org X-Gm-Message-State: AOJu0YxXBb5HaHoyu2XIyQugVLFSTOFc0TJOcxG/WOlP+uT05s7qXejU 7xJxpINdpsAeilEhSsrA5cn7SHVJcfVJ7nWjA9y18BosMo7GGpCjOQXx X-Gm-Gg: AY/fxX5FwBeRa0hah72mOd6APd0r9DSulcotttBtVIHNzVumT6KwvAkYnmlVquvMlTs xDbjsshBw5cVMyCEcUtYL2fc/nS2XnRfEhunEMH9Lbh8l0BXGVJnJULpz+AK5qAprqVydtFUpgV qayb9jFjOOvLrNCRrSuHlOH1317k1MthMv2EhByMiYafBAdDlt1lSC0aKhiIuZz+0aNf4pZFvUx 2jlljgrwAHOK+qB3zXz4pUDIhdy0D8r0azTzSTHJV/zv7/VJkP+vvU7L9TLISvsxEe4EgxyzBYa BAQvOSElFhjrTc8GSKxedgCRVQJjf6hKO2tkLnN1pjwjxTOweZTexgwvf2VKIx3G8RgSz0E8Y2C XjVyP7B/uXzIHqKHg5O03hfk3Yesd57ZAQBWBs+Vhc7y1IaUNe1z6e4rZjWdGdwoR/kKXmLpiq4 ZZ+S9Q6qk7fjlAqUh3ONj7nt5JT8oUmoU3xVvvRQoPxNM4D/b2AUr8ZTK6uziMcFCDbLBtHlnba u7SPx1PSjMOcP6J4sLAR5T+pZDgf4/zxa7uBSVZ16F5YGKM0NDBu2XVr8WDhyxRAonJtn8Jv3Wu 0if8XWA= X-Google-Smtp-Source: AGHT+IF+K7pA6VCVFKzIOiSozceFllQ94quSzKO77YM3movakFJsFMOcOUPfcfwEKoSQVCgPOYQFtQ== X-Received: by 2002:a05:7022:1e11:b0:11b:9386:8272 with SMTP id a92af1059eb24-1217231272amr33588237c88.47.1767126930864; Tue, 30 Dec 2025 12:35:30 -0800 (PST) Received: from Lewboski.localdomain ([181.191.143.75]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1217253c23csm128074981c88.9.2025.12.30.12.35.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 12:35:30 -0800 (PST) From: Tomas Borquez To: Jonathan Cameron , Greg Kroah-Hartman , Lars-Peter Clausen , Michael Hennerich Cc: David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, linux-staging@lists.linux.dev, Tomas Borquez Subject: [PATCH v2 2/6] staging: iio: ad9832: convert to guard(mutex) Date: Tue, 30 Dec 2025 17:34:55 -0300 Message-ID: <20251230203459.28935-3-tomasborquez13@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251230203459.28935-1-tomasborquez13@gmail.com> References: <20251230203459.28935-1-tomasborquez13@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use guard(mutex) for cleaner lock handling and simpler error paths. Signed-off-by: Tomas Borquez --- drivers/staging/iio/frequency/ad9832.c | 41 +++++++++++--------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/f= requency/ad9832.c index a5523e2210bf..35d8d51d5c2b 100644 --- a/drivers/staging/iio/frequency/ad9832.c +++ b/drivers/staging/iio/frequency/ad9832.c @@ -9,6 +9,7 @@ =20 #include #include +#include #include #include #include @@ -179,20 +180,20 @@ static ssize_t ad9832_write(struct device *dev, struc= t device_attribute *attr, =20 ret =3D kstrtoul(buf, 10, &val); if (ret) - goto error_ret; + return ret; =20 - mutex_lock(&st->lock); + guard(mutex)(&st->lock); switch ((u32)this_attr->address) { case AD9832_FREQ0HM: case AD9832_FREQ1HM: ret =3D ad9832_write_frequency(st, this_attr->address, val); - break; + return ret ?: len; case AD9832_PHASE0H: case AD9832_PHASE1H: case AD9832_PHASE2H: case AD9832_PHASE3H: ret =3D ad9832_write_phase(st, this_attr->address, val); - break; + return ret ?: len; case AD9832_PINCTRL_EN: st->ctrl_ss &=3D ~AD9832_SELSRC; st->ctrl_ss |=3D FIELD_PREP(AD9832_SELSRC, val ? 0 : 1); @@ -200,24 +201,20 @@ static ssize_t ad9832_write(struct device *dev, struc= t device_attribute *attr, st->data =3D cpu_to_be16(FIELD_PREP(AD9832_CMD_MSK, AD9832_CMD_SYNCSELSR= C) | st->ctrl_ss); ret =3D spi_sync(st->spi, &st->msg); - break; + return ret ?: len; case AD9832_FREQ_SYM: - if (val =3D=3D 1 || val =3D=3D 0) { - st->ctrl_fp &=3D ~AD9832_FREQ; - st->ctrl_fp |=3D FIELD_PREP(AD9832_FREQ, val ? 1 : 0); - } else { - ret =3D -EINVAL; - break; - } + if (val !=3D 1 && val !=3D 0) + return -EINVAL; + + st->ctrl_fp &=3D ~AD9832_FREQ; + st->ctrl_fp |=3D FIELD_PREP(AD9832_FREQ, val ? 1 : 0); st->data =3D cpu_to_be16(FIELD_PREP(AD9832_CMD_MSK, AD9832_CMD_FPSELECT)= | st->ctrl_fp); ret =3D spi_sync(st->spi, &st->msg); - break; + return ret ?: len; case AD9832_PHASE_SYM: - if (val > 3) { - ret =3D -EINVAL; - break; - } + if (val > 3) + return -EINVAL; =20 st->ctrl_fp &=3D ~AD9832_PHASE_MASK; st->ctrl_fp |=3D FIELD_PREP(AD9832_PHASE_MASK, val); @@ -225,7 +222,7 @@ static ssize_t ad9832_write(struct device *dev, struct = device_attribute *attr, st->data =3D cpu_to_be16(FIELD_PREP(AD9832_CMD_MSK, AD9832_CMD_FPSELECT)= | st->ctrl_fp); ret =3D spi_sync(st->spi, &st->msg); - break; + return ret ?: len; case AD9832_OUTPUT_EN: if (val) st->ctrl_src &=3D ~(AD9832_RESET | AD9832_SLEEP | AD9832_CLR); @@ -235,14 +232,10 @@ static ssize_t ad9832_write(struct device *dev, struc= t device_attribute *attr, st->data =3D cpu_to_be16(FIELD_PREP(AD9832_CMD_MSK, AD9832_CMD_SLEEPRESC= LR) | st->ctrl_src); ret =3D spi_sync(st->spi, &st->msg); - break; + return ret ?: len; default: - ret =3D -ENODEV; + return -ENODEV; } - mutex_unlock(&st->lock); - -error_ret: - return ret ? ret : len; } =20 /* --=20 2.43.0 From nobody Sun Feb 8 01:34:05 2026 Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7BBC2868A9 for ; Tue, 30 Dec 2025 20:35:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126936; cv=none; b=RnhIRx7zu26Qtr9556UEUeZ62g4ek5Q1HOfDNTxPXVDCKOI1tLCBV268yiKkOolMMA+0OwS8inPZXnM24UnBP0OpavPSti3E/lRRC6WE4XzWH+6gwszK6sZLOjt2sgcL2LpLr9t5a3kcIARwVxWxBVCihtZhtF3+7oGfmtyytIo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126936; c=relaxed/simple; bh=vESSaFIFVODvDAYauywzLFHfGN0Mc3h70ZxlmCWHsa0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o4p+C+3I11nCOXWBYefIPvqmkqHobrTlzGvQhrMDuA+tdbFRkJgK0OmI71/mdpFmV1T+Y2X5KLpd4SHN5GrujbjGmZlYd+MOLG39cBXTXWEAdWJ6itzXIXmEMIjWJMybTgr3jReZo5R3clRqNQDkiCJ0yow82PALCqCj3neBbUU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DVQFTFOH; arc=none smtp.client-ip=209.85.215.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DVQFTFOH" Received: by mail-pg1-f173.google.com with SMTP id 41be03b00d2f7-c2af7d09533so3883423a12.1 for ; Tue, 30 Dec 2025 12:35:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767126934; x=1767731734; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=axPCG5191y85EuHI3q1Bwt62R50lYejVjnZraRFrpsg=; b=DVQFTFOHdeJvLrY9oYczzjGGGezJxT4esEm8jKp4EBIg3KtzBRBVb3FwrrLJkPtFk7 ntW5QaBAqY2xDZSuLgEfKUyswfmH9W6pBecSAEQiDhfL5x0qXfe0iUW8+u/wZ5+7A73u unsco1rGkOUKzbIFWkBZHmXxz720f8oRsjJZ1ukmIquifUQP0c84D1RfSmNME2bd+7xr 6+e6phC5/U3l/CtXCUvA68eIgXH1mAReezNzszcE1hVfM2Y9IUrGRulIo+TuaeEopdDE FlHVQjK1fffzKGfymU9cEobd+1iPQBQMiOq/Xn+H7Xt2XTXy1p84fvvULX6u6F/OXXID sILw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767126934; x=1767731734; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=axPCG5191y85EuHI3q1Bwt62R50lYejVjnZraRFrpsg=; b=ZCUTrWJpuI9Wphg9lEmWFuBSPBljRigThhCyjXZ3JH4qkNTcZf3pluKVzNQVkmHWBd Wfl3thIAlFXOV2l1zQ6U3Vdyt7LcUhMf5F5ImUDusbYkwGYkT65cHQj6KFedx5LFB7Tq RG9X5q7GGHWjWwbvWIRprk4XCe5iXb+Iv4OhbKognIOvJTVFMHaVXPLtzZjdrPPmDZzN ruRWUY1+BGyY7h1+J6bYOb0GN+xo8xqI9ti5wj9pK0uh9RhS3jJ0877bChj0qwQRfNX7 kdgkGQsTql/PEl7Hz0g8soWcMsgHFmoW9z5HECty+OI/Dap5buXWZqALlZnOzUtbZBtA B3hA== X-Forwarded-Encrypted: i=1; AJvYcCUnYrzc/bgfKLXMEEQn59dShD1yOr2+8qEM5leY3YrwOH3PJ+Xx2NiMIDT96sNkgp/n/DoSR+omBcF7mlU=@vger.kernel.org X-Gm-Message-State: AOJu0YwmxpDBxsxSL/Wd5Li+reOLT/UB76MBNJ03gGLB0hNQaOjqU1b9 LkultRZwGSFWg6dctU+DaC3X+Kaq7DMOktvIWOhFKid+l1+8AHVKl99e X-Gm-Gg: AY/fxX6momjWYVeVzpMHS+VOUN4DAl9GAlba3+uyQuarZFmq50ElWSEjIyS8zVnwS28 GD7ZuYgexU3NvLq6Fi2cCAdcpOkJocd5+JIfJG4FS+EmgBcZ6Cvp6F7CBAIOZHTf/d5hmxEf1zx 2B4ByVrvDbZ4mpAI1bpK8VL2IhqwkrVaiJOe13iKUwlJYflFfMZTJntOE14TeVJrlGvOpiG/774 LarCmU+bSrAM+AZGQqCuMQu1Gr35K5Jp4YI3alFO5wJeajRjON+pc2wk9MgRvPQI/yjadiiJprS AQ2BAYwpkrxmSnBHlQaVp17IYbQm1rWEXx/DQiO7dsN4ky/bja8pn3rTlHge3dDwjq/dhmkbY8M JZfwKVfxE2/rGqSkBa5x2taOp6E0gbfhBozaFUJ4cx7HgJoMRvu6HMZ4h4ZmWJ+4GXRNkEXvpTT jUL0C7oLiUAGdqUoD4VhmOWxck5YwQSG8kNatR4cDLubMSnBQCQT+p4cO5rH0E1rJW9ICxMRQp6 GIogvk7VJJCjXlw3F1N7oj4QWaphQ5g79yU0jYbxV9FgGqn6HLH9BOQSRDkIZYXf6dEej1w X-Google-Smtp-Source: AGHT+IEjynbnbNOs0GxvG1NZrDdhGId8lCBPq2Ib/COi11IyOlDHpfQ3hve0iMX2aPrHetQoG3h2YA== X-Received: by 2002:a05:7022:220b:b0:11a:61ef:8491 with SMTP id a92af1059eb24-121722a9744mr39338291c88.3.1767126934007; Tue, 30 Dec 2025 12:35:34 -0800 (PST) Received: from Lewboski.localdomain ([181.191.143.75]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1217253c23csm128074981c88.9.2025.12.30.12.35.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 12:35:33 -0800 (PST) From: Tomas Borquez To: Jonathan Cameron , Greg Kroah-Hartman , Lars-Peter Clausen , Michael Hennerich Cc: David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, linux-staging@lists.linux.dev, Tomas Borquez Subject: [PATCH v2 3/6] staging: iio: ad9832: convert to devm_mutex_init() Date: Tue, 30 Dec 2025 17:34:56 -0300 Message-ID: <20251230203459.28935-4-tomasborquez13@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251230203459.28935-1-tomasborquez13@gmail.com> References: <20251230203459.28935-1-tomasborquez13@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Use devm_mutex_init() for automatic resource cleanup when the device is removed or probe fails. Signed-off-by: Tomas Borquez Reviewed-by: Marcelo Schmitt --- drivers/staging/iio/frequency/ad9832.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/f= requency/ad9832.c index 35d8d51d5c2b..4bb203a67046 100644 --- a/drivers/staging/iio/frequency/ad9832.c +++ b/drivers/staging/iio/frequency/ad9832.c @@ -310,7 +310,9 @@ static int ad9832_probe(struct spi_device *spi) return dev_err_probe(dev, PTR_ERR(st->mclk), "failed to enable MCLK\n"); =20 st->spi =3D spi; - mutex_init(&st->lock); + ret =3D devm_mutex_init(&spi->dev, &st->lock); + if (ret) + return dev_err_probe(dev, ret, "failed to initialize mutex\n"); =20 indio_dev->name =3D spi_get_device_id(spi)->name; indio_dev->info =3D &ad9832_info; --=20 2.43.0 From nobody Sun Feb 8 01:34:05 2026 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D50EA246782 for ; Tue, 30 Dec 2025 20:35:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126940; cv=none; b=OqYQ7GMP/73eN3+MwekgCrjM+U/ZPWtqhAmHMDSqwC7rHsfgzIe2cOg1PZ6A8gChKm5rboouL6V2GBExkqQ1stzfx1PLZ6nmuSnx38zJ84UQI0ajdnVwgqVtFDLeTPp+VoXCDTexOyJ7RmSBoKtpeXp4sdIsHsVXxa3/r0uTK5I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126940; c=relaxed/simple; bh=KhOG4N7N+3XuIAad+gpMd5RqaKSj5wsS75InoOIZgYs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oJBM+lY4cNd2qUiJdDUGs2LkxVx7VYBozmojYwYvqc8ETe3tgWRfUFlN2TTi+tn0UjHJcmYaQhT9Pe3uEf1+Of82rxkrhlDB88bnSlBLsn7g39Mjpw39Vq4CxMpsL8F102zfxA4NEoiY3fK+wwmogKXEnY7ZPvudUunnP7ucZDg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bnhTkbX+; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bnhTkbX+" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2a0833b5aeeso140047615ad.1 for ; Tue, 30 Dec 2025 12:35:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767126938; x=1767731738; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=R2JkxCT9+3YP4D28HHgDiKativOskj6ucx01bNwJC+c=; b=bnhTkbX+jA0NV6KzYPOMEAA8dRL7z7i9P582Tngvf2MO9IxvCOb2NJ0ico64AdfgdM YSPK54oLcgt3tkWB6LZjBMO2iQr8Cc0QPidAY8bq7Rt5Mq9O6wsByofADDBpBtG/KmA4 a2wYEWerEazVT0rFzo4s9lmtDT45zxeXoQp64o1dwyXeGMharkOr9Vu4Uvq2VG3fLDA6 DeCCCevgp0R+zMTJBTlbfBSip3Cr2XpbcSjJqURSSEfFZR0aDqnjEUu3E4kn+In+aVHL HMjpQ7ARhmj670TXYPR05Q5+alEabyMPfCLktPaPKeA9gTuSY7uq+7ehWh6dfPUhrsiZ Lzbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767126938; x=1767731738; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=R2JkxCT9+3YP4D28HHgDiKativOskj6ucx01bNwJC+c=; b=twG+iLSmrNjm1zgsOy86g1KmqNqN5EBvlwir09QNudC0EruL2p/yeLYpam4TLA0XrV vVJgSda4dWx6z6YF/yya3hDrXATzv6oVd20rDBZupN4Z6K+CherQkPxN/7k3onEs84mZ LrtByLqaNZNG1oVmcQ9XZXzH8VNwFwkTl3HpHKa6zD/06L48cEtYMOCEe8MyPMqepv2x 8OrJPHMR8gKfdS4d0wcDCntaJssE7LkUDWw8UMCXsCi+OjFncECokRY/WW+FfnIiUhNu 83FO50Oz+fYymv+ygfpVfTvl/uzbBqZtY7PO3QLRW9SFATgL5v77WvjYga+nGgDvQ6T8 1MOw== X-Forwarded-Encrypted: i=1; AJvYcCUuOPrNobCzoSkocjbYEFf7ml25Z4yh66wa5Lykhe4FKgn8uB54WEDa12r+V+YPDrZEiatX3tOJlL8ZjIc=@vger.kernel.org X-Gm-Message-State: AOJu0YyM7NmwQ78o3oDxRRegxS/o3QvFXfQ4z/ua6qNh3OnhNUO+Cb8y XOIW3k4X8VaJHw+GcPgIWAmf+cC2uCH6voRkF6RbGF4KZiGZNgsUSALo X-Gm-Gg: AY/fxX6aYzHyXugQwr/iSJkPplru6W/jRrAY6ZqjbvnkXzLrlBQ/DXZTtZ26TF5KKG4 kmWNWKzKrxY0BtoFvPc0Dk3JCHe07IbvU46mS+MwdxwBo+OJp0hwQ+Z9VJ6CDIpDq4vq2F5kZ2V wnJNgWBJEVVRh78T+StDwdUrugGXIquzG8FBk1EDPQLeZNiL9tD894CaR35sRR2chJ1yJzuUTq/ onUikLfKgJ3+EynuXOjyQXe7yQD/k3W/6S8+D4mcHik+yyQ1wAaTObdwPgESmYaQJwD9D4HToZI CRzMw/9Iqq+U0W1keQcsGahaXE5AI/HsjtbrTbqyxb6PCHgyQPUmp36tY+AwEmCq86HPFPKg2Q9 NT7bmT3sIA77P+1ZZlbPUNtSvHWedhJPFavnR+JGqSsfTuXrETt5CPpgUTqK7oLmeDJxgzwk5zS tsWaAlyAnjtJWMmxzP7SvNkuvFzGxu4I4yqjVl17T6H1ihv1bwzFwHQdyH5xPdhTtkQ4VqioIw+ ShQpJ0+tZtw+v1Dff1M+ji/DG2w/hjWM8AQXDsm3ib6PajPxqYIKCOJyHNY8/kJtiiHf2O/2vkv EDGnaY8= X-Google-Smtp-Source: AGHT+IEr7/wv3OVwsFVrG2Eawia8meD5YSTnGD52R8yUpWj3DwfbpL64WGbA/Oz9enaVheaZVHOF+g== X-Received: by 2002:a05:7022:6291:b0:119:e569:f61e with SMTP id a92af1059eb24-121722e12e7mr27372018c88.23.1767126937719; Tue, 30 Dec 2025 12:35:37 -0800 (PST) Received: from Lewboski.localdomain ([181.191.143.75]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1217253c23csm128074981c88.9.2025.12.30.12.35.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 12:35:36 -0800 (PST) From: Tomas Borquez To: Jonathan Cameron , Greg Kroah-Hartman , Lars-Peter Clausen , Michael Hennerich Cc: David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, linux-staging@lists.linux.dev, Tomas Borquez Subject: [PATCH v2 4/6] staging: iio: ad9832: remove dds.h dependency Date: Tue, 30 Dec 2025 17:34:57 -0300 Message-ID: <20251230203459.28935-5-tomasborquez13@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251230203459.28935-1-tomasborquez13@gmail.com> References: <20251230203459.28935-1-tomasborquez13@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Remove dependency on dds.h by converting custom macros to standard IIO attribute declarations. Signed-off-by: Tomas Borquez --- drivers/staging/iio/frequency/ad9832.c | 37 +++++++++++--------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/f= requency/ad9832.c index 4bb203a67046..aa78973c3a3c 100644 --- a/drivers/staging/iio/frequency/ad9832.c +++ b/drivers/staging/iio/frequency/ad9832.c @@ -24,8 +24,6 @@ #include #include =20 -#include "dds.h" - /* Registers */ #define AD9832_FREQ0LL 0x0 #define AD9832_FREQ0HL 0x1 @@ -238,27 +236,22 @@ static ssize_t ad9832_write(struct device *dev, struc= t device_attribute *attr, } } =20 -/* - * see dds.h for further information - */ +static IIO_DEVICE_ATTR(out_altvoltage0_frequency0, 0200, NULL, ad9832_writ= e, AD9832_FREQ0HM); +static IIO_DEVICE_ATTR(out_altvoltage0_frequency1, 0200, NULL, ad9832_writ= e, AD9832_FREQ1HM); + +static IIO_DEVICE_ATTR(out_altvoltage0_frequencysymbol, 0200, NULL, ad9832= _write, AD9832_FREQ_SYM); +static IIO_CONST_ATTR(out_altvoltage0_frequency_scale, "1"); /* 1Hz */ + +static IIO_DEVICE_ATTR(out_altvoltage0_phase0, 0200, NULL, ad9832_write, A= D9832_PHASE0H); +static IIO_DEVICE_ATTR(out_altvoltage0_phase1, 0200, NULL, ad9832_write, A= D9832_PHASE1H); +static IIO_DEVICE_ATTR(out_altvoltage0_phase2, 0200, NULL, ad9832_write, A= D9832_PHASE2H); +static IIO_DEVICE_ATTR(out_altvoltage0_phase3, 0200, NULL, ad9832_write, A= D9832_PHASE3H); + +static IIO_DEVICE_ATTR(out_altvoltage0_phasesymbol, 0200, NULL, ad9832_wri= te, AD9832_PHASE_SYM); +static IIO_CONST_ATTR(out_altvoltage0_phase_scale, "0.0015339808"); /* 2PI= /2^12 rad */ =20 -static IIO_DEV_ATTR_FREQ(0, 0, 0200, NULL, ad9832_write, AD9832_FREQ0HM); -static IIO_DEV_ATTR_FREQ(0, 1, 0200, NULL, ad9832_write, AD9832_FREQ1HM); -static IIO_DEV_ATTR_FREQSYMBOL(0, 0200, NULL, ad9832_write, AD9832_FREQ_SY= M); -static IIO_CONST_ATTR_FREQ_SCALE(0, "1"); /* 1Hz */ - -static IIO_DEV_ATTR_PHASE(0, 0, 0200, NULL, ad9832_write, AD9832_PHASE0H); -static IIO_DEV_ATTR_PHASE(0, 1, 0200, NULL, ad9832_write, AD9832_PHASE1H); -static IIO_DEV_ATTR_PHASE(0, 2, 0200, NULL, ad9832_write, AD9832_PHASE2H); -static IIO_DEV_ATTR_PHASE(0, 3, 0200, NULL, ad9832_write, AD9832_PHASE3H); -static IIO_DEV_ATTR_PHASESYMBOL(0, 0200, NULL, - ad9832_write, AD9832_PHASE_SYM); -static IIO_CONST_ATTR_PHASE_SCALE(0, "0.0015339808"); /* 2PI/2^12 rad*/ - -static IIO_DEV_ATTR_PINCONTROL_EN(0, 0200, NULL, - ad9832_write, AD9832_PINCTRL_EN); -static IIO_DEV_ATTR_OUT_ENABLE(0, 0200, NULL, - ad9832_write, AD9832_OUTPUT_EN); +static IIO_DEVICE_ATTR(out_altvoltage0_pincontrol_en, 0200, NULL, ad9832_w= rite, AD9832_PINCTRL_EN); +static IIO_DEVICE_ATTR(out_altvoltage0_out_enable, 0200, NULL, ad9832_writ= e, AD9832_OUTPUT_EN); =20 static struct attribute *ad9832_attributes[] =3D { &iio_dev_attr_out_altvoltage0_frequency0.dev_attr.attr, --=20 2.43.0 From nobody Sun Feb 8 01:34:05 2026 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 16AEE1C4A24 for ; Tue, 30 Dec 2025 20:35:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126944; cv=none; b=UAE21PDGdYn+Ggy+MV39aoFzYIwDTuLQyZIG+urTTo+fYKxmojymhl0h44TQALK7dhyPbJzuTrdn2pTwfnqObo8uFD7SDyCEt+PAE3aDiEYkQ8FJEREfqi3C7QO4mX8KHFL9wuV4zbJTpQ67StO8fS7XGc6F2qVbmoCFsrD9I2I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126944; c=relaxed/simple; bh=/mr7jAHWehIfBBNJdaqw0qimb+vHg2lEkR+W/uqT7i4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GKpUQATQVH3E/6YEBC80zMUdZHdpMgq6KSm6Pq8BvsIcVvc+sEPPXmde2S6YuMnAHljLH4matKMzgK/gtk3erZ7C+IBImaqrTRwf/QlaLqEelJXBeAJL88clmA3R3KOR9jhVUdTizlEw2/TPlnnT7OvKisLVfbcm0/E1nu3i0NM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=A3YuXqZ4; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="A3YuXqZ4" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2a0c20ee83dso131075675ad.2 for ; Tue, 30 Dec 2025 12:35:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767126941; x=1767731741; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DxRJRyxZlhtlgsmSDlbCysKvgjjG2u+h0tl7Hk7tzUU=; b=A3YuXqZ49WdViQqKcLYlgwKYzotBaggcvXpA1YFJ6tfeajGLvRnTOMZXO6wp6vxeN4 jLBFqR652zbNKZbXiys7JZ1+vJpVti3TXgp5juDJ9OqjkbxhzDKTYJu1xL79VGwO9ogv 05+MpxJ5THJHIt+7ffyp7UAfxaV/QnqwdR47KAfHgwpu8Zd9ojzoJCwA1+kfoFGRxZay vehPlfNNhdU3k2crAVJ/y2TT9/+bhkHqpnRzyl9TaglPreGDSdKSFjBMGDZYdXzw0Nnm 3qX+uyrSYWwmsypP3RAh/Zh25VaqoYnapgxrPJeeyUfkyMLWHwV6wVZYCRB1coxApSc2 XowQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767126941; x=1767731741; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=DxRJRyxZlhtlgsmSDlbCysKvgjjG2u+h0tl7Hk7tzUU=; b=ZtoUjFNB5qBhS7UofofsEhaLP0MFsj2zJbq8Rp+BgzeM+mtGPdIwksbmgNMefZHWzu l34RucDzezs69FPRXNX+YSrKWHI6m5wpuI/J9CUdcnfaa1rO+K85aExDcDOHO63ANtsG pfBjkPScQuXUmXgOmBC0P8XnjfXeh7o8I31yss7oaZeES8Mf7Z5pyIL7pk4v6C0hVZCJ /6YqQYPs3vhuoJYIHarSAjvbP2TNWReHQZOWDlErT9y6neFmgoo4baPR4PEaDyfwORdc iw3duH7rKkfS+z0ZIcCTLoqOnLgtRwVOaUd1hAsf61eND8Ecdon8GUD4lKlYdFyZVW0j F6Lw== X-Forwarded-Encrypted: i=1; AJvYcCW6BjJt5k7vnrVWwblzruE782wWHOvmNVwVQNqCm52qKQcBVE1+zWwqUswKtDCSROjjoOJ2XOZcz2SZuFs=@vger.kernel.org X-Gm-Message-State: AOJu0YxlEQn5KV2McDbmpZRZrySE5mQ4eHZV+cc43pGhL6BFTF3aWXx8 pO7riaOJZ9A6qW8Vg7BICWqD9DiZPGETcB1VBEzaX/nW6KyBRp0Pp/ly X-Gm-Gg: AY/fxX5xZgDTSSwQu/daHUyuAXimNSOvnlB0fe1pTB+Z+B8FYBky5PD3/y1Xv6PSQZ4 wJD8aMxRWzkFzZe21boanSCarNNeT30N2qicme2D99CvoFSyne1ZJZLGVN86kwIe+UqaWQUC+iK 1hjFGviujeZ+FA3tArM6QFCn4B7TTRENA5ovDo8gGOys5asSw1LzIoMHPrhaoHAtPFhuNJxgZcR pnH8HxwORYMkTpCHlOTqwLjyingZ/nUrJg4CJm117CGavelt3CjMUWQ6pTfUwYAIaz7MOHPpBqf 5Ic7snCezeGSQOOdpke2Hl2FDJaODfJY/sor6UUEK+eZo7IY8zJhPCRQ76bXnBKGIS4tQu+N7MN l62lMNbO9qAyGqAvpSYSQYLBqOzl3Gu/nDgkTUVuPQso7uqR4G/lWgzkiL9UewAzTz0FC/kk+rw 5FMyAxq0gAIoClsHS0p7+VBFL+gcCHm9TXu+IPbKbmA45kG9Eyc8W7WVaV0asAvg14dCydIALLR QYZ6Vk7tv5LGgHi6Cq3mo3Sa8k81Zmkab2ym2fvmPVdXJNcgXDT74RsfxK8YHDlDsXzIGFZ X-Google-Smtp-Source: AGHT+IGdV3a18S3AHIdeFWIGU/8fpVHk1Lnq+/qC7R4wL3MLfq7w14AnuYvzQgqOK185nj0iA7osJA== X-Received: by 2002:a05:7022:e04:b0:11b:d211:3a64 with SMTP id a92af1059eb24-1217213fb1fmr38837120c88.0.1767126940983; Tue, 30 Dec 2025 12:35:40 -0800 (PST) Received: from Lewboski.localdomain ([181.191.143.75]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1217253c23csm128074981c88.9.2025.12.30.12.35.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 12:35:40 -0800 (PST) From: Tomas Borquez To: Jonathan Cameron , Greg Kroah-Hartman , Lars-Peter Clausen , Michael Hennerich Cc: David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, linux-staging@lists.linux.dev, Tomas Borquez Subject: [PATCH v2 5/6] staging: iio: ad9832: convert to iio channels and ext_info attrs Date: Tue, 30 Dec 2025 17:34:58 -0300 Message-ID: <20251230203459.28935-6-tomasborquez13@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251230203459.28935-1-tomasborquez13@gmail.com> References: <20251230203459.28935-1-tomasborquez13@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Convert ad9832 from sysfs attributes to standard channel interface using a single IIO_ALTCURRENT channel with ext_info attributes, as this device is a current source DAC with one output. Signed-off-by: Tomas Borquez --- drivers/staging/iio/frequency/ad9832.c | 278 +++++++++++++++++++------ 1 file changed, 220 insertions(+), 58 deletions(-) diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/f= requency/ad9832.c index aa78973c3a3c..47b41b9eb14f 100644 --- a/drivers/staging/iio/frequency/ad9832.c +++ b/drivers/staging/iio/frequency/ad9832.c @@ -20,6 +20,7 @@ #include #include #include +#include =20 #include #include @@ -64,6 +65,7 @@ #define AD9832_CLR BIT(11) #define AD9832_FREQ_BITS 32 #define AD9832_PHASE_BITS 12 +#define AD9832_2PI_URAD 6283185UL #define AD9832_CMD_MSK GENMASK(15, 12) #define AD9832_ADD_MSK GENMASK(11, 8) #define AD9832_DAT_MSK GENMASK(7, 0) @@ -75,6 +77,12 @@ * @ctrl_fp: cached frequency/phase control word * @ctrl_ss: cached sync/selsrc control word * @ctrl_src: cached sleep/reset/clr word + * @freq: cached frequencies + * @freq_sym: cached frequency symbol selection + * @phase: cached phases + * @phase_sym: cached phase symbol selection + * @output_en: cached output enable state + * @pinctrl_en: cached pinctrl enable state * @xfer: default spi transfer * @msg: default spi message * @freq_xfer: tuning word spi transfer @@ -92,6 +100,12 @@ struct ad9832_state { unsigned short ctrl_fp; unsigned short ctrl_ss; unsigned short ctrl_src; + u32 freq[2]; + bool freq_sym; + u32 phase[4]; + u32 phase_sym; + bool output_en; + bool pinctrl_en; struct spi_transfer xfer; struct spi_message msg; struct spi_transfer freq_xfer[4]; @@ -110,7 +124,7 @@ struct ad9832_state { } __aligned(IIO_DMA_MINALIGN); }; =20 -static unsigned long ad9832_calc_freqreg(unsigned long mclk, unsigned long= fout) +static unsigned long ad9832_calc_freqreg(unsigned long mclk, u32 fout) { unsigned long long freqreg =3D (u64)fout * (u64)((u64)1L << AD9832_FREQ_BITS); @@ -118,19 +132,33 @@ static unsigned long ad9832_calc_freqreg(unsigned lon= g mclk, unsigned long fout) return freqreg; } =20 -static int ad9832_write_frequency(struct ad9832_state *st, - unsigned int addr, unsigned long fout) +static ssize_t ad9832_write_frequency(struct iio_dev *indio_dev, + uintptr_t private, + struct iio_chan_spec const *chan, + const char *buf, size_t len) { + struct ad9832_state *st =3D iio_priv(indio_dev); unsigned long clk_freq; unsigned long regval; u8 regval_bytes[4]; u16 freq_cmd; + u32 fout, addr; + int ret; =20 - clk_freq =3D clk_get_rate(st->mclk); + if (private > 1) + return -EINVAL; + + addr =3D (private =3D=3D 0) ? AD9832_FREQ0HM : AD9832_FREQ1HM; + + ret =3D kstrtou32(buf, 10, &fout); + if (ret) + return ret; =20 + clk_freq =3D clk_get_rate(st->mclk); if (!clk_freq || fout > (clk_freq / 2)) return -EINVAL; =20 + guard(mutex)(&st->lock); regval =3D ad9832_calc_freqreg(clk_freq, fout); put_unaligned_be32(regval, regval_bytes); =20 @@ -142,32 +170,102 @@ static int ad9832_write_frequency(struct ad9832_stat= e *st, FIELD_PREP(AD9832_DAT_MSK, regval_bytes[i])); } =20 - return spi_sync(st->spi, &st->freq_msg); + ret =3D spi_sync(st->spi, &st->freq_msg); + if (ret) + return ret; + + st->freq[private] =3D fout; + + return len; +} + +static ssize_t ad9832_read_frequency(struct iio_dev *indio_dev, + uintptr_t private, + struct iio_chan_spec const *chan, + char *buf) +{ + struct ad9832_state *st =3D iio_priv(indio_dev); + u32 val; + + if (private > 1) + return -EINVAL; + + guard(mutex)(&st->lock); + val =3D st->freq[private]; + + return sysfs_emit(buf, "%u\n", val); } =20 -static int ad9832_write_phase(struct ad9832_state *st, - unsigned long addr, unsigned long phase) +static const u32 ad9832_phase_addr[] =3D { + AD9832_PHASE0H, AD9832_PHASE1H, AD9832_PHASE2H, AD9832_PHASE3H +}; + +static ssize_t ad9832_write_phase(struct iio_dev *indio_dev, + uintptr_t private, + struct iio_chan_spec const *chan, + const char *buf, size_t len) { + struct ad9832_state *st =3D iio_priv(indio_dev); u8 phase_bytes[2]; u16 phase_cmd; + u32 phase_urad, phase; + int val, val2, ret; =20 - if (phase >=3D BIT(AD9832_PHASE_BITS)) + if (private >=3D ARRAY_SIZE(ad9832_phase_addr)) return -EINVAL; =20 - put_unaligned_be16(phase, phase_bytes); + ret =3D iio_str_to_fixpoint(buf, 100000, &val, &val2); + if (ret) + return ret; + + if (val < 0 || val2 < 0) + return -EINVAL; + + phase_urad =3D val * MICRO + val2; + if (phase_urad >=3D AD9832_2PI_URAD) + return -EINVAL; =20 + /* Convert microradians to 12-bit phase register value (0 to 4095) */ + phase =3D ((u64)phase_urad << AD9832_PHASE_BITS) / AD9832_2PI_URAD; + + guard(mutex)(&st->lock); + put_unaligned_be16(phase, phase_bytes); for (int i =3D 0; i < ARRAY_SIZE(phase_bytes); i++) { phase_cmd =3D (i % 2 =3D=3D 0) ? AD9832_CMD_PHA8BITSW : AD9832_CMD_PHA16= BITSW; =20 st->phase_data[i] =3D cpu_to_be16(FIELD_PREP(AD9832_CMD_MSK, phase_cmd) | - FIELD_PREP(AD9832_ADD_MSK, addr - i) | + FIELD_PREP(AD9832_ADD_MSK, ad9832_phase_addr[private] - i) | FIELD_PREP(AD9832_DAT_MSK, phase_bytes[i])); } =20 - return spi_sync(st->spi, &st->phase_msg); + ret =3D spi_sync(st->spi, &st->phase_msg); + if (ret) + return ret; + + st->phase[private] =3D phase; + + return len; } =20 -static ssize_t ad9832_write(struct device *dev, struct device_attribute *a= ttr, +static ssize_t ad9832_read_phase(struct iio_dev *indio_dev, + uintptr_t private, + struct iio_chan_spec const *chan, + char *buf) +{ + struct ad9832_state *st =3D iio_priv(indio_dev); + u32 phase_urad; + + if (private >=3D ARRAY_SIZE(ad9832_phase_addr)) + return -EINVAL; + + guard(mutex)(&st->lock); + phase_urad =3D ((u64)st->phase[private] * AD9832_2PI_URAD) >> AD9832_PHAS= E_BITS; + + return sysfs_emit(buf, "%u.%06u\n", phase_urad / (u32)MICRO, phase_urad %= (u32)MICRO); +} + +static ssize_t ad9832_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t len) { struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); @@ -181,25 +279,7 @@ static ssize_t ad9832_write(struct device *dev, struct= device_attribute *attr, return ret; =20 guard(mutex)(&st->lock); - switch ((u32)this_attr->address) { - case AD9832_FREQ0HM: - case AD9832_FREQ1HM: - ret =3D ad9832_write_frequency(st, this_attr->address, val); - return ret ?: len; - case AD9832_PHASE0H: - case AD9832_PHASE1H: - case AD9832_PHASE2H: - case AD9832_PHASE3H: - ret =3D ad9832_write_phase(st, this_attr->address, val); - return ret ?: len; - case AD9832_PINCTRL_EN: - st->ctrl_ss &=3D ~AD9832_SELSRC; - st->ctrl_ss |=3D FIELD_PREP(AD9832_SELSRC, val ? 0 : 1); - - st->data =3D cpu_to_be16(FIELD_PREP(AD9832_CMD_MSK, AD9832_CMD_SYNCSELSR= C) | - st->ctrl_ss); - ret =3D spi_sync(st->spi, &st->msg); - return ret ?: len; + switch (this_attr->address) { case AD9832_FREQ_SYM: if (val !=3D 1 && val !=3D 0) return -EINVAL; @@ -209,7 +289,11 @@ static ssize_t ad9832_write(struct device *dev, struct= device_attribute *attr, st->data =3D cpu_to_be16(FIELD_PREP(AD9832_CMD_MSK, AD9832_CMD_FPSELECT)= | st->ctrl_fp); ret =3D spi_sync(st->spi, &st->msg); - return ret ?: len; + if (ret) + return ret; + + st->freq_sym =3D val; + break; case AD9832_PHASE_SYM: if (val > 3) return -EINVAL; @@ -220,8 +304,15 @@ static ssize_t ad9832_write(struct device *dev, struct= device_attribute *attr, st->data =3D cpu_to_be16(FIELD_PREP(AD9832_CMD_MSK, AD9832_CMD_FPSELECT)= | st->ctrl_fp); ret =3D spi_sync(st->spi, &st->msg); - return ret ?: len; + if (ret) + return ret; + + st->phase_sym =3D val; + break; case AD9832_OUTPUT_EN: + if (val !=3D 1 && val !=3D 0) + return -EINVAL; + if (val) st->ctrl_src &=3D ~(AD9832_RESET | AD9832_SLEEP | AD9832_CLR); else @@ -230,42 +321,111 @@ static ssize_t ad9832_write(struct device *dev, stru= ct device_attribute *attr, st->data =3D cpu_to_be16(FIELD_PREP(AD9832_CMD_MSK, AD9832_CMD_SLEEPRESC= LR) | st->ctrl_src); ret =3D spi_sync(st->spi, &st->msg); - return ret ?: len; + if (ret) + return ret; + + st->output_en =3D val; + break; + case AD9832_PINCTRL_EN: + if (val !=3D 1 && val !=3D 0) + return -EINVAL; + + st->ctrl_ss &=3D ~AD9832_SELSRC; + st->ctrl_ss |=3D FIELD_PREP(AD9832_SELSRC, !val); + + st->data =3D cpu_to_be16(FIELD_PREP(AD9832_CMD_MSK, AD9832_CMD_SYNCSELSR= C) | + st->ctrl_ss); + ret =3D spi_sync(st->spi, &st->msg); + if (ret) + return ret; + + st->pinctrl_en =3D val; + break; default: return -ENODEV; } + + return len; } =20 -static IIO_DEVICE_ATTR(out_altvoltage0_frequency0, 0200, NULL, ad9832_writ= e, AD9832_FREQ0HM); -static IIO_DEVICE_ATTR(out_altvoltage0_frequency1, 0200, NULL, ad9832_writ= e, AD9832_FREQ1HM); +static ssize_t ad9832_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); + struct ad9832_state *st =3D iio_priv(indio_dev); + struct iio_dev_attr *this_attr =3D to_iio_dev_attr(attr); =20 -static IIO_DEVICE_ATTR(out_altvoltage0_frequencysymbol, 0200, NULL, ad9832= _write, AD9832_FREQ_SYM); -static IIO_CONST_ATTR(out_altvoltage0_frequency_scale, "1"); /* 1Hz */ + guard(mutex)(&st->lock); + switch (this_attr->address) { + case AD9832_FREQ_SYM: + return sysfs_emit(buf, "%u\n", st->freq_sym); + case AD9832_PHASE_SYM: + return sysfs_emit(buf, "%u\n", st->phase_sym); + case AD9832_OUTPUT_EN: + return sysfs_emit(buf, "%u\n", st->output_en); + case AD9832_PINCTRL_EN: + return sysfs_emit(buf, "%u\n", st->pinctrl_en); + default: + return -ENODEV; + } +} =20 -static IIO_DEVICE_ATTR(out_altvoltage0_phase0, 0200, NULL, ad9832_write, A= D9832_PHASE0H); -static IIO_DEVICE_ATTR(out_altvoltage0_phase1, 0200, NULL, ad9832_write, A= D9832_PHASE1H); -static IIO_DEVICE_ATTR(out_altvoltage0_phase2, 0200, NULL, ad9832_write, A= D9832_PHASE2H); -static IIO_DEVICE_ATTR(out_altvoltage0_phase3, 0200, NULL, ad9832_write, A= D9832_PHASE3H); +#define AD9832_CHAN_FREQ(_name, _select) { \ + .name =3D _name, \ + .write =3D ad9832_write_frequency, \ + .read =3D ad9832_read_frequency, \ + .private =3D _select, \ + .shared =3D IIO_SEPARATE, \ +} + +#define AD9832_CHAN_PHASE(_name, _select) { \ + .name =3D _name, \ + .write =3D ad9832_write_phase, \ + .read =3D ad9832_read_phase, \ + .private =3D _select, \ + .shared =3D IIO_SEPARATE, \ +} =20 -static IIO_DEVICE_ATTR(out_altvoltage0_phasesymbol, 0200, NULL, ad9832_wri= te, AD9832_PHASE_SYM); -static IIO_CONST_ATTR(out_altvoltage0_phase_scale, "0.0015339808"); /* 2PI= /2^12 rad */ +static const struct iio_chan_spec_ext_info ad9832_ext_info[] =3D { + AD9832_CHAN_FREQ("frequency0", 0), + AD9832_CHAN_FREQ("frequency1", 1), + AD9832_CHAN_PHASE("phase0", 0), + AD9832_CHAN_PHASE("phase1", 1), + AD9832_CHAN_PHASE("phase2", 2), + AD9832_CHAN_PHASE("phase3", 3), + { } +}; =20 -static IIO_DEVICE_ATTR(out_altvoltage0_pincontrol_en, 0200, NULL, ad9832_w= rite, AD9832_PINCTRL_EN); -static IIO_DEVICE_ATTR(out_altvoltage0_out_enable, 0200, NULL, ad9832_writ= e, AD9832_OUTPUT_EN); +static const struct iio_chan_spec ad9832_channels[] =3D { + { + .type =3D IIO_ALTCURRENT, + .output =3D 1, + .indexed =3D 1, + .channel =3D 0, + .ext_info =3D ad9832_ext_info, + }, +}; + +static IIO_DEVICE_ATTR(out_altcurrent0_frequency_symbol, 0644, + ad9832_show, ad9832_store, AD9832_FREQ_SYM); +static IIO_DEVICE_ATTR(out_altcurrent0_phase_symbol, 0644, + ad9832_show, ad9832_store, AD9832_PHASE_SYM); +static IIO_DEVICE_ATTR(out_altcurrent0_enable, 0644, + ad9832_show, ad9832_store, AD9832_OUTPUT_EN); + +/* + * TODO: Convert to DT property when graduating from staging. + * Pin control configuration depends on hardware wiring. + */ +static IIO_DEVICE_ATTR(out_altcurrent0_pincontrol_en, 0644, + ad9832_show, ad9832_store, AD9832_PINCTRL_EN); =20 static struct attribute *ad9832_attributes[] =3D { - &iio_dev_attr_out_altvoltage0_frequency0.dev_attr.attr, - &iio_dev_attr_out_altvoltage0_frequency1.dev_attr.attr, - &iio_const_attr_out_altvoltage0_frequency_scale.dev_attr.attr, - &iio_dev_attr_out_altvoltage0_phase0.dev_attr.attr, - &iio_dev_attr_out_altvoltage0_phase1.dev_attr.attr, - &iio_dev_attr_out_altvoltage0_phase2.dev_attr.attr, - &iio_dev_attr_out_altvoltage0_phase3.dev_attr.attr, - &iio_const_attr_out_altvoltage0_phase_scale.dev_attr.attr, - &iio_dev_attr_out_altvoltage0_pincontrol_en.dev_attr.attr, - &iio_dev_attr_out_altvoltage0_frequencysymbol.dev_attr.attr, - &iio_dev_attr_out_altvoltage0_phasesymbol.dev_attr.attr, - &iio_dev_attr_out_altvoltage0_out_enable.dev_attr.attr, + &iio_dev_attr_out_altcurrent0_frequency_symbol.dev_attr.attr, + &iio_dev_attr_out_altcurrent0_phase_symbol.dev_attr.attr, + &iio_dev_attr_out_altcurrent0_enable.dev_attr.attr, + &iio_dev_attr_out_altcurrent0_pincontrol_en.dev_attr.attr, NULL, }; =20 @@ -310,6 +470,8 @@ static int ad9832_probe(struct spi_device *spi) indio_dev->name =3D spi_get_device_id(spi)->name; indio_dev->info =3D &ad9832_info; indio_dev->modes =3D INDIO_DIRECT_MODE; + indio_dev->channels =3D ad9832_channels; + indio_dev->num_channels =3D ARRAY_SIZE(ad9832_channels); =20 /* Setup default messages */ st->xfer.tx_buf =3D &st->data; --=20 2.43.0 From nobody Sun Feb 8 01:34:05 2026 Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EBE0D2BDC3D for ; Tue, 30 Dec 2025 20:35:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126946; cv=none; b=Mg2nKYbDJZQthWmEaUoECxO5X4FrUiLBgYJvkzwwLuHoWZMm/SFn4jQ+4yH6ejcpT47StDuIcUPA+odQ11Chnb+0G+qjwQFOlpkh/CtJmAL1nkD9zMOGpkaIZeKqLbMlKCfKe866Cn80VxW30SVdse0wjOXo3wtuenoqGE3h4cQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767126946; c=relaxed/simple; bh=Jtdn53sO5xTyxl4ArPEzfhAa7SYwkzbyNV1kgWEy5K0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NYR19SDFsMdCbTl4rUWesiDl9RYKxFj3rcx6FFkIQEhcdR8Zbk+8OryBweyccs3yuYL04VeNjwN8bBisesYwj/Mf7tsmBsceRMYrQOO9RWHNSsDzaFAiBLZWykx58uM0Ca9qWiy0iFLbjGUYmKT56d5pkZIft70UOKQxC2ExLMI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YMV6p12K; arc=none smtp.client-ip=209.85.210.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YMV6p12K" Received: by mail-pf1-f195.google.com with SMTP id d2e1a72fcca58-7b8e49d8b35so12670644b3a.3 for ; Tue, 30 Dec 2025 12:35:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767126944; x=1767731744; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+OOVo27sMdHzajJrTWUzpISPZpC3vx0/WhHb1JyWK/M=; b=YMV6p12KC97dqv72uP1a31TJwK+8XOJJFkTsrk/w0Mw19pxkjsco3MwwJzOsA1bSsa DZq2eIj46wNHMDhvl+shcDXhG4f77zJ5iLVXeVDNmTEpFk+3qkZ2QNaYjCs2ndsww60v yKj+lndXtvAd+lsEFW2gK4ReluQYu9t1Y8gZNplSLhOIvu/XWIoee7ybNIr3LgDcUBO9 XYLSirI+CGqCilD63SWybF0cYU23GIEVkqWVAl8DRXtqwb0KvmLEKokENgsTr4xZ4A5X SpNBN7ihbFtEAw4PCzhp7ci9GeMVUisluVupwLe5HF9ErPSL5xFNF+vAitKgiLjhEy9e O04w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767126944; x=1767731744; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+OOVo27sMdHzajJrTWUzpISPZpC3vx0/WhHb1JyWK/M=; b=Rg/vHJwRMxFrKAtvRHRk48+4lFFRctGpByodGBa2oQa3o4BgQqmWXwmAG34qIMP2cn n/uPQEh2yaSdm+NgHQ+MmM5EJRQLdxObMJC2FVPVsRrVDTOFZD1+MtsJ42v7A3QAtKvx y8XU/kTL9X852TGTenq+7w7+rwunMEssvDCrpdB6cVvvh+cjcj77T/42oYlFOCZqS9N0 AzeykwXsrFFGzKQbO0RCMm4Ar/1zVsJQsF8nLkfy8j4iU3xKN4Ja7WKWbS0VVA5dTaZK YE6yqWUNN6xg677bmTo+P83oGJ4kQFdltwmWwq5i0ToLo2FKXXXPU3g6T/yQUE+qI9lF A0yw== X-Forwarded-Encrypted: i=1; AJvYcCV0v4j/7VYIFit/hvDAc47U3OSHCQRNxApb/AjwiAp/Ja8IbF3IYRdg6SCIM6Q9yQjseJK/1AU4GiXyLRM=@vger.kernel.org X-Gm-Message-State: AOJu0Yx69QcSLmkueRpRs43PAXwvnnusfiayjpTkwHETGZ7omam6gF+i CTcO+02QXykak+gzpiJ0EObQI/POuosis7qgXCT9z+3T2guqQ75Sfa3O X-Gm-Gg: AY/fxX5ZkA1CNJHbZH9JEykSQiFiLBn6tZB8rivogEYaZXJVB5fSOCG+NBvwxriWaJ7 sR83rgB0JtFbP6vBcpPW5zkqb1wAeuxMnu+lKrJBZU5Qu+fuWBUmbOojY6F8Vt8YjhlBIeqhjc6 I9KCdYlTywGp0mPPB+ltMx2NBWvmo9OPvwfds5G4E8UycG02vqr0LzNsisOVQaG4ZVPy/j2WrMJ MELQkG3qisPRPNF4yJ2kQPph0eJs/6jVscYXrCgWFzzMZ9g8tHGGf1ZewpPlkn5paZtLZYzECdZ e7ztuiIp4+UPBGI3iWX6DPmd9mcgpPzLQvzNkfWdxNBubZwDGAtjjFFdOx9i7TAEu64rAharmhz Wkb6YzYlB8pz+KJGY+MLlN0tDXRtIiyEbFjh33H6HSZXNNesiCTT+9CE7BuBqGB0++KHgxwobh5 SR6+B6duVkMUFplievPQHaL+lc0PShrFIvv8pyuB0sO50uqetVs38FXvhMxQ0lneLbXVrDIOvG6 PpskXtzOh1RUhpOw71Uue9HVep9iKSFSpEVSAmPIgUHSXUguLg4aPNV+aFxaxBbjDykl5Cu X-Google-Smtp-Source: AGHT+IEf48DdE7VsXtXnbFcBm78wkH4EF5qNQu7VPO5lx/tFK8WMwAZgL/85b3tX2lJle4DBsUCaRg== X-Received: by 2002:a05:7022:7e8e:b0:11a:c387:1357 with SMTP id a92af1059eb24-121722ac203mr31008621c88.16.1767126943997; Tue, 30 Dec 2025 12:35:43 -0800 (PST) Received: from Lewboski.localdomain ([181.191.143.75]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1217253c23csm128074981c88.9.2025.12.30.12.35.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Dec 2025 12:35:43 -0800 (PST) From: Tomas Borquez To: Jonathan Cameron , Greg Kroah-Hartman , Lars-Peter Clausen , Michael Hennerich Cc: David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org, linux-staging@lists.linux.dev, Tomas Borquez Subject: [PATCH v2 6/6] staging: iio: ad9832: add sysfs documentation Date: Tue, 30 Dec 2025 17:34:59 -0300 Message-ID: <20251230203459.28935-7-tomasborquez13@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251230203459.28935-1-tomasborquez13@gmail.com> References: <20251230203459.28935-1-tomasborquez13@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add sysfs ABI documentation for the AD9832/AD9835 Direct Digital Synthesizer chips, documenting frequency, phase, output control, and pin control attributes. Signed-off-by: Tomas Borquez --- .../iio/Documentation/sysfs-bus-iio-frequency | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 drivers/staging/iio/Documentation/sysfs-bus-iio-frequen= cy diff --git a/drivers/staging/iio/Documentation/sysfs-bus-iio-frequency b/dr= ivers/staging/iio/Documentation/sysfs-bus-iio-frequency new file mode 100644 index 000000000000..10627c19bdb7 --- /dev/null +++ b/drivers/staging/iio/Documentation/sysfs-bus-iio-frequency @@ -0,0 +1,40 @@ +What: /sys/bus/iio/devices/iio:deviceX/out_altcurrentY_frequencyZ +KernelVersion: 6.19 +Contact: linux-iio@vger.kernel.org +Description: + Frequency in Hz for symbol Z of channel Y. The active + frequency symbol is selected via out_altcurrentY_frequency_symbol. + +What: /sys/bus/iio/devices/iio:deviceX/out_altcurrentY_phaseZ +KernelVersion: 6.19 +Contact: linux-iio@vger.kernel.org +Description: + Phase offset in radians for symbol Z of channel Y. Valid range + is 0 to 2*PI (exclusive). The active phase symbol is selected + via out_altcurrentY_phase_symbol. + +What: /sys/bus/iio/devices/iio:deviceX/out_altcurrentY_frequency_symbol +KernelVersion: 6.19 +Contact: linux-iio@vger.kernel.org +Description: + Selects which frequency symbol is active for channel Y. + +What: /sys/bus/iio/devices/iio:deviceX/out_altcurrentY_phase_symbol +KernelVersion: 6.19 +Contact: linux-iio@vger.kernel.org +Description: + Selects which phase symbol is active for channel Y. + +What: /sys/bus/iio/devices/iio:deviceX/out_altcurrentY_enable +KernelVersion: 6.19 +Contact: linux-iio@vger.kernel.org +Description: + Enables (1) or disables (0) the output for channel Y. + +What: /sys/bus/iio/devices/iio:deviceX/out_altcurrentY_pincontrol_en +KernelVersion: 6.19 +Contact: linux-iio@vger.kernel.org +Description: + Enables (1) or disables (0) hardware pin control for frequency + and phase symbol selection on channel Y. When enabled, external + pins control symbol selection instead of software. --=20 2.43.0