From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f182.google.com (mail-oi1-f182.google.com [209.85.167.182]) (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 14B51291C34 for ; Fri, 27 Jun 2025 23:41:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067688; cv=none; b=frb0AwW7LEPfLJc3xV1sdMCmSMCmZrGEL3X9JaWLNFMDszK7Bxxqyml5QRmLZpJnLcTaElvMH9ZXe92ekkRYANnFoWCvo0erBxt+W+LIeC53dB9qomjAcMhp/uXpETcqt6cDTOaeB+OUB9iRYVFFPMMD4nN/OFYg+n3tvDReIn0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067688; c=relaxed/simple; bh=0yYId7CmKo/+nPN29+4m0T9CC1yhegBE9FCPgm6tkyc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OAIovYMYexg+s0DtDMAxqUBCZbPXbJ0M5kwRlvN0UD37keNsvMQaN9879oIzlHwIbJxEbHjUJmJh/A+qH+8ZUocl3Tm/qkddoL2P8y6m8XjdMN0lz+INrJHDH8UDojavbAWehU8UDluMkM14ULEGTRRe7Tz/3REypS6wQdo3uz4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=Ehz02Agl; arc=none smtp.client-ip=209.85.167.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="Ehz02Agl" Received: by mail-oi1-f182.google.com with SMTP id 5614622812f47-4067ac8f6cdso322783b6e.2 for ; Fri, 27 Jun 2025 16:41:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067686; x=1751672486; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=xaL2xzco1uO7UeMG0BpmNABPZ9hJVHgxxIybCcO0RO8=; b=Ehz02AglaaqgD8918b18JM8JM6ttx/innhaR0RLjDSkjhUs2aOh2CKIadCv5/uToQe cxfz1nNfY4dCjTAxCfNj5xALpbO5EedD4Z8xqs0/hcM0R5dP3eAn532U4Jz1EqvaannE okCMNvfPbOZMQ3asmIJnaZf132RE32OUzmfWNw0x+2llQbweVqYlMvJrs52rLIinBfqj VTcDC3is5rx0gVj1qGO+XAIe9pawgeoQ3CAiH1bRXKKOksgL9+y6IJ3uO3yRtWXFBwrR BJE6KXySDL0YF1HkGEYz9DQhsKT+357W4WOzsmEcKY2hP02O6C2Yjj0azsY7nPDWrFyX Aepw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067686; x=1751672486; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xaL2xzco1uO7UeMG0BpmNABPZ9hJVHgxxIybCcO0RO8=; b=my74iIwyDpysoOsuezX3o/B5WPTn55LtxM+Sz4ZMVruDtexqZ5SCDK9SZG6l10JGCX letQuj21d/g1ckygeIHJfv7jf3KvwNQfjL1gxzFoFM0GXX20X63ceb4paUUH1LaiAv2R KKboD5UgohqXPzXTH/zBhUwWCw54b56t2J8NEFK3JDgt46Jr/fZLL/FSt/kT+QzZxbbf kANDFma02pHDMZg4iPLwkOZhLsyCWvq+/2+8rMyYb2QYrmIpXz9IoeLqn0k3oT5MWQYt S0+A9RHmrzWnXCORc0dS4CA4L7i6lndUTOxRzq5aXPEX34naZzrRnF4gsPSz5HOAm220 j0Qg== X-Forwarded-Encrypted: i=1; AJvYcCWbkBHY4rCIWYZuv8Swk2Gm6rXEHlNKIyrivoId4LEh61pJTRHqwOB13Xdf36YnCP3FOw1UKNc2vz+xGkk=@vger.kernel.org X-Gm-Message-State: AOJu0Yw59S5YkWFHVTGbfmRqz9gLd5Dy1TrjGzkbzM9E5n5k4oymyjdM eVRj19M3M1svMPlXPM+NfdQQEUJb6o2eiG/4iEVD1co3vAIQFGlGVrIJfRh8LyBzKtc= X-Gm-Gg: ASbGncstyWrcYMIzYhoECr7sydlm4AK6s4sS2cT1PR5APHfYNg2qhfBf3SFq4/cA2ax uWT1hK6UCz4ATpRLv1eoSQuMCDBnPydq6dheekBD5F03jd5XiurWLWwXdNUFbXsrpPYZ+0RgM79 A/Oni+FIHbUPDN0UXo6ms5OHvxa2B6/ij0SDRGgBOQ3qeajIOVzp5izqLzOitYm6VLS+vaDIaEX 80v+UKoYyN7me0CFX4vbYPuzfXfPAKSUdDadKodmS3sHUU1MaNbWPCxCUsCWwp1O1cVc55PlRXe fg6KkGgkOV69g8Q9TSP1OezxeznSeXwQ8YY9sK6QH9jKPYNMDCZa7mZle0liZWa7fYc= X-Google-Smtp-Source: AGHT+IGO6lAxDYiAUSvgyLFtpRPPATaclvQB+pcm3lsuX6smcfmglueV4fyHhGV2aVGGAamMVe90Nw== X-Received: by 2002:a05:6808:80c9:b0:3f7:d16c:e283 with SMTP id 5614622812f47-40b33c78e69mr4539437b6e.11.1751067686119; Fri, 27 Jun 2025 16:41:26 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:24 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:39:57 -0500 Subject: [PATCH v2 01/11] iio: adc: ad_sigma_delta: don't overallocate scan buffer Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-1-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1022; i=dlechner@baylibre.com; h=from:subject:message-id; bh=0yYId7CmKo/+nPN29+4m0T9CC1yhegBE9FCPgm6tkyc=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXyvZJrVOeLE2k6/aVVIHrXp2W07Q3xZQASTEO QVFiFjP/faJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8r2QAKCRDCzCAB/wGP wB/aB/wJwURJXvafTrvrK8ufRZppvAXSjMZBuIT85AEXQRrU0MUsYobunJ5v2lPFVC8SvR8a5Xz KlyQBuKbLk5QMcP8Qc4M+TiQhNuCmzWOnzwAvhzOLEVAPr1uxcVYloODK0D01eXYKNfvOHyeudz j/VbzqO8gS+tukC9Pyx8g9IeF4JcsdVx9tjv0hUt8pDM7vH19rFaiSeicQgWOEF4KeLRYPLDjwF tZ5QGM53wWGpTtDt5r0SEzd8+orrafRaOMCQCZlT1VcXvHkgqZHwRl1k+bHXfN2uY0qS0E+MHCg RBoRQuP5eZO8K+8iHYxyZ6z1UcMstYROq0xH6kqND0vznmoE X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Fix overallocating the size of the scan buffer by converting bits to bytes. The size is meant to be in bytes, so scanbits needs to be divided by 8. Signed-off-by: David Lechner --- drivers/iio/adc/ad_sigma_delta.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_de= lta.c index 4c5f8d29a559fea7226b84141bcb148fb801f62c..6b3ef7ef403e00804abeb81025e= d293b188e492b 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -489,7 +489,7 @@ static int ad_sd_buffer_postenable(struct iio_dev *indi= o_dev) return ret; } =20 - samples_buf_size =3D ALIGN(slot * indio_dev->channels[0].scan_type.storag= ebits, 8); + samples_buf_size =3D ALIGN(slot * indio_dev->channels[0].scan_type.storag= ebits / 8, 8); samples_buf_size +=3D sizeof(int64_t); samples_buf =3D devm_krealloc(&sigma_delta->spi->dev, sigma_delta->sample= s_buf, samples_buf_size, GFP_KERNEL); --=20 2.43.0 From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f171.google.com (mail-oi1-f171.google.com [209.85.167.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 EB0A8292933 for ; Fri, 27 Jun 2025 23:41:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067689; cv=none; b=Mu1BNnGRFHxCIRBg68VixrE0EKscLeEfyG5ZRMdcIzsNr0lSPx/zFgxkWX6TFyknlslZSkZFJUIt3z6nxldCfv//pvUGgCSDrAjZIBjxVMlG4n7WLcGbBuA0f74CC2in+tP3vjffb3YnWmHbD27gWlGV7DS2fT+535OEEUdTgNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067689; c=relaxed/simple; bh=1qU2uE7FMPflcU+JZ/SdmPS+Hm6dJMEmmE25dOPvZxs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aBm96cn1aeH2hAtVd+TPAd/6VuN6ysXuA2aQYaV1JG6xhHGfkygZe9yJqO0YR8L1LVzo1A2vtbWboUUx0aoloBXUjSXMCoZ/SoswSjbBVHIuWDR1CB00B7OamaFOIue4YDUtuViuDFJIMpt8Mi6brEcLHL/S+pW8qbQAdL9MUDE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=t1ZEdIQ+; arc=none smtp.client-ip=209.85.167.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="t1ZEdIQ+" Received: by mail-oi1-f171.google.com with SMTP id 5614622812f47-408d7e2b040so1745580b6e.2 for ; Fri, 27 Jun 2025 16:41:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067687; x=1751672487; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=1w9rUjmeh/tPGSpT8Xheslz7aDCsq9V40QAkh/yUzZo=; b=t1ZEdIQ+t54YavobRCAu2uhy0BDkTib+dPQdBK9omNAKDXZLsZvip3f+I5qQAbMLan kV5xzEtFbP7fHixdMl4zqfcvLfkYY+CozGFh3UO/OdL2fkzbpNNanscfn3skgFuy3rAe l261tQ6XSThg8RfLu/f5bg0Xvicb+b0mHl8VDbQIB3qIj3clomfZn41w3N2jvFZ8LLzK avlqvs5Yy2e9ckei0pwTHHh3Skm7+pExLYbCued9nyiwnemFrIjGVwsSeoZ9UfVkYk0G SBtJxgU+OnBVq++bH1nm6ZmRt9wS6+ztGr5Agi0KGHIKCpAAZYc/30UzEeJnDiH697xx uk4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067687; x=1751672487; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1w9rUjmeh/tPGSpT8Xheslz7aDCsq9V40QAkh/yUzZo=; b=GKMS+8+d48fukfQoC307dlo6ro+6YQNaAxGN9jK5qn5TW4PiBkOJ6q8oR1wxiBmYQv O37Hh3eH1mD8gyHLogc1+t74d8Hmf+Mj9YlZjRp5WSIs3ipZ7aQg0o4RdubJBNrcO6K8 5wKHTa+nnk3K3cg9+p0yEcXD5vgB7m7zu95W9s3dTbGpmbafP1vCyNtAc3wOgsq7Uwok DTXILsydtyvkft1J4TdLNv/kr9MU7qs2OdKlsSeozSUP0JLM1Hl+TfFjc38iToW9lBef lI4ufglAGANZQLU6JaqulR03zxhyw3guOoez9wpGffqeZyY9cfd7SM5TsVh1qs7iqxXS VuhA== X-Forwarded-Encrypted: i=1; AJvYcCUBUdKBdd82Gl3GuFmkaR+rhlBf8p8NdUNyUZx9yjBdogHYf94Yto8paWXBerf1RRRnGYAgMi37f17hvSI=@vger.kernel.org X-Gm-Message-State: AOJu0YwhC5w1kolhJUmwngk5gy+VIys9xq3bYfiXSvP6dEEkPXx/gpjB r/wuhTLqeP+tBY4HCRdCFM1Lk5E6ThB7TiJEhhiKwBv1gQxrY6Rinzy0W4bFynSQndY= X-Gm-Gg: ASbGncvpO8TeufnEQR0yvDS3nxzXf3Q7oOKqoDSEKQVy6UVrZY+emL+AvDickyrFtLj 8CQmxv7BFqtQuOoDN5aucY3Bmn/bxmHXeJ+DQl0WykLIOO1T0MFdE/dXJediKi2Qxe25UaYHhuv dgXTVX8qQ2fnUcyJYoqlQZ1lbTeCmUqvHS2D0HPJC2JR1RIqlcGMsMIIGkJJ5qntrcF0lg5Rssz 6crIFc3Rqj3hG1VGD82WXQAzVpvSswXGvOgnqbfmyGlS9h3YQAqTdxZFYl8/f1IdqQ5/RKsaX0o +ih2Jcp5c5bkNQnWjY9Vm3Zs/zZZdjowixW15rFAZMdIxHBGgMO92cgw+nLGIyP0AyQ= X-Google-Smtp-Source: AGHT+IFGqNmdvk19sYRNlr0Ag8IWfIMzxDLAs504IdyiRFRTHd2gDhzVJn/8D/7lUVVE13p2ujp4PA== X-Received: by 2002:a05:6808:80c9:b0:40a:5598:7b8e with SMTP id 5614622812f47-40b33e3417dmr3339629b6e.19.1751067686976; Fri, 27 Jun 2025 16:41:26 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:26 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:39:58 -0500 Subject: [PATCH v2 02/11] iio: adc: ad_sigma_delta: sort includes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-2-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1326; i=dlechner@baylibre.com; h=from:subject:message-id; bh=1qU2uE7FMPflcU+JZ/SdmPS+Hm6dJMEmmE25dOPvZxs=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXyvgj3j9+r5A347pKRh+QHGykgQWdk3LZ6qK+ xxV64//aoiJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8r4AAKCRDCzCAB/wGP wLaAB/9d/08izETFTfMdJsftT+RbnfgPZDC3QMXAgiqIk21LWueOvfHOA2QRdmiUKkRmncf7tYI WN/cjFbuvmfrBptT4Gt/8e90cvoNMSz8J5K2CKTOLX4pKAHrKFIkJ+yAMw6vQPr9wi0hhCNaElG Kooh7Qy4e8swTxtknJasmSxulHifNRFTaPz03XM8X7aaDhJA+Y26EdOIg5RsLxcgefKOfIG2NGP tebm2xDQOcM8+ED8QtqBf/yhABEq4sgXZ9gJdA3prQUI0zwzxP679ihbcETw/MErnLkoVuh6Yxq GG+2EtFY+FQB4EKxrRDkX2KqMppHcg++RmXeWyu0yfirnO8J X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Sort includes in alphabetical order and fix grouping before we add more. Signed-off-by: David Lechner --- drivers/iio/adc/ad_sigma_delta.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_de= lta.c index 6b3ef7ef403e00804abeb81025ed293b188e492b..5cdd73160c6d6d4d9308eaa3a5a= ec14529475676 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -7,24 +7,22 @@ */ =20 #include -#include #include +#include +#include #include +#include #include #include -#include -#include +#include =20 +#include +#include #include #include -#include -#include #include +#include #include -#include - -#include - =20 #define AD_SD_COMM_CHAN_MASK 0x3 =20 --=20 2.43.0 From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f177.google.com (mail-oi1-f177.google.com [209.85.167.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 BFD3B292B2A for ; Fri, 27 Jun 2025 23:41:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067690; cv=none; b=m8M06s536RwdOLuC23I1enY/sk2eJVKmNbW0FgcZuccEcqlacwgBrlHELuccXqMze8MMqfNWhY1rowP7wWSayF+KpHOLhOiF2dWu6fso8VfyXX/v+dwP1s87UNaA9A+nWfmmwp4QlC2dL1U+JvNq7nHy6jVFK/x4gFZAwGrVmqQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067690; c=relaxed/simple; bh=FtjSefgJ38MUOtssdwwTVZxqFU2P60mzs7S3a2VVXcU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mzsE4zprhIe5DrOFAwl7Uf7zIaRxjesWxGxP51thxqo0iWs4aArMDGCsc7qsSnmLzuakhwb1zfbsMgKNsx0aHcrx8Kfag33nxCN/pEU23pnu1cJ41Kr9asNVi/TDSYHyzWIS26n0JmZuKnFrzPAOWUq57cBcxZDkTb4/Nxz5MSE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=CpRqtJD8; arc=none smtp.client-ip=209.85.167.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="CpRqtJD8" Received: by mail-oi1-f177.google.com with SMTP id 5614622812f47-408d14c7e92so323847b6e.3 for ; Fri, 27 Jun 2025 16:41:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067688; x=1751672488; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=rL6Ufncylm91/QYr6Kod6l5M+E3FlraXlz8+iem4HYU=; b=CpRqtJD8I3FaITabLXXFCXLy9UqtyHpbFzYZ2X7xRVKMyAbcSzB+A3aFkhvfrpyIUS 8A7iQWDGma334dnjrrNZas4UvR5cOqa/wYUZBqbyncbCrITOtH6h/XEVSAfGCN3jLkWk TewrmHj348mIhMA7kV3+nSVZdLdpQMTpU3k8JxkGpPEQ7atXdZ9tMVWprq9vPFluutvF K4bdXbiYfMja5FLMtnxfbmTF5SP20BiZoWwnc6xNR7jbbIpECi8uQWyfIIXz8oy866Z6 eAQ7iO0OhlZ1supEP5LlV9Mc0fgwZcC4E9aznTE6KDSSbUnGAge5Ax3JSudYm3SjutP4 RUdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067688; x=1751672488; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rL6Ufncylm91/QYr6Kod6l5M+E3FlraXlz8+iem4HYU=; b=EbRxyL/EdAXLq0MLXP1hR4yM4f/ysGyUcmRR9NQ/6pIsoapWzFUMEEN2wLv/AYgTTd sOP0+l0NwI2RTAwWZYDM9Cp8eFbGEfLe3r4FQFdu7qW4+3J83UzRqfQIGoV/AQ8JZSde i1d5EV0CTKpqjoW2GEdDyinbCIsgqDvGx+sJ1BeYku7zFHDoVup4BfeKtlQCy70R3rJP eNeaFp/Xp7n3lrcVJYCLy3YAyCgFom/FQg6ZiPcevU3Yz3RlfOysKcDAMppoWSOiWmcI wjXAXBVyKOlOM7EbLk+Uz8s+pCMiuOkNRdKaIuQDrtW7/K+Loog2wSbegBqLqz3wXMq9 cJKg== X-Forwarded-Encrypted: i=1; AJvYcCWKGs094kkO13jUi8MGb70o7QYh6xiycNKqMMNOMHUzxCHNMkxPzqR7YYcR8CDJqu+6D6kXlSDw1vlf0Qs=@vger.kernel.org X-Gm-Message-State: AOJu0YxsTYqKFCxuwiW37sz2h4MqIT6P8j6hmd9SsbP7Lu3NFyf+a15J TtkCNUxrIuwQBN4fiNygWQ4e+pNw5sICWdjDFgAqNQEKiXiwWLvtWsDuCNsY+OJq+mU= X-Gm-Gg: ASbGnct9HW8Y/FZH15ESAxoF721ZWWgJRbVQGC5QHkYt5cp5mVRxRCza5xyP3ssjUTj lUa2FOaVTfTfCOT0bHRYuJ6BJrzs4TDhvXBk01fj/EILW/UhdwSwabkgCLX2GiREEumyx3jpHV0 kAaKvjszbbVGJjdFU3+PmDw5ubVlH2lrtVOM19WhvWM5V9+ma40vHm57L+VvKJKP7lK/p2AzaAR l0Qt86vlJkMiJCjhEjOlJy8pa6PHaXKuunkZiRnBVYHIEwXhQj7fLFYt/aRCzFEo11TGknA5ZwK /OY3bWCJcj6+R9yc8rsPiupJ9dhzN69A1htUCnHyebuhr5ukfSYgXYvXGJrnZ4wbwUefVHPUJZh e5A== X-Google-Smtp-Source: AGHT+IHR03eEjSR93QjKaZGA+fwHzKuMIoLnqyT7gtlUk04SI5qr4Fi8EmUf2eK9bWFOFHHXkHTItw== X-Received: by 2002:a05:6808:13c9:b0:409:f8e:72a6 with SMTP id 5614622812f47-40b33c2c383mr4121274b6e.1.1751067687796; Fri, 27 Jun 2025 16:41:27 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:27 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:39:59 -0500 Subject: [PATCH v2 03/11] iio: adc: ad_sigma_delta: use u8 instead of uint8_t Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-3-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5301; i=dlechner@baylibre.com; h=from:subject:message-id; bh=FtjSefgJ38MUOtssdwwTVZxqFU2P60mzs7S3a2VVXcU=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXyvnjgL+AcWVVuCuh0G2vwDavgU50pexnV6KF JP4pRWUeReJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8r5wAKCRDCzCAB/wGP wBOWCACITc4y7+7dT+N6nLT0/YeUisIgoQNW7rs52NvZS9TlWHaxl/isKmF6pdjeEP7uCPvaVM4 yJlR14Kr31ezOc/vAdLWOFfiqO8kJ0f0x5mplsLsKGNF8sGBihExprPNChFem46W60vngDMX6h7 PmULjDuX+o89cz+WOONAEvJkFs19uIjMCsRy4utgGPhtD+J3m8OCNVwNqo53so6EcJTle2jG8sQ 68hxZUaTkcj8Ut8zIPWPzk0Yi0/R84mn+CNo/kbWKNah5Gdggn5TTeCrjikSYfbF73MZYPY0KDm 2BmlwPhS8v/WIRnFMPhyEqWG8xgp2FNW7BjZV2OzXTffM2cF X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Replace uint8_t with u8 in the ad_sigma_delta driver. Technically, uint8_t comes from the C standard library, while u8 is a Linux kernel type. Since we don't use the C standard library in the kernel, we should use the kernel types instead. There is also one instance where int64_t is replaced with s64. Signed-off-by: David Lechner --- drivers/iio/adc/ad_sigma_delta.c | 17 +++++++++-------- include/linux/iio/adc/ad_sigma_delta.h | 10 +++++----- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_de= lta.c index 5cdd73160c6d6d4d9308eaa3a5aec14529475676..5362157966d89cbf0e602716aaa= f0b78f3921b11 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -14,6 +14,7 @@ #include #include #include +#include #include =20 #include @@ -38,7 +39,7 @@ * @sigma_delta: The sigma delta device * @comm: New value for the communications register */ -void ad_sd_set_comm(struct ad_sigma_delta *sigma_delta, uint8_t comm) +void ad_sd_set_comm(struct ad_sigma_delta *sigma_delta, u8 comm) { /* Some variants use the lower two bits of the communications register * to select the channel */ @@ -59,7 +60,7 @@ EXPORT_SYMBOL_NS_GPL(ad_sd_set_comm, "IIO_AD_SIGMA_DELTA"= ); int ad_sd_write_reg(struct ad_sigma_delta *sigma_delta, unsigned int reg, unsigned int size, unsigned int val) { - uint8_t *data =3D sigma_delta->tx_buf; + u8 *data =3D sigma_delta->tx_buf; struct spi_transfer t =3D { .tx_buf =3D data, .len =3D size + 1, @@ -99,9 +100,9 @@ int ad_sd_write_reg(struct ad_sigma_delta *sigma_delta, = unsigned int reg, EXPORT_SYMBOL_NS_GPL(ad_sd_write_reg, "IIO_AD_SIGMA_DELTA"); =20 static int ad_sd_read_reg_raw(struct ad_sigma_delta *sigma_delta, - unsigned int reg, unsigned int size, uint8_t *val) + unsigned int reg, unsigned int size, u8 *val) { - uint8_t *data =3D sigma_delta->tx_buf; + u8 *data =3D sigma_delta->tx_buf; int ret; struct spi_transfer t[] =3D { { @@ -185,8 +186,8 @@ EXPORT_SYMBOL_NS_GPL(ad_sd_read_reg, "IIO_AD_SIGMA_DELT= A"); int ad_sd_reset(struct ad_sigma_delta *sigma_delta) { unsigned int reset_length =3D sigma_delta->info->num_resetclks; - uint8_t *buf; unsigned int size; + u8 *buf; int ret; =20 size =3D DIV_ROUND_UP(reset_length, 8); @@ -454,7 +455,7 @@ static int ad_sd_buffer_postenable(struct iio_dev *indi= o_dev) struct ad_sigma_delta *sigma_delta =3D iio_device_get_drvdata(indio_dev); unsigned int i, slot, samples_buf_size; unsigned int channel; - uint8_t *samples_buf; + u8 *samples_buf; int ret; =20 if (sigma_delta->num_slots =3D=3D 1) { @@ -488,7 +489,7 @@ static int ad_sd_buffer_postenable(struct iio_dev *indi= o_dev) } =20 samples_buf_size =3D ALIGN(slot * indio_dev->channels[0].scan_type.storag= ebits / 8, 8); - samples_buf_size +=3D sizeof(int64_t); + samples_buf_size +=3D sizeof(s64); samples_buf =3D devm_krealloc(&sigma_delta->spi->dev, sigma_delta->sample= s_buf, samples_buf_size, GFP_KERNEL); if (!samples_buf) @@ -543,7 +544,7 @@ static irqreturn_t ad_sd_trigger_handler(int irq, void = *p) struct iio_poll_func *pf =3D p; struct iio_dev *indio_dev =3D pf->indio_dev; struct ad_sigma_delta *sigma_delta =3D iio_device_get_drvdata(indio_dev); - uint8_t *data =3D sigma_delta->rx_buf; + u8 *data =3D sigma_delta->rx_buf; unsigned int transfer_size; unsigned int sample_size; unsigned int sample_pos; diff --git a/include/linux/iio/adc/ad_sigma_delta.h b/include/linux/iio/adc= /ad_sigma_delta.h index f242b285081b8d304ca25ae95337425e5842269a..5056677c9941afadc2383febbca= feb02e23a4f44 100644 --- a/include/linux/iio/adc/ad_sigma_delta.h +++ b/include/linux/iio/adc/ad_sigma_delta.h @@ -94,7 +94,7 @@ struct ad_sigma_delta { bool bus_locked; bool keep_cs_asserted; =20 - uint8_t comm; + u8 comm; =20 const struct ad_sigma_delta_info *info; unsigned int active_slots; @@ -105,7 +105,7 @@ struct ad_sigma_delta { bool status_appended; /* map slots to channels in order to know what to expect from devices */ unsigned int *slots; - uint8_t *samples_buf; + u8 *samples_buf; =20 /* * DMA (thus cache coherency maintenance) requires the @@ -114,8 +114,8 @@ struct ad_sigma_delta { * 'rx_buf' is up to 32 bits per sample + 64 bit timestamp, * rounded to 16 bytes to take into account padding. */ - uint8_t tx_buf[4] __aligned(IIO_DMA_MINALIGN); - uint8_t rx_buf[16] __aligned(8); + u8 tx_buf[4] __aligned(IIO_DMA_MINALIGN); + u8 rx_buf[16] __aligned(8); }; =20 static inline int ad_sigma_delta_set_channel(struct ad_sigma_delta *sd, @@ -177,7 +177,7 @@ static inline int ad_sigma_delta_postprocess_sample(str= uct ad_sigma_delta *sd, return 0; } =20 -void ad_sd_set_comm(struct ad_sigma_delta *sigma_delta, uint8_t comm); +void ad_sd_set_comm(struct ad_sigma_delta *sigma_delta, u8 comm); int ad_sd_write_reg(struct ad_sigma_delta *sigma_delta, unsigned int reg, unsigned int size, unsigned int val); int ad_sd_read_reg(struct ad_sigma_delta *sigma_delta, unsigned int reg, --=20 2.43.0 From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f180.google.com (mail-oi1-f180.google.com [209.85.167.180]) (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 76F3B292B59 for ; Fri, 27 Jun 2025 23:41:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067693; cv=none; b=h4sAHq0emtNzpH3KASlA8vBkkDJFC+O405ia3GQGo6H1Ou/FLY5zdOeNpkAXGE0T/6GLEzX2tug65r6GghtoPDZNpilrkW7EPJWaMU6tCzL6OmQ/AeaMWPlKnd4nSje7hcx5zCBdg8+J+f+HTaLPjvST2hSaLTV5y/omYUsKx04= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067693; c=relaxed/simple; bh=1w9k49FoTu+/FNwh8fqdJnOZWQOe3GEkbod4N9CfdFg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=g5a5rw8v6YVAmt+Ll82pHfCOGkAbgMLYgZuDH/4KtTt19HjJXase7TnD9295yeovT/KO+/4HaHkw3faQZGYz/92z7b6j0+A2DYDDBIBGO8vfjnVdJ5NJdEulGzTv/YWkt8qN5jBRr1Ql01c6jatvKVzXVA2PcfVVztDJ0hyGKCU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=AYyrBXmh; arc=none smtp.client-ip=209.85.167.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="AYyrBXmh" Received: by mail-oi1-f180.google.com with SMTP id 5614622812f47-40b1c099511so1563491b6e.0 for ; Fri, 27 Jun 2025 16:41:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067689; x=1751672489; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=aNbL5PGqFNoHzfRCAsoh2AXUDM6lXVyWkMQwcXklKjI=; b=AYyrBXmhI5Tdi5pXytgQSVzDR9M1qHo1nCBt5p/JGVVd++Hy6XRa0e32kWe0QLZnOk DjgImImk1ERN9RmI+pskjtY4ig8IaGbWNbVWyqlK9F4yTHqseP/us73j/+CICE40rBrn JmA+sVOYET5r8zlYB1ndxP+DVEhonN/oIFMnKVqjP8LXt4mxsfxXSu1+QvHc9SwYuhAe A/vSRMLHZbo5cFqXajQ5KaoxZoX9B3K9/Nr7XqUGEeOow1EWuj2fIHZJLkC+hHmykLXQ RobMhBnd5g8163ZCqOq7hVoW2YL9yUQZkKSvBWfrwmRRF7+U234Q5gJYUtKTYbzN89kO dcSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067689; x=1751672489; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aNbL5PGqFNoHzfRCAsoh2AXUDM6lXVyWkMQwcXklKjI=; b=ZsTpKwdx8MC7VeZ49NM5Scx2fmF2yJa3lDMb3pWy74E+EkDcrN1SbEhHjjZZe0g9Mz 0SX7uyhSkkivTJz+clIeKc9luoamDrnpgtrrnVHevUR6WyKDdTaToAIHcmY/HmfUzKVz Yyns3mw8O5pSmPN77VWh8G3j1+b2BJdiLbVp4BfxqzavJ7RVUc2r/PwHW2Tzvs4QPjiW OISOv4XNVeniP8h9cyx5pbN+auua4KHypd7haw/52SrttdBC7SfhWO21hfwCNLRX4EaD j+g005Fy3bK2dDxu4GDcr2CgIvzdYSsN+72yJ5NHDiUn9HQUZyFXCpUUU1SbDbl79ly5 2TOA== X-Forwarded-Encrypted: i=1; AJvYcCXHZ6sKPN5gT1Ebt5VNNtYUU9nrfD+g+woF1nbqKzT+2PypxZsEjiVrfPN+cCJeZ5lvkR9oLcjQ6tqRv28=@vger.kernel.org X-Gm-Message-State: AOJu0Yy8oot7PX/MT1/4dxyVklsJjf7vDtOHfNGM1x2UND94l4bwfoNL KHlPJpHR3lsAiqFnRxei/VAv7pXVsvj2k2I4TW611WojZHQajzguXt1ZP9P19K807qg= X-Gm-Gg: ASbGnctFaE7sK5MzS9F5JQ/cVRUIUXyW5Hn8tl4la8Ug8sQFFXYrW5ZErdmvch8H3bX K5MyDi7SFI1Ek8nsEc5Ogtxz42oEeHr1eEKakV3Y2lwtinCY/KIglM1fP8ODXUEyPdj0vyaeQh2 bECMMU0k280jyTry1x1mRW0wt9p9msykS1ZdwV5mxMzsmN/YDuKUSZeOQpz4sfq5X+NjL830zY5 SBJymvR7PM6JTHlVK6FWl7yJ3zq+vedOS01KTcsCqy76OHu2QPrM4WpFBZyDIp2UzS0u1u+YrNV 5Gucp3R/5LWOCtxQwvoPQnAxmFMzKRftxFtIgoYetIphyHUOCi/tgI4A/0Ackw4MKfE= X-Google-Smtp-Source: AGHT+IE7yAgNDxWCpdbfAu7y9ArOuEbulXmCvKPRZ4Y1LCezFJVsZ/pxp8wI03z2qqsNqcIa9dUGDw== X-Received: by 2002:a05:6808:120b:b0:40a:5b53:6502 with SMTP id 5614622812f47-40b344e07f6mr4141978b6e.9.1751067689519; Fri, 27 Jun 2025 16:41:29 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:28 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:40:00 -0500 Subject: [PATCH v2 04/11] iio: adc: ad_sigma_delta: use BITS_TO_BYTES() macro Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-4-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3611; i=dlechner@baylibre.com; h=from:subject:message-id; bh=1w9k49FoTu+/FNwh8fqdJnOZWQOe3GEkbod4N9CfdFg=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXyvtTvFFxTVf3HN3d8mcYeIBpjOEsZtLqO7hz I6L5y8d9/6JATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8r7QAKCRDCzCAB/wGP wE5EB/48IvAlfz2ZPEHEGilu+LpJo2tza3hSAq8BbMNnerbFXPfA7uMSKR4XIJgMOHwC4/qkMi+ gY/c9zjHpenIYdxEyGguzsD7t0T2rA79elo3i21y1q8iA8J3swuw+zd3aQboEjB0UeW26XiteFp CbNgSXDCNiwVgtOsFEHIDYt5CwFfTX7uAYpO+SYzCtyC0qK+mIKiqm+OiASnUaKBGoBgg5NCFds 7uePDwtIx45NeZ5UEhojp+Cm7uRT3PH9EiaoP3WbaTmRIcaRvS92Hy2hN7eyvIXPnok44bpmw4V 12SVbniqSV87Gu+1yf5S4bGzuCG5qLEr36Htis6kbRtzWZUc X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Use the BITS_TO_BYTES() macro instead of dividing by 8 to convert bits to bytes. This makes it more obvious what unit conversion is taking place. In one instance, we also avoid the temporary assignment to a variable as it was confusing that reg_size was being used with two different units (bits and bytes). scan_type is factored out to reduce line wrapping. Signed-off-by: David Lechner --- drivers/iio/adc/ad_sigma_delta.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_de= lta.c index 5362157966d89cbf0e602716aaaf0b78f3921b11..64ed8aeb71f7c6ca19fff0438fa= 5ccce0c1d8f8f 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -7,6 +7,7 @@ */ =20 #include +#include #include #include #include @@ -190,7 +191,7 @@ int ad_sd_reset(struct ad_sigma_delta *sigma_delta) u8 *buf; int ret; =20 - size =3D DIV_ROUND_UP(reset_length, 8); + size =3D BITS_TO_BYTES(reset_length); buf =3D kcalloc(size, sizeof(*buf), GFP_KERNEL); if (!buf) return -ENOMEM; @@ -419,7 +420,7 @@ int ad_sigma_delta_single_conversion(struct iio_dev *in= dio_dev, data_reg =3D AD_SD_REG_DATA; =20 ret =3D ad_sd_read_reg(sigma_delta, data_reg, - DIV_ROUND_UP(chan->scan_type.realbits + chan->scan_type.shift, 8), + BITS_TO_BYTES(chan->scan_type.realbits + chan->scan_type.shift), &raw_sample); =20 out: @@ -453,6 +454,7 @@ EXPORT_SYMBOL_NS_GPL(ad_sigma_delta_single_conversion, = "IIO_AD_SIGMA_DELTA"); static int ad_sd_buffer_postenable(struct iio_dev *indio_dev) { struct ad_sigma_delta *sigma_delta =3D iio_device_get_drvdata(indio_dev); + const struct iio_scan_type *scan_type =3D &indio_dev->channels[0].scan_ty= pe; unsigned int i, slot, samples_buf_size; unsigned int channel; u8 *samples_buf; @@ -488,7 +490,7 @@ static int ad_sd_buffer_postenable(struct iio_dev *indi= o_dev) return ret; } =20 - samples_buf_size =3D ALIGN(slot * indio_dev->channels[0].scan_type.storag= ebits / 8, 8); + samples_buf_size =3D ALIGN(slot * BITS_TO_BYTES(scan_type->storagebits), = 8); samples_buf_size +=3D sizeof(s64); samples_buf =3D devm_krealloc(&sigma_delta->spi->dev, sigma_delta->sample= s_buf, samples_buf_size, GFP_KERNEL); @@ -543,6 +545,7 @@ static irqreturn_t ad_sd_trigger_handler(int irq, void = *p) { struct iio_poll_func *pf =3D p; struct iio_dev *indio_dev =3D pf->indio_dev; + const struct iio_scan_type *scan_type =3D &indio_dev->channels[0].scan_ty= pe; struct ad_sigma_delta *sigma_delta =3D iio_device_get_drvdata(indio_dev); u8 *data =3D sigma_delta->rx_buf; unsigned int transfer_size; @@ -552,9 +555,7 @@ static irqreturn_t ad_sd_trigger_handler(int irq, void = *p) unsigned int reg_size; unsigned int data_reg; =20 - reg_size =3D indio_dev->channels[0].scan_type.realbits + - indio_dev->channels[0].scan_type.shift; - reg_size =3D DIV_ROUND_UP(reg_size, 8); + reg_size =3D BITS_TO_BYTES(scan_type->realbits + scan_type->shift); =20 if (sigma_delta->info->data_reg !=3D 0) data_reg =3D sigma_delta->info->data_reg; @@ -616,7 +617,7 @@ static irqreturn_t ad_sd_trigger_handler(int irq, void = *p) } } =20 - sample_size =3D indio_dev->channels[0].scan_type.storagebits / 8; + sample_size =3D BITS_TO_BYTES(scan_type->storagebits); sample_pos =3D sample_size * sigma_delta->current_slot; memcpy(&sigma_delta->samples_buf[sample_pos], data, sample_size); sigma_delta->current_slot++; --=20 2.43.0 From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f173.google.com (mail-oi1-f173.google.com [209.85.167.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 43ADE293C51 for ; Fri, 27 Jun 2025 23:41:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067693; cv=none; b=lp5pk8zNrJzajfksPBNplswuZYpEi16bX0ba5AXTOJiRfiCXbHonazepWbiZY+dEux9Zb3pQSoomUelhLt3Ena2rfIY92kfk4Dd6iES9L5/gg8Srpwg0Jtat0Qvq3IkN+m9VFSihFiUlUe29b0nqfXE5uiaHJR0JK1aJUDzKTEs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067693; c=relaxed/simple; bh=wBi/QqyMs0CYDBT2Ceeh0ISr577CfmlDC9vzlDRIqM0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EdEmM0bZGPrYC/CMlG2XbowwJpi5xex7AkR5AqcTQbHKkuZno80I+ze6cEXr6OUkCEMg9Hv8rFUw/rUvecZY9tQ+wYmns12cf4nYTvWOD+LghWJULj+oxcJHVYoi1nw6azyw4MDvCOMvz6Tgv2xe1Kh/xFvt6xrk/WHhFRAyt+4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=wz5gaFzr; arc=none smtp.client-ip=209.85.167.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="wz5gaFzr" Received: by mail-oi1-f173.google.com with SMTP id 5614622812f47-4080548891fso1091696b6e.3 for ; Fri, 27 Jun 2025 16:41:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067690; x=1751672490; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/vErCRSuXhbdQ1kcyByBRR4fh3OBWPU8jxNZF+LkhLs=; b=wz5gaFzrkFrHaWI6nZqaAqWQwuaU9sykao1zez4RvBCcTfQ/KI7ygO2yMfCAa3KcMj QK/rwB+F9rLTn4Hh9aQjSZh+V62WY+WKWprRc/E9QMmM6mfjoXEvDf9qAT0+9EUDJxg3 IBIwKEeYVx6PfcMwGeG+b+e8gdiJWGMZf3EZCeucNJTCOXNu+pHZX26aZHzj5TgcbPGq 2rQhhoHKDUxQE4EWDKPMj1vjSBFmA6jYlUShBP5GlnwnWjpxedZ4QS2dAGBSv7jE/xAq xFpnulxidyq0pio8bte0Tp7w/mo9fVUfPzd1KNXCXageWQHi1OQEJzBg8PEldjwTijeH y/ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067690; x=1751672490; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/vErCRSuXhbdQ1kcyByBRR4fh3OBWPU8jxNZF+LkhLs=; b=vH5llZPuSrcZDU0FJQOzk5aSVScS+LpdKza/XLUkbfLJGGl3tz+KTj6clLprs+xveC g3LKcWt4uicDs75tvEt7JbqmNjLlczNqo4OpLh+WxIqXaVWOf0flB/tWc6vijV8iJbPR IhigtvtwlhB1XUxju9YEKbiUFDkcd6Y57eUXzBCh9zyiFbGTLBh66c9F0lko8qX5Gw8m FGcDWXdPJrQUymY358IRx2siRaIWKoGWumM9ee4VVgGMXDSrS3pjvZBiaFNmVS4Jv8b+ 6uDBr9eUVAo/7y8pkzyL7/AISLcOwQn/UHsWbjIC5tSqRzGY4kpC9r63PTM0G2FVX+SL Fp2w== X-Forwarded-Encrypted: i=1; AJvYcCUgc6l4WxFtC4lR7/ujkex6oq66P4Jd+q7y7K+fVEizjY7xAjN7JuyL39fhwKn2IRN3BpmFiZYRu5fo0sU=@vger.kernel.org X-Gm-Message-State: AOJu0YwLtON7/RUcbbFFC0HQUxwlrKn2uIsoNRCemrPX+lhDCt/+BBGx MGuIyQWQ2SQnoXN2M6hmYfa4CrZ/VsLdMKUBXtifnO5wWo4/VIHN1CilH5tnnVMlmow= X-Gm-Gg: ASbGncty8kKw3o8neE9Vjk4UkYTxt2JJiUqQZImXB+WvSLNZmsqP8gsl1GDw6IUkUj7 QU5+nrRygJ5yGnbi3w+TEdFGEQNdMrTHOsDLIpaXj4v2SuU+rR/y3WT2WoPs6ZjrlA7bza4KB6R BakKkgrQA6TsWXUNNCdF3ZTfJXme301k7wiLX7yya4IrRlAerXsLeq4x2jcbiJD2ZOuT4tIu2fx jAqvySQUHR8aWfDlROqXHTmqwTDkEIQQhLjVe3m9MG2/dFSdWTtTG9QPl16k738AgMl9zpr7Pv1 42ikZqBgXv/sZk00+0n8m/BlELOthn65DMCU/aRSWZP1trViueM22szz6dzDD9PoUEQ= X-Google-Smtp-Source: AGHT+IFP9naojZ+NRB7AxFiV/l2DwqN9TfuynscWjl0LKqiWBjBgsV9XOiR7x1yRckf+/CTMdocvxw== X-Received: by 2002:a05:6808:189c:b0:40a:59fd:1368 with SMTP id 5614622812f47-40b33c17ab6mr3708002b6e.4.1751067690336; Fri, 27 Jun 2025 16:41:30 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:30 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:40:01 -0500 Subject: [PATCH v2 05/11] iio: adc: ad_sigma_delta: audit included headers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-5-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1562; i=dlechner@baylibre.com; h=from:subject:message-id; bh=wBi/QqyMs0CYDBT2Ceeh0ISr577CfmlDC9vzlDRIqM0=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXyvzpuqDc6liBnGS1z33ybsINng2VDpNM8SjR 2PPINIGI0mJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8r8wAKCRDCzCAB/wGP wFniB/91uR9lleFm1wlpfFwFOAmwGSOeXfNuLCSvAM0kYY0hkxgTBIbWPlZgCzslRUx0zSfHZfy V1FJtnyoFoMlTX7tW5aTby8S0xPCspsQr74ubd1JIYEZSxSCgsCN//vsBiuW3TNXBe1x76Yz0yb Dc6CZtFaBxmxjiarBHzlYXuJJv/c/obqq+GMD0VSXsqAdRiDsQ76hmWYwni4KFkDpmOjLKGL0eV CqBokn/nWb7s21kykjI2r3BdDym5c3OA9F1yGspp3JzdktWHikSJ9IH8b859wStxVqhXapK7vVH VW2cQDnCYe0VXjAxQKShMhZcsMcYDcpOJkioN4i5sv8XctQ6 X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Drop linux/iio/sysfs.h since it is unused and replace linux/kernel.h with more explicit headers. There are a couple of other headers added weren't covered by kernel.h, like linux/gpio/consumer.h that are added since the module makes used of those APIs as well. Signed-off-by: David Lechner --- drivers/iio/adc/ad_sigma_delta.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_de= lta.c index 64ed8aeb71f7c6ca19fff0438fa5ccce0c1d8f8f..ab34ff5e09146535fd6edbd2888= 88c3afb0188a7 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -7,21 +7,28 @@ */ =20 #include +#include #include +#include +#include #include #include +#include +#include +#include #include -#include #include +#include #include #include +#include +#include #include #include =20 #include #include #include -#include #include #include #include --=20 2.43.0 From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) (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 164062957A7 for ; Fri, 27 Jun 2025 23:41:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067694; cv=none; b=ZJwuEDHaSd/U9Egj+5pRhGuEXA/eMfqWLkMsFAMYYjve1vHNIvHy4oJYzlatpcIFV7PEPahVFy2U/FyTUUMyAMP5jcNtk8UXOwRDinJJOrDWeTapm7Zr54sHMdJvXQBCANVX6hcJStdhyiEI5E+XattEma8vwWteGjpNZXAI4UQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067694; c=relaxed/simple; bh=rTMPy0vWx9yUwEty5cvxFd319Z4yZNxLlJgbcACjydc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Z4Wze2+UUPHbHmpqOam5OOfVPoFDv0HrrizrpgVvbXYu2FmIIZwtXHYYFsxhyzK+Bg2FsKL04H8p1Uk4I1jEcme83KZHRK73Rs93KSzbKFek3Sk9MtTJHwQMgfj9WTZ09Vdpxs5xm9ScC0U85ggQREuhGHu0UwkWalKwK3l0yJo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=BbzEC8gP; arc=none smtp.client-ip=209.85.167.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="BbzEC8gP" Received: by mail-oi1-f169.google.com with SMTP id 5614622812f47-40a4bf1eb0dso246376b6e.3 for ; Fri, 27 Jun 2025 16:41:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067691; x=1751672491; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=M8Mb5Ax/ZzHIZ0v1JkgbwozpX3DBIbsec6z6Okbm1Lo=; b=BbzEC8gPANpaAn+uSNtPtMD/Pe1+/6msI3iKmX9vRg1JnCKl9MkM9w8V9UMI9+xUXt 3QkLrLuLCtHrMuSTgwIDDw+OI6WRS3cISfrj5pPLgbR72NXBap2f3rhISULtHnfyDCsk FOaRaXdaURoQfccJSMDJfdHtg3AmuAJoVLrrxUuVUBbe3enV257D+CKIQzwZlTn/dXZJ ZDNJJ8pNFZafWt+51DujSqe0AYH3loUnxiQnl2hCf80Ft8m6B7JTU6XqEvwtez/g5xA1 rhDtMnPcjVMNOMmBuYrc3dV9peVvxc4xrdktXS3DR+yZKcHJYmSFBrVcykCMW8fhLz06 2R3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067691; x=1751672491; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=M8Mb5Ax/ZzHIZ0v1JkgbwozpX3DBIbsec6z6Okbm1Lo=; b=lSvgKdcmZo2P/bRGne12ICv6p+/so4N1sxxxPJmvZ39QbXZxkZjm+vxQ6P0cg0aFq9 ji9ryRrnzwCdtrJ/r47IEQBNcjVmBjTmrPXoUNivGF3PmCYfsAHdTFLyvHBc3bOiDAD/ ZVVQZN0K/XDtLOliA3o9l6NgOm87oJAoW3kTrSoVcJMHSbQPOKCjn15rT8RPylUGl+lx NOC4yO8s/DNfxvVcoPI947L61o/x5K+RFBgbNz0QLxwTXrrYlSA9c8/JY/XT+MMjUVfA EGIkk9Nn/SIrxDIIyh08qe7pLxZ8sHOgxqDJ/qhavbCscghadfPcJGs12Q7IxDS8Ak26 KBxQ== X-Forwarded-Encrypted: i=1; AJvYcCViYDBaHNkASapagnYxnTfloHX8YMm082ZzznoR6mxZWJBBNdhUW958yWD6b6QyM0WN7AtP6bqj1Qerzyg=@vger.kernel.org X-Gm-Message-State: AOJu0Yz0StDwXu0wQsCTNuU+4UH16zk1jLHBjvo9ZMr9jkWUMz2au2TF OEhj4MYCi4zyIV58ogenyHTr9WhxnhxO4gNOdXhOzU1HWrgcjBpk208Trm3eskQMCh3zEdbbMmU 5HQi4tjE= X-Gm-Gg: ASbGncte04DsSWEof/ZvKYypQ9H7O+jNwLnmkpm5asF4lLSBQ6GJoBWBpv6QtFT5D0J pnSPT4iYErYsQeCTuUE234GfdS/nnU8TfIAGh2HoKPWm2HMcgg+XJD8c9dB52+sXJaQchR77Dni sgTbg3fE+n4T2FafpD6x2CDfgrxjY3Y8oY1BOJTw3Vt+DiFDQ02rwXPmh6YO/3iyAZ1pwsnFtO3 ZEpO3zv7gQZ7v2mYRhXJ3c8VnB8OOvurxlY5g6ctKVR+YL2V1qMlA0pqsnhrOmWu13RfFUAFqQk CpzZ5Wm1FMSNYJkoMtzFp759+vsMR9aplJ+aT0LEd0fqsFUtkDnZeHCkgXU5f8HYrZk= X-Google-Smtp-Source: AGHT+IH38PitXxn1VKaiQ2a7qcSfWel57rt41qRDl8nNA2/UdFYx6tdyKS66zYHhzvBf1Y8k36T3ew== X-Received: by 2002:a05:6808:2202:b0:3fe:aecb:5c49 with SMTP id 5614622812f47-40b33e324abmr4839837b6e.21.1751067691140; Fri, 27 Jun 2025 16:41:31 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:30 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:40:02 -0500 Subject: [PATCH v2 06/11] iio: adc: ad_sigma_delta: refactor setting read address Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-6-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2048; i=dlechner@baylibre.com; h=from:subject:message-id; bh=rTMPy0vWx9yUwEty5cvxFd319Z4yZNxLlJgbcACjydc=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXyv61Esyd/0HrepT/Mwg/nk56ba6vSv5xUaps Fq7m9VtsDmJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8r+gAKCRDCzCAB/wGP wPZVB/9h/ljBYaDCSu9HP10Y2f/kXGZgaDjCpK470WehwiOXQ6+fXJZGn3lfHprs/kVW4LSUY4v t3hjuznSZsVzWzqtuVzpdTG/wbS9c0v8fP2MCq3kVmMQyQARtuiOaj9s39RbqCxnu8sK0Q7vrju x0Iq6ADVPBNbV/y/tDP8kUaGEFh4FnjY0bHc/a7+h9NoiPxPwP1CMDArrUlhRtPOFITNWFoBYwF Gsuc6wtphoAyoiisbevfXfxsSktzP16TLTLjtQ3HabXD9HiKNp7JXtwDbwPOlfk77i7eelroEJ5 qioj5543MnqVO4UshP1Pg5xIeThrz3rSwsu6eQYOqqEmv6c0 X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Refactor code to set the read address in a separate function. This code is already duplicated twice and we will need to use it a third time in a later commit. Signed-off-by: David Lechner --- drivers/iio/adc/ad_sigma_delta.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_de= lta.c index ab34ff5e09146535fd6edbd288888c3afb0188a7..d8101f5d443f957a398e66db1da= d0d1f73c16078 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -107,6 +107,14 @@ int ad_sd_write_reg(struct ad_sigma_delta *sigma_delta= , unsigned int reg, } EXPORT_SYMBOL_NS_GPL(ad_sd_write_reg, "IIO_AD_SIGMA_DELTA"); =20 +static void ad_sd_set_read_reg_addr(struct ad_sigma_delta *sigma_delta, u8= reg, + u8 *data) +{ + data[0] =3D reg << sigma_delta->info->addr_shift; + data[0] |=3D sigma_delta->info->read_mask; + data[0] |=3D sigma_delta->comm; +} + static int ad_sd_read_reg_raw(struct ad_sigma_delta *sigma_delta, unsigned int reg, unsigned int size, u8 *val) { @@ -127,9 +135,7 @@ static int ad_sd_read_reg_raw(struct ad_sigma_delta *si= gma_delta, spi_message_init(&m); =20 if (sigma_delta->info->has_registers) { - data[0] =3D reg << sigma_delta->info->addr_shift; - data[0] |=3D sigma_delta->info->read_mask; - data[0] |=3D sigma_delta->comm; + ad_sd_set_read_reg_addr(sigma_delta, reg, data); spi_message_add_tail(&t[0], &m); } spi_message_add_tail(&t[1], &m); @@ -288,9 +294,7 @@ static int ad_sigma_delta_clear_pending_event(struct ad= _sigma_delta *sigma_delta if (sigma_delta->info->has_registers) { unsigned int data_reg =3D sigma_delta->info->data_reg ?: AD_SD_REG_DATA; =20 - data[0] =3D data_reg << sigma_delta->info->addr_shift; - data[0] |=3D sigma_delta->info->read_mask; - data[0] |=3D sigma_delta->comm; + ad_sd_set_read_reg_addr(sigma_delta, data_reg, data); t[0].tx_buf =3D data; spi_message_add_tail(&t[0], &m); } --=20 2.43.0 From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f182.google.com (mail-oi1-f182.google.com [209.85.167.182]) (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 DF61C299924 for ; Fri, 27 Jun 2025 23:41:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067696; cv=none; b=n9zsGPLkF6QqfMxbYmcli3Q8U0Ae9KKDaX9zRLJM9c9w0188+b1LMAcF7qnl8WB1bEk1pPUmN4dE9ZW4/g/fT0zeCW0oSDDu9YhbuF0f9gKVhPXgZsUciKf01Q8vGaMvS/XsefP27sTHR4B6jUfmNk1/9z+y0rHkmK7Rg36b4pA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067696; c=relaxed/simple; bh=UWnNQjC9xY1Xwfu0SBlWSeVKesQj5uaRhdQrBvWhhA0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RfB2d6Z7sJKBOAuKTuVp3r7wCIvId6ADMqFbYqD35CaXDXcCmTI3i+aWhI/vudYk7zimEAuFs8ya6Z4NKa26gkCLFTuCDs34L3DdFQTF/Z9S99yXrlQKqVjk87LifZnLKXYqa1mwyp395SkytYdtgNYDuSpXlY5IXX1/B6ZZJhs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=XtRQkJSu; arc=none smtp.client-ip=209.85.167.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="XtRQkJSu" Received: by mail-oi1-f182.google.com with SMTP id 5614622812f47-40b32b6af9eso948112b6e.1 for ; Fri, 27 Jun 2025 16:41:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067693; x=1751672493; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=9iwbNmWnwrhGbfrT7YdfqYIeoba1brn/qJ+hnINiPsI=; b=XtRQkJSusSANrW+LjCncPv0Gb0LGW0zhaGJnAWOt90IEAI2atnCRnSgUy9MqNo9Itk kFB7PvK0Q/NrkKX7APBFNaar42N5Lg1Cv/M5r8PCV1pvrsEFc6R4FReUGWXTS6l/5pp3 drp0D/LBtT3kTn/t4pKx234P3gHHcGzqFrpdNkUfVq7m6/PhJZN6MPJg4T/EnhdWsIRh TdGB8K+ZyAxdshhcopfsDtvllpdosOZDE8LJZcHzh3imxWb1R3z+LzI5XE7otQBZA73i D0SdYQ1JVchFNOx0yFA3qyHAkkg3K2EnsGgjUeZlAdCcbK1oVSImUs2zTmpY5nL72WGX 1qww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067693; x=1751672493; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9iwbNmWnwrhGbfrT7YdfqYIeoba1brn/qJ+hnINiPsI=; b=EVUDfr8sAfKgH23voPoeV+Ii2ZVxXfmbGDiThsmmsyUSecyk9NYurF4bepTHHlGmpa dFKWrFOtYZqhoTk3cQJY4NemOwaam/ZyKXvdtX1l78lpF/y61f52ELxBqhFHVmkXy1Xl 7c4r5V4Ih059v5liDOwoHmW9OekncukNJBKYkNdD+iSD9xHyqvEqc4Y0Ebuc0NjNFSyE bNxMehOJewW/XqPtkLAXH6cVExQuEiO/TAL9SqzxkhCqw/V/+luDn8P2T6Z0zlCu/k5V jEHF1T7KvvtglBAe6aGzFGYKHeREpuelaOHxILwu05PjRet3v0Q1uTeQ0FleNDu46slt lAXw== X-Forwarded-Encrypted: i=1; AJvYcCWh/JWk8As6LKrKg1wzKfBSGB+7+VwkPfIX/ubAn7wcv/AziO3UQv/41dOnTXVcK2BaLA2ZeVbGKKWhZZQ=@vger.kernel.org X-Gm-Message-State: AOJu0YwUb46Q8pQoVLUOxNKdTkleLXckD95W9HvrV+TfVcpOM/BXBfcs w42Q/Ckyl+LuUs43ZgaMdHYiTAmckBlxom8v+QTEbaMYU9Ziw7yTRtEVr9aiLaUSf1E= X-Gm-Gg: ASbGncuMbbq4yi2xx6PG2oSVx1YDx8lacamewhb3Tqa6TRbpTfZoX/3SvhqTH05dZjs gib2D+QcHSDyIJW0o9DAg373ktoHZ6K/JIFpjcgXMWS6ZpmJgKyYFDMQWpTa74gugaKM6LGHXXI w0Yq32onaXeNdwcqH9XhexdwqfIqUvultFF3pWUf7g4d5K4Jmx0ABFRcV2hNaAHJZksrXiOcp43 F9AcxwmgcSuOznYul6Lp7h/L952NOY23hrHXiJYGoh0h+ME6GA28IP1bVv5HITiua0eFNgWjMO+ 7QJATZnoY7j8NE878KDu+zOQAF6vjC0rZ0AXRAGR/22YnromPlE5pZQPZT8I+OTtxNk= X-Google-Smtp-Source: AGHT+IH+448kgf864CgSqLTWJUXw1D/YDaapL6g2xhmRXZborzFLiyfuV3mt5ne9VPRC9riu+hk1fg== X-Received: by 2002:a05:6808:2385:b0:3fb:85cc:9f27 with SMTP id 5614622812f47-40b33ac8e41mr4264778b6e.0.1751067692936; Fri, 27 Jun 2025 16:41:32 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:32 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:40:03 -0500 Subject: [PATCH v2 07/11] iio: adc: ad_sigma_delta: use spi_optimize_message() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-7-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5695; i=dlechner@baylibre.com; h=from:subject:message-id; bh=UWnNQjC9xY1Xwfu0SBlWSeVKesQj5uaRhdQrBvWhhA0=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXywBjJObaNHVaWoiK2VxvYxEPhXkdoVtYA3bg od/i5eAfpuJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8sAQAKCRDCzCAB/wGP wCiFCACQ6zcWMQqtw6hEuiiyHHeH1+ZeloLoNUEIXcuGbUjkYnHLS0Po1PFxPZ7XFKns/cuunIZ 1PVB5YpfoxEhTc0kOz1Z0tTKK95g1nM7aGWH8Iom//T1fSp5q0gMzgPqmOwxIarH1kU5VX4xr43 97TGyDU526jH7dtBH5Kx0X11iUxXf/dtzyPWmiFTeV5jTxiuOV8EUg+ydanMvAOHiBoHum3Dkor 8TrRBE/gnlWBSz6h2bFPX00inWhEw7uQ5VsKxgZmyQnf9kPhF7SvmOLEtGRcw2OU6LeLgE5Y9Z3 CILib2nqlXiGfGlHyWQYYsrL3+i5ooubCUePwDrRv6KILtfq X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Use spi_optimize_message() to improve the performance of buffered reads. By setting up the SPI message and pre-optimizing it in the buffer postenable callback, we can reduce overhead during each sample read. A rough estimate shows that this reduced the CPU usage of the interrupt handler thread from 22% to 16% using an EVAL-AD4112ARDZ board on a DE10-Nano (measuring a single channel at the default 6.2 kHz sample rate). Signed-off-by: David Lechner --- drivers/iio/adc/ad_sigma_delta.c | 72 ++++++++++++++++--------------= ---- include/linux/iio/adc/ad_sigma_delta.h | 3 ++ 2 files changed, 37 insertions(+), 38 deletions(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_de= lta.c index d8101f5d443f957a398e66db1dad0d1f73c16078..30ae7ef6d3f9f686b0217650881= 3c689e6fb92f2 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -466,8 +466,9 @@ static int ad_sd_buffer_postenable(struct iio_dev *indi= o_dev) { struct ad_sigma_delta *sigma_delta =3D iio_device_get_drvdata(indio_dev); const struct iio_scan_type *scan_type =3D &indio_dev->channels[0].scan_ty= pe; + struct spi_transfer *xfer =3D sigma_delta->sample_xfer; unsigned int i, slot, samples_buf_size; - unsigned int channel; + unsigned int channel, scan_size; u8 *samples_buf; int ret; =20 @@ -509,6 +510,28 @@ static int ad_sd_buffer_postenable(struct iio_dev *ind= io_dev) return -ENOMEM; =20 sigma_delta->samples_buf =3D samples_buf; + scan_size =3D BITS_TO_BYTES(scan_type->realbits + scan_type->shift); + /* For 24-bit data, there is an extra byte of padding. */ + xfer[1].rx_buf =3D &sigma_delta->rx_buf[scan_size =3D=3D 3 ? 1 : 0]; + xfer[1].len =3D scan_size + (sigma_delta->status_appended ? 1 : 0); + xfer[1].cs_change =3D 1; + + if (sigma_delta->info->has_registers) { + xfer[0].tx_buf =3D &sigma_delta->sample_addr; + xfer[0].len =3D 1; + + ad_sd_set_read_reg_addr(sigma_delta, + sigma_delta->info->data_reg ?: AD_SD_REG_DATA, + &sigma_delta->sample_addr); + spi_message_init_with_transfers(&sigma_delta->sample_msg, xfer, 2); + } else { + spi_message_init_with_transfers(&sigma_delta->sample_msg, + &xfer[1], 1); + } + + ret =3D spi_optimize_message(sigma_delta->spi, &sigma_delta->sample_msg); + if (ret) + return ret; =20 spi_bus_lock(sigma_delta->spi->controller); sigma_delta->bus_locked =3D true; @@ -528,6 +551,7 @@ static int ad_sd_buffer_postenable(struct iio_dev *indi= o_dev) =20 err_unlock: spi_bus_unlock(sigma_delta->spi->controller); + spi_unoptimize_message(&sigma_delta->sample_msg); =20 return ret; } @@ -549,7 +573,10 @@ static int ad_sd_buffer_postdisable(struct iio_dev *in= dio_dev) =20 ad_sigma_delta_disable_all(sigma_delta); sigma_delta->bus_locked =3D false; - return spi_bus_unlock(sigma_delta->spi->controller); + spi_bus_unlock(sigma_delta->spi->controller); + spi_unoptimize_message(&sigma_delta->sample_msg); + + return 0; } =20 static irqreturn_t ad_sd_trigger_handler(int irq, void *p) @@ -559,50 +586,19 @@ static irqreturn_t ad_sd_trigger_handler(int irq, voi= d *p) const struct iio_scan_type *scan_type =3D &indio_dev->channels[0].scan_ty= pe; struct ad_sigma_delta *sigma_delta =3D iio_device_get_drvdata(indio_dev); u8 *data =3D sigma_delta->rx_buf; - unsigned int transfer_size; unsigned int sample_size; unsigned int sample_pos; unsigned int status_pos; unsigned int reg_size; - unsigned int data_reg; + int ret; =20 reg_size =3D BITS_TO_BYTES(scan_type->realbits + scan_type->shift); + /* For 24-bit data, there is an extra byte of padding. */ + status_pos =3D reg_size + (reg_size =3D=3D 3 ? 1 : 0); =20 - if (sigma_delta->info->data_reg !=3D 0) - data_reg =3D sigma_delta->info->data_reg; - else - data_reg =3D AD_SD_REG_DATA; - - /* Status word will be appended to the sample during transfer */ - if (sigma_delta->status_appended) - transfer_size =3D reg_size + 1; - else - transfer_size =3D reg_size; - - switch (reg_size) { - case 4: - case 2: - case 1: - status_pos =3D reg_size; - ad_sd_read_reg_raw(sigma_delta, data_reg, transfer_size, &data[0]); - break; - case 3: - /* - * Data array after transfer will look like (if status is appended): - * data[] =3D { [0][sample][sample][sample][status] } - * Keeping the first byte 0 shifts the status position by 1 byte to the = right. - */ - status_pos =3D reg_size + 1; - - /* We store 24 bit samples in a 32 bit word. Keep the upper - * byte set to zero. */ - ad_sd_read_reg_raw(sigma_delta, data_reg, transfer_size, &data[1]); - break; - - default: - dev_err_ratelimited(&indio_dev->dev, "Unsupported reg_size: %u\n", reg_s= ize); + ret =3D spi_sync_locked(sigma_delta->spi, &sigma_delta->sample_msg); + if (ret) goto irq_handled; - } =20 /* * For devices sampling only one channel at diff --git a/include/linux/iio/adc/ad_sigma_delta.h b/include/linux/iio/adc= /ad_sigma_delta.h index 5056677c9941afadc2383febbcafeb02e23a4f44..2037bb68b44115681ff48f66b58= 0b63f50c2ea9e 100644 --- a/include/linux/iio/adc/ad_sigma_delta.h +++ b/include/linux/iio/adc/ad_sigma_delta.h @@ -105,6 +105,8 @@ struct ad_sigma_delta { bool status_appended; /* map slots to channels in order to know what to expect from devices */ unsigned int *slots; + struct spi_message sample_msg; + struct spi_transfer sample_xfer[2]; u8 *samples_buf; =20 /* @@ -116,6 +118,7 @@ struct ad_sigma_delta { */ u8 tx_buf[4] __aligned(IIO_DMA_MINALIGN); u8 rx_buf[16] __aligned(8); + u8 sample_addr; }; =20 static inline int ad_sigma_delta_set_channel(struct ad_sigma_delta *sd, --=20 2.43.0 From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f179.google.com (mail-oi1-f179.google.com [209.85.167.179]) (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 E1B782D9788 for ; Fri, 27 Jun 2025 23:41:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067696; cv=none; b=hRg9B+3+UFq0ft5I4NG5CzYyy/gexghrmeE2SGGKmfwhx9GBVn9pRjMXmi4FyFNCmomwU5ofp/dpbQ1vplQPsV1RTwwvjsgcplwezpDGM9iVyNqxDC4q+uOM8AVBhwgHDSWm3GBpFWWQAav7O2lyt6vvlHfhdQOT6rxJ/OceKOc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067696; c=relaxed/simple; bh=J8Mp/XPieqvBImE5UKsEDCopSlfxADmRzvJ27VGC3to=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=md8iF0UdIIF8wnBDCzaBGWxPT2d3ks5Rv4yur/4LEjNoClAy2PAUk2A6UFX6Wje/3Tbms4GTo3yMtBeWs/WWCf8c5eTh8jwPM/TNSCA+/W6pAoOSqUWFoCmkHFrDCrprdEvLPvDip8mYzqg3A+s5dGjVw8hl2CZvekJKy/JiTec= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=2rxmRunW; arc=none smtp.client-ip=209.85.167.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="2rxmRunW" Received: by mail-oi1-f179.google.com with SMTP id 5614622812f47-40b1c099511so1563509b6e.0 for ; Fri, 27 Jun 2025 16:41:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067694; x=1751672494; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=QA48/5Xq3MiyH1lT5lzBGW2kqD0bctYSg21SbvtHeng=; b=2rxmRunWNGG3kfZdvCddRhpI3TpYvA3Zm7S9YwgZNjMsyLFIAZFS41EzLhjSS1urO4 6Ks8rE2/yhfeFjKzzVHafN+f47bvnu+sJXn3NmS097qj5F6WvnL93uQajduawW7h0caV m3h6Vz6ImZ2hGmAheSjyMgw6obPaUjFNdpIM5dH2t18HOcsC1B5icyQuhkF3QR9fGZD6 34LaZnKeQqbw3d0oRLD4YLeE37L0By9Z2/ADJOZmVu9oK0S/v7gfwG9wQWDfQ7yBi37M L2To7dU9qOGXHTGcwlvC8kfAmL11JSeTNIFYUrFJH2nFBQRXHud8wPIMdj19k25Zj16W ls7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067694; x=1751672494; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QA48/5Xq3MiyH1lT5lzBGW2kqD0bctYSg21SbvtHeng=; b=h5DNa9KFAod2A0cXbFpWKoZ6nY99WwsVaYCZ++tPA4NDv3y/kVNdyLPm9rBDYSQOmf Z3bOHGKtlScCYShjHt7hykG+s0h9D+exAyTsFf7qG2kmRKvxgfpr6qHnEJKpKDMSu9th U+buLKOW3eSUyJ0FBV0RHIPrLaceyEcAFWzp0RDLh9ppM6GabIqVjebgnujGi9nzCU1X JFhdLd6pVmBod/8bfHMdRZAtsihXDu4Ptbjf7vaRYBzF8HEUD26Ci4EctdaXIllr2oFQ aymsfXHbEuNUz0zpvr7634Nt2FblMKiGJEXDQ1+TTNd5+qunkSHwyXFM+o3/4l4qu+Ky eRZg== X-Forwarded-Encrypted: i=1; AJvYcCUZq9uX46If7vIadW0d4nKwaHQyDJZwqo+6gPrICbCFaSrrV9WnIu4bkBYQVVcY5Mtdi4cLi1m8AaMmGPc=@vger.kernel.org X-Gm-Message-State: AOJu0Yyar1ttL83Rl2oEmK3r0FZ+Ia2Cp8SpHCyd8gNtmk5R6Cgf1Xos eTfJzqNERih232+5RX2cgT9WB9UDjtCPUgrZytpPiF4u10rIzHEBen5E32IED27xRUY= X-Gm-Gg: ASbGncsEKw9+MAkWQ65MTVSpiY5H0Qy9kkAJeGg59RH3Rz3SOu2Iqn4wkv/E0dtS/om PIngyrphEjXvlNOA+5ffuTLZpUI0685YW8EZmZ+NnahYhTGxotKtV3e7An4araGFtQc7orNJOOy QRr6eg2JzPy6RrkvQIhMNGB6BmLT0/Uv0boaaAt0DGoVoVfMD7iT00GBcpLyUY1SlIr6aMVcKXM 8TY/Os2vcrl8iqcwVyJcLc7mlR7kNQfts6UoWsHhWQ8q8OoLo+Me+ad+gQZSJmoCDV7mJSxn23o 8R5MsPRZLKIiLQmsnosau+FrIxX/qhO9BOkxm8DQHRS9G1r/fg8X0YHTKg7SUIIxHIo= X-Google-Smtp-Source: AGHT+IHQEzLe1lfVwPkBflr70t7J1cOLVABPtWTzTb+CD1tZaGQ8r4sg4FM7MEjvnmQx8acA7dGhGg== X-Received: by 2002:a05:6808:168c:b0:3f6:7677:5bef with SMTP id 5614622812f47-40b1c87aa1fmr7778548b6e.2.1751067693828; Fri, 27 Jun 2025 16:41:33 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:33 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:40:04 -0500 Subject: [PATCH v2 08/11] dt-bindings: trigger-source: add ADI Util Sigma-Delta SPI Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-8-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2743; i=dlechner@baylibre.com; h=from:subject:message-id; bh=J8Mp/XPieqvBImE5UKsEDCopSlfxADmRzvJ27VGC3to=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXywH3Ih7yPZHUTX398WD9WVW4G/xwb27Eyohl kT4QqUHGHeJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8sBwAKCRDCzCAB/wGP wHh4B/9ZlH/OBXHD6pF5dyewJNVojYstNad1fd756qMSKXcUqH2mjv6A0b2EbJCMzERN3ZQNVJg 80DS1ThI0sxB1W0xfI9l0jm+Cs9nnykjHnPn+OXsg1akhPMeU3S7T/yOLPpaS0/YbePfphhirfD +0Ayna1XiR8i3kmvb+XhqecS2ce11Hc7rkzfX8DTVObtka7mP5DpRPNFXMyubz9BIIauh0TjO8o ynIfmJtPKwZOPvPzII483v2rHZhVGLV2st2aw3OFSdQG02DBld2JVZoDP2jtGeYmAn/bnFAqG2e dly7m4J7VGV4bQbNRYqpDgcalU/8gWuf2av5WGiOk/JDrp10 X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Add new binding for the ADI Util Sigma-Delta SPI FPGA IP Core. This is used to trigger a SPI offload based on a RDY signal from the ADC while masking out other signals on the same line. Reviewed-by: Rob Herring (Arm) Signed-off-by: David Lechner --- .../trigger-source/adi,util-sigma-delta-spi.yaml | 49 ++++++++++++++++++= ++++ MAINTAINERS | 5 +++ 2 files changed, 54 insertions(+) diff --git a/Documentation/devicetree/bindings/trigger-source/adi,util-sigm= a-delta-spi.yaml b/Documentation/devicetree/bindings/trigger-source/adi,uti= l-sigma-delta-spi.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ea466179551cb0d8f8e1cf01f91= 101b88734da88 --- /dev/null +++ b/Documentation/devicetree/bindings/trigger-source/adi,util-sigma-delta= -spi.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +# Copyright (c) 2025 Analog Devices, Inc. +# Copyright (c) 2025 BayLibre, SAS + +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/trigger-source/adi,util-sigma-delta-spi= .yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Analog Devices Util Sigma-Delta SPI IP Core + +maintainers: + - David Lechner + +description: + The Util Sigma-Delta SPI is an FPGA IP core from Analog Devices that pro= vides + a SPI offload trigger from the RDY signal of the combined DOUT/RDY pin of + the sigma-delta family of ADCs. + https://analogdevicesinc.github.io/hdl/library/util_sigma_delta_spi/inde= x.html + +properties: + compatible: + const: adi,util-sigma-delta-spi + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + '#trigger-source-cells': + const: 0 + +required: + - compatible + - reg + - clocks + - '#trigger-source-cells' + +additionalProperties: false + +examples: + - | + trigger@40000 { + reg =3D <0x40000 0x1000>; + compatible =3D "adi,util-sigma-delta-spi"; + clocks =3D <&clk 0>; + #trigger-source-cells =3D <0>; + }; diff --git a/MAINTAINERS b/MAINTAINERS index ea082c6be8acd5081d95bbada99ae47793f206e5..60ba572be7f5b48c0ab1d0d9724= e19e335e8761b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -25176,6 +25176,11 @@ W: https://github.com/srcres258/linux-doc T: git git://github.com/srcres258/linux-doc.git doc-zh-tw F: Documentation/translations/zh_TW/ =20 +TRIGGER SOURCE - ADI UTIL SIGMA DELTA SPI +M: David Lechner +S: Maintained +F: Documentation/devicetree/bindings/trigger-source/adi,util-sigma-delta-s= pi.yaml + TRIGGER SOURCE - PWM M: David Lechner S: Maintained --=20 2.43.0 From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f179.google.com (mail-oi1-f179.google.com [209.85.167.179]) (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 D474B292B59 for ; Fri, 27 Jun 2025 23:41:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067700; cv=none; b=VygGvcV1lZXVK0kQ33K/dTqGgahKN9kwR2jGfLawGgd+yTTNHp7RasvUo6obnsYNPWRKW4TCqkAjNTAA7VhUezjLoC0z6tzRw18t3YkL4JZNvcGrtuNytxu7NqP79xaxv7CsMCEhJF0p3en8WDMeRd+6aSq7djuGkkZNbrci1I4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067700; c=relaxed/simple; bh=BwOGbOpYX21Ucam+bloAQXE+MG2uw4doa1iKJcVx3E8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jeHDR8mMWtuCtTFNlqSWBobGE21G6GJwCJnPp7FThCXMJcSJpdroeuPPCl44Och96fHGLx9LZy9I0yST1kVygAAMW+0AMpgYo7lYM1LG5iTFRYlSZI6lKNSG8oISuMuOrJ4dqR8MGmfaalCvxzdzOi/d43SQyICu9vaL8SluHAk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=c/4RyHV5; arc=none smtp.client-ip=209.85.167.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="c/4RyHV5" Received: by mail-oi1-f179.google.com with SMTP id 5614622812f47-40b32b6af9eso948130b6e.1 for ; Fri, 27 Jun 2025 16:41:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067695; x=1751672495; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=T+UAVQwWtySu3Zk+qmcMSCJQC906a/pI5jwVttXUTqw=; b=c/4RyHV5LFVZY25p8iaZpt+nO0QlnZMazPvsJIMgNf66hBEcOYoByP58hhgQg5KaMa 9USCnhOKAeUyr+mDYz8NZ8AaxKEUJzl3ME6ItBs6lLj2mLpEfmBixBV6jzNhlELziGsQ y/6nqATHDCmY4yQBvP+5oBx2sPYaanAjXxrpywvXB0rz+YU2pzVhbX86mWp4qWJDetm0 CzcIHJ4R6HonzeI4q/z4guJzMYy2qyRrrxUrMDyR2w6fYNRVSZ9PWDILNdqS4B6qLUm8 PWH6LpEQXPWQoiZRI+x55hJPcg6Z6/oz+AbjA8CGQrf/hPOgk8GkXVij57nJ57JflpvN lprA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067695; x=1751672495; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=T+UAVQwWtySu3Zk+qmcMSCJQC906a/pI5jwVttXUTqw=; b=qiRd+g7GvyR2gHG52yU7R+5m3qcokf4Z2Im6R/HTbheJ7f2qI61h0aW5kGLnbA8blN YIpwVpLqOU/Nfkhl394dhgBM9iRBH0JUr8MarZujlB6Sy/N73TC2uXhzRJ4KvEW5mcib o//EwdmholpBDktWWvWshW3/m8Bo92reakY8/oMbUNKyaJtU/LvjkjbryYr7Y/tSoRdb n9p2Hk2dZ/rrG/W4asghr83iXMylxkyO6bvcWXFyGK6TBVOYwsN5UH2hXS6Utmsa1jSW vXA34rcgM+s9cF2Bgza7iHeQfGdPKiZl8p919+wfgBcH4LGY5s6EBKml2OW3uMHvAqZR sucg== X-Forwarded-Encrypted: i=1; AJvYcCVNkI7h3LKvyPaoN0LPYkVpAkQK1YTFv0CJx8qXLgK3+BS6k7p1h9LerX2mXnIxiY1Bj9WjDufEOkTVQoA=@vger.kernel.org X-Gm-Message-State: AOJu0YxicgFE8BeXxlQ5r1bh546orfB3t8Iu7BglScxy4cTT/YeggZPu VR7GnNCvvZj3t6Oly8avBd3ZjfTeciFKrkXHyJ1gtTuuRWXZKWtGNMOhXIujYrLiH2U= X-Gm-Gg: ASbGnct2hyOqDS9zj3xE0wvL+klm7XIwcgUv199TBmi7H6ZoVZvICGXh4IM7R7n8w3L BhN2mG6gGBE6WlXWuTGMaHdt6cDWjrmoHptBPTwRB7jCIc3Cm9XUxdfWqsctsIET2iSAsXRlFvy mG/a6TLD62Vbty7rFLQcQfoJwkUX6Xe+7vINfEku1O9eRS5OEJTSDrEQxvOaipkB3/U1LLjuASM 9pDJ3hUFtcJY1iF+dHwoHphxfhwHBd//Np15TjzgmRMbWs6LvjbtcBPPNNy3nwATIzvba7yCF07 b2Z7ZzBh07cHHi+/OwZt2VzG/vNblOvwI84TYUQhJ8Jjr33Vun2RCM+R9GQfygO0FVU= X-Google-Smtp-Source: AGHT+IEEal1CHZFE2diTHOLP0GoeRMSm7uX29+4AaRfusxidF+4Qf49WxkGfDDk/SU7EpttCBYtIow== X-Received: by 2002:a05:6808:6546:10b0:40b:441e:26d9 with SMTP id 5614622812f47-40b441e278amr1295330b6e.34.1751067694612; Fri, 27 Jun 2025 16:41:34 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:34 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:40:05 -0500 Subject: [PATCH v2 09/11] spi: offload trigger: add ADI Util Sigma-Delta SPI driver Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-9-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4261; i=dlechner@baylibre.com; h=from:subject:message-id; bh=BwOGbOpYX21Ucam+bloAQXE+MG2uw4doa1iKJcVx3E8=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXywO9aGuRzF5vZuZtzDPnjeRPdxcPRyFFJxjK NlFurig58GJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8sDgAKCRDCzCAB/wGP wHMsCACKqyWrzMOsC8J5fk7Tjyev2WUWNBJmCTjLk25r/rQxhS05JnWztTWyRiBqtesqo8Ub+Hb 3qRXEdJ2zomGRifijM+qMaWUhsacJcEhp3xiw3v4iRQqaK7mey8O0iiSCtn+IdoSMOtGZOyLwWp HmSIZeVchs9mm7uj1y/quAqG84lhy2/XFMt8PqIt/tgyYTQ51LRxwS0m+Zhn4TFFEvKhlHG5VgU BkZXbhK40UXIdhSJm/9jv4GSkqQ3Ht3koU/9aElpGYUZQ7u3QUBnvMfwLxM6HGZk6y3JPEyH5OF iLoi4pDCoMM5Jt1Kp0yXeCtvQxR3y4FH+2kukwenYQlXtUxe X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Add a new driver for the ADI Util Sigma-Delta SPI FPGA IP core. This is used to trigger a SPI offload based on a RDY signal from an ADC while masking out other signals on the same line. Signed-off-by: David Lechner --- MAINTAINERS | 2 +- drivers/spi/Kconfig | 5 ++ drivers/spi/Makefile | 1 + .../spi/spi-offload-trigger-adi-util-sigma-delta.c | 59 ++++++++++++++++++= ++++ 4 files changed, 66 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 60ba572be7f5b48c0ab1d0d9724e19e335e8761b..4ed4977deb6ddc545be39b5c1d5= e9959e9fe64cf 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -23357,7 +23357,7 @@ F: include/linux/mtd/spi-nor.h =20 SPI OFFLOAD R: David Lechner -F: drivers/spi/spi-offload-trigger-pwm.c +F: drivers/spi/spi-offload-trigger-*.c F: drivers/spi/spi-offload.c F: include/linux/spi/offload/ K: spi_offload diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index c51da3fc3604977b05388687e5e64a58370186c4..e69f060d3875c168a2dc701a372= e47b8ffd33268 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -1355,6 +1355,11 @@ if SPI_OFFLOAD =20 comment "SPI Offload triggers" =20 +config SPI_OFFLOAD_TRIGGER_ADI_UTIL_SD + tristate "SPI offload trigger using ADI sigma-delta utility" + help + SPI offload trigger from ADI sigma-delta utility FPGA IP block. + config SPI_OFFLOAD_TRIGGER_PWM tristate "SPI offload trigger using PWM" depends on PWM diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile index 4ea89f6fc531625060255ecff237470927e1f041..51f9f16ed734424ff10672a04f2= ec166dc637e0b 100644 --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile @@ -170,3 +170,4 @@ obj-$(CONFIG_SPI_SLAVE_SYSTEM_CONTROL) +=3D spi-slave-s= ystem-control.o =20 # SPI offload triggers obj-$(CONFIG_SPI_OFFLOAD_TRIGGER_PWM) +=3D spi-offload-trigger-pwm.o +obj-$(CONFIG_SPI_OFFLOAD_TRIGGER_ADI_UTIL_SD) +=3D spi-offload-trigger-adi= -util-sigma-delta.o diff --git a/drivers/spi/spi-offload-trigger-adi-util-sigma-delta.c b/drive= rs/spi/spi-offload-trigger-adi-util-sigma-delta.c new file mode 100644 index 0000000000000000000000000000000000000000..035d088d4d33d6d32146a340381= bb167f080e085 --- /dev/null +++ b/drivers/spi/spi-offload-trigger-adi-util-sigma-delta.c @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (C) 2025 Analog Devices Inc. + * Copyright (C) 2025 BayLibre, SAS + */ + +#include +#include +#include +#include +#include +#include +#include + +static bool adi_util_sigma_delta_match(struct spi_offload_trigger *trigger, + enum spi_offload_trigger_type type, + u64 *args, u32 nargs) +{ + return type =3D=3D SPI_OFFLOAD_TRIGGER_DATA_READY && nargs =3D=3D 0; +} + +static const struct spi_offload_trigger_ops adi_util_sigma_delta_ops =3D { + .match =3D adi_util_sigma_delta_match, +}; + +static int adi_util_sigma_delta_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct spi_offload_trigger_info info =3D { + .fwnode =3D dev_fwnode(dev), + .ops =3D &adi_util_sigma_delta_ops, + }; + struct clk *clk; + + clk =3D devm_clk_get_enabled(dev, NULL); + if (IS_ERR(clk)) + return dev_err_probe(dev, PTR_ERR(clk), "Failed to get clock\n"); + + return devm_spi_offload_trigger_register(dev, &info); +} + +static const struct of_device_id adi_util_sigma_delta_of_match_table[] =3D= { + { .compatible =3D "adi,util-sigma-delta-spi", }, + { } +}; +MODULE_DEVICE_TABLE(of, adi_util_sigma_delta_of_match_table); + +static struct platform_driver adi_util_sigma_delta_driver =3D { + .probe =3D adi_util_sigma_delta_probe, + .driver =3D { + .name =3D "adi-util-sigma-delta-spi", + .of_match_table =3D adi_util_sigma_delta_of_match_table, + }, +}; +module_platform_driver(adi_util_sigma_delta_driver); + +MODULE_AUTHOR("David Lechner "); +MODULE_DESCRIPTION("ADI Sigma-Delta SPI offload trigger utility driver"); +MODULE_LICENSE("GPL"); --=20 2.43.0 From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f181.google.com (mail-oi1-f181.google.com [209.85.167.181]) (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 A1A6F2EE270 for ; Fri, 27 Jun 2025 23:41:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067699; cv=none; b=jWG4MdISE6znIYkRkQio1VIXJQaXKc2dnaOdyvq1R9veX6ZmnBV8eGjINUxS40YLjoJ//QHIctCz0BNESPxyxSvvwojxNFm6FCFLtPKx0filXZw/yiFJSgQZFfB0Q8ESTpTleMEPms3oqarU9yShvWkBAdlrCd/WlMkPylSyfcs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067699; c=relaxed/simple; bh=9aRsS4c+EVWvvCxccNYIyqIDtyXAfYj+/CLYuMIN3pk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=P+scyxwFQTm2jiNJKGEMAJcwonnNzG7/epQtbB8stBwwjdEvAysRsF7053QaMfBS2slg52D7x55MkuF87b9A7YUGDdFDLp1bTTjOJn6gNKDqyfHvazEFBHhTTqwzAQz4CVmUFEgf9pVg9Gs93wzga/mroxaCH2TjJaqOxKloQCw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=OWb2MtR1; arc=none smtp.client-ip=209.85.167.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="OWb2MtR1" Received: by mail-oi1-f181.google.com with SMTP id 5614622812f47-40b32b6af9eso948134b6e.1 for ; Fri, 27 Jun 2025 16:41:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067696; x=1751672496; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=09iKu9SVVSyk2GA4qCDi/PaMVttyfxxhvZ3lPr9vevk=; b=OWb2MtR1wxWGtvyURuwFNlK7gLRc6xu9vGdLneF6LF99Cy9Ir4kWgGN8v/cSXEW2jF isuTZj7VKw79ehjC+7VRiaXdmo1ZaerU7BKWtImM86gpPgC62ZfCNFolvXyGzcPGLqMI 0vGcBXOEFQwe1CteQI0tbQ6H+QKyudkTc1+TqXzZd/chvrMfXpq4g02IiclIfxPN9FXY R9Ql5U2Cz1RPFSv3FiLRKwkc9+BaZ9YFbD3LiJVty5oTRdWqpOGo8G4Uz3ZinJTbvXh4 uZayv3+R4L2rHO+sFgYpHGgdrgBmdxSOmgOQITj4d6ydzHyKvGr8MUuMm7JUTMN+o5D7 fHog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067696; x=1751672496; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=09iKu9SVVSyk2GA4qCDi/PaMVttyfxxhvZ3lPr9vevk=; b=R2AXGLbkLfk/QFWFV4qhc6v78/6Spgez8fj3hXfye9C/r6cmEK7y0KoK1Ma5OtOLZq XIcjUQSfo9AojSmGunreuOT8bSsTHzfjDVM9BI1Cj+zSF0gFj0cp9zfTACloii3x304B yPOm8IQ/QKprnC2AtrU5LXOUOldVQ6VSHoS/3yDFqfcokaVxAXYbG8sbL32C6keSzY4f eW9xc6dYWAuOjqyuLeA3jci2LDegEGPsYp7I6TZh4D5kxJTQu74UjUSERfPJDhhOvZGg 3vOW2e8sa2OsjHhyii3O/MjZ7DPq1zd8ZmR5xZEOCVg9tOs7Z+ifxli8HeiFLSoAJ9s5 rlIw== X-Forwarded-Encrypted: i=1; AJvYcCXE+G8OpbIEGEsoFkbaQmvXr47ixP7tFEaccHHS0LLbffl+7una4pvEtP+WK8b1THxHv8tpF2zrbFCI1Yg=@vger.kernel.org X-Gm-Message-State: AOJu0Yx0ieQhDfDi/EfKwGFOChsIW+jDHokqMzyhp3xFMoy6Z0T4+1V6 sqkD0MmeHx8r5ZkrRM9CBlIcP8+5heEnoDRx9N4rNuebkCgVY2wZUoCmOGZ40eoqjns= X-Gm-Gg: ASbGncs0RLrZUxumk7pU7I/BnhhrBDTncn4NgSxxUFY33QwmNnyqpewk1GzZiQfMLQ0 u2fb3X1A9dUjVfNeE7GNTo8GeXlqZB3TFDEGVY6G9/dSe3g10m1LPzuU0Xw2OCAiRuKz5LY2Udz umtICDNfGZ/dTlIpTGdB9TdEOlXu2iiPY/T7f4AA+H4qb0+IAeCyGsY+Bul0Q+TVV+ed/H/z9JT zFFh8sWyTNGed2/aMLXnpOJodKrKGkUbw+vKBJ14iaNB9kUisv2Dt6z1D6dFbo/WjFbML7Oc/4A Dx8cis6cxJhkAGxwltv2BhScVl9RX7Z46fwfg0S2LQkPqkgCBJ4iylhvYiocU7GAq4E= X-Google-Smtp-Source: AGHT+IG1Wk0RDQrob8xKgWXmlHoHuY6AB0PgqLKkmTNyTKzQOEl+ROC0jliAQhtmVmMMXV9VLuLwNQ== X-Received: by 2002:a05:6808:f0c:b0:40a:fb27:9e8d with SMTP id 5614622812f47-40b33dbc679mr4316226b6e.15.1751067695602; Fri, 27 Jun 2025 16:41:35 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:35 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:40:06 -0500 Subject: [PATCH v2 10/11] iio: adc: ad_sigma_delta: add SPI offload support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-10-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=12134; i=dlechner@baylibre.com; h=from:subject:message-id; bh=9aRsS4c+EVWvvCxccNYIyqIDtyXAfYj+/CLYuMIN3pk=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXywV67vkB9d6JV+WJ2Zr1c6efD/07BSsDkA4L WR8J0cM9EmJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8sFQAKCRDCzCAB/wGP wDI5B/9CCmEdXzDOuikQ/opZVhbtfJKXzy9Qzi8FowIlYJz4BCXzKuqFBBSZMGisYoIhCuhPhA6 f4PBsjoOtLaI6tGIus35F7XUFz4QL5RqREMegpvh4d1gBZdBnpLV/ErsFqNFVmgD5Z7JwMjUkMY 6E5+T9/RVyAZPbZ77YmPekIWzaPCiq8MdC8JbJ8jv/t0RyCdhaYLbDucO9hHzJOFjapr2UNvv0H jNVm6vDeHtuiZfLP4+dGhTG+egQmIc1GusxBLNXUNNZmBm2XyWyDZhSQFUurlQstkoaBF1LpsKn 5BLuM+4Hx3qaUv1MQvly3kro5IUBX/RQoIqPhfD07Inhxy2d X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Add SPI offload support to the ad_sigma_delta module. When the SPI controller has SPI offload capabilities, the module will now use that for buffered reads instead of the RDY interrupt trigger. Drivers that use the ad_sigma_delta module will have to opt into this by setting supports_spi_offload since each driver will likely need additional changes before SPI offload can be used. This will allow us to gradually enable SPI offload support for each driver. Signed-off-by: David Lechner --- drivers/iio/adc/ad_sigma_delta.c | 163 +++++++++++++++++++++++------= ---- include/linux/iio/adc/ad_sigma_delta.h | 14 +++ 2 files changed, 131 insertions(+), 46 deletions(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_de= lta.c index 30ae7ef6d3f9f686b02176508813c689e6fb92f2..38ed52644563c8d1869b12bcf25= c4d63be35dd17 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -27,6 +28,7 @@ #include =20 #include +#include #include #include #include @@ -467,8 +469,7 @@ static int ad_sd_buffer_postenable(struct iio_dev *indi= o_dev) struct ad_sigma_delta *sigma_delta =3D iio_device_get_drvdata(indio_dev); const struct iio_scan_type *scan_type =3D &indio_dev->channels[0].scan_ty= pe; struct spi_transfer *xfer =3D sigma_delta->sample_xfer; - unsigned int i, slot, samples_buf_size; - unsigned int channel, scan_size; + unsigned int i, slot, channel; u8 *samples_buf; int ret; =20 @@ -496,24 +497,34 @@ static int ad_sd_buffer_postenable(struct iio_dev *in= dio_dev) sigma_delta->active_slots =3D slot; sigma_delta->current_slot =3D 0; =20 - if (sigma_delta->active_slots > 1) { - ret =3D ad_sigma_delta_append_status(sigma_delta, true); - if (ret) - return ret; - } + if (ad_sigma_delta_has_spi_offload(sigma_delta)) { + xfer[1].offload_flags =3D SPI_OFFLOAD_XFER_RX_STREAM; + xfer[1].bits_per_word =3D scan_type->realbits; + xfer[1].len =3D spi_bpw_to_bytes(scan_type->realbits); + } else { + unsigned int samples_buf_size, scan_size; =20 - samples_buf_size =3D ALIGN(slot * BITS_TO_BYTES(scan_type->storagebits), = 8); - samples_buf_size +=3D sizeof(s64); - samples_buf =3D devm_krealloc(&sigma_delta->spi->dev, sigma_delta->sample= s_buf, - samples_buf_size, GFP_KERNEL); - if (!samples_buf) - return -ENOMEM; + if (sigma_delta->active_slots > 1) { + ret =3D ad_sigma_delta_append_status(sigma_delta, true); + if (ret) + return ret; + } =20 - sigma_delta->samples_buf =3D samples_buf; - scan_size =3D BITS_TO_BYTES(scan_type->realbits + scan_type->shift); - /* For 24-bit data, there is an extra byte of padding. */ - xfer[1].rx_buf =3D &sigma_delta->rx_buf[scan_size =3D=3D 3 ? 1 : 0]; - xfer[1].len =3D scan_size + (sigma_delta->status_appended ? 1 : 0); + samples_buf_size =3D + ALIGN(slot * BITS_TO_BYTES(scan_type->storagebits), 8); + samples_buf_size +=3D sizeof(s64); + samples_buf =3D devm_krealloc(&sigma_delta->spi->dev, + sigma_delta->samples_buf, + samples_buf_size, GFP_KERNEL); + if (!samples_buf) + return -ENOMEM; + + sigma_delta->samples_buf =3D samples_buf; + scan_size =3D BITS_TO_BYTES(scan_type->realbits + scan_type->shift); + /* For 24-bit data, there is an extra byte of padding. */ + xfer[1].rx_buf =3D &sigma_delta->rx_buf[scan_size =3D=3D 3 ? 1 : 0]; + xfer[1].len =3D scan_size + (sigma_delta->status_appended ? 1 : 0); + } xfer[1].cs_change =3D 1; =20 if (sigma_delta->info->has_registers) { @@ -529,6 +540,8 @@ static int ad_sd_buffer_postenable(struct iio_dev *indi= o_dev) &xfer[1], 1); } =20 + sigma_delta->sample_msg.offload =3D sigma_delta->offload; + ret =3D spi_optimize_message(sigma_delta->spi, &sigma_delta->sample_msg); if (ret) return ret; @@ -545,7 +558,19 @@ static int ad_sd_buffer_postenable(struct iio_dev *ind= io_dev) if (ret) goto err_unlock; =20 - ad_sd_enable_irq(sigma_delta); + if (ad_sigma_delta_has_spi_offload(sigma_delta)) { + struct spi_offload_trigger_config config =3D { + .type =3D SPI_OFFLOAD_TRIGGER_DATA_READY, + }; + + ret =3D spi_offload_trigger_enable(sigma_delta->offload, + sigma_delta->offload_trigger, + &config); + if (ret) + goto err_unlock; + } else { + ad_sd_enable_irq(sigma_delta); + } =20 return 0; =20 @@ -560,10 +585,15 @@ static int ad_sd_buffer_postdisable(struct iio_dev *i= ndio_dev) { struct ad_sigma_delta *sigma_delta =3D iio_device_get_drvdata(indio_dev); =20 - reinit_completion(&sigma_delta->completion); - wait_for_completion_timeout(&sigma_delta->completion, HZ); + if (ad_sigma_delta_has_spi_offload(sigma_delta)) { + spi_offload_trigger_disable(sigma_delta->offload, + sigma_delta->offload_trigger); + } else { + reinit_completion(&sigma_delta->completion); + wait_for_completion_timeout(&sigma_delta->completion, HZ); =20 - ad_sd_disable_irq(sigma_delta); + ad_sd_disable_irq(sigma_delta); + } =20 sigma_delta->keep_cs_asserted =3D false; ad_sigma_delta_set_mode(sigma_delta, AD_SD_MODE_IDLE); @@ -678,7 +708,8 @@ static irqreturn_t ad_sd_data_rdy_trig_poll(int irq, vo= id *private) if ((!sigma_delta->rdy_gpiod || gpiod_get_value(sigma_delta->rdy_gpiod)) = && ad_sd_disable_irq(sigma_delta)) { complete(&sigma_delta->completion); - iio_trigger_poll(sigma_delta->trig); + if (sigma_delta->trig) + iio_trigger_poll(sigma_delta->trig); =20 return IRQ_HANDLED; } @@ -711,17 +742,6 @@ static int devm_ad_sd_probe_trigger(struct device *dev= , struct iio_dev *indio_de unsigned long irq_flags =3D irq_get_trigger_type(sigma_delta->irq_line); int ret; =20 - if (dev !=3D &sigma_delta->spi->dev) { - dev_err(dev, "Trigger parent should be '%s', got '%s'\n", - dev_name(dev), dev_name(&sigma_delta->spi->dev)); - return -EFAULT; - } - - sigma_delta->trig =3D devm_iio_trigger_alloc(dev, "%s-dev%d", indio_dev->= name, - iio_device_id(indio_dev)); - if (sigma_delta->trig =3D=3D NULL) - return -ENOMEM; - init_completion(&sigma_delta->completion); =20 sigma_delta->irq_dis =3D true; @@ -741,14 +761,33 @@ static int devm_ad_sd_probe_trigger(struct device *de= v, struct iio_dev *indio_de if (ret) return ret; =20 - iio_trigger_set_drvdata(sigma_delta->trig, sigma_delta); + if (ad_sigma_delta_has_spi_offload(sigma_delta)) { + sigma_delta->offload_trigger =3D + devm_spi_offload_trigger_get(dev, sigma_delta->offload, + SPI_OFFLOAD_TRIGGER_DATA_READY); + if (IS_ERR(sigma_delta->offload_trigger)) + return dev_err_probe(dev, PTR_ERR(sigma_delta->offload_trigger), + "Failed to get SPI offload trigger\n"); + } else { + if (dev !=3D &sigma_delta->spi->dev) + return dev_err_probe(dev, -EFAULT, + "Trigger parent should be '%s', got '%s'\n", + dev_name(dev), dev_name(&sigma_delta->spi->dev)); =20 - ret =3D devm_iio_trigger_register(dev, sigma_delta->trig); - if (ret) - return ret; + sigma_delta->trig =3D devm_iio_trigger_alloc(dev, "%s-dev%d", + indio_dev->name, iio_device_id(indio_dev)); + if (!sigma_delta->trig) + return -ENOMEM; =20 - /* select default trigger */ - indio_dev->trig =3D iio_trigger_get(sigma_delta->trig); + iio_trigger_set_drvdata(sigma_delta->trig, sigma_delta); + + ret =3D devm_iio_trigger_register(dev, sigma_delta->trig); + if (ret) + return ret; + + /* select default trigger */ + indio_dev->trig =3D iio_trigger_get(sigma_delta->trig); + } =20 return 0; } @@ -768,12 +807,29 @@ int devm_ad_sd_setup_buffer_and_trigger(struct device= *dev, struct iio_dev *indi if (!sigma_delta->slots) return -ENOMEM; =20 - ret =3D devm_iio_triggered_buffer_setup(dev, indio_dev, - &iio_pollfunc_store_time, - &ad_sd_trigger_handler, - &ad_sd_buffer_setup_ops); - if (ret) - return ret; + if (ad_sigma_delta_has_spi_offload(sigma_delta)) { + struct dma_chan *rx_dma; + + rx_dma =3D devm_spi_offload_rx_stream_request_dma_chan(dev, + sigma_delta->offload); + if (IS_ERR(rx_dma)) + return dev_err_probe(dev, PTR_ERR(rx_dma), + "Failed to get RX DMA channel\n"); + + ret =3D devm_iio_dmaengine_buffer_setup_with_handle(dev, indio_dev, + rx_dma, IIO_BUFFER_DIRECTION_IN); + if (ret) + return dev_err_probe(dev, ret, "Cannot setup DMA buffer\n"); + + indio_dev->setup_ops =3D &ad_sd_buffer_setup_ops; + } else { + ret =3D devm_iio_triggered_buffer_setup(dev, indio_dev, + &iio_pollfunc_store_time, + &ad_sd_trigger_handler, + &ad_sd_buffer_setup_ops); + if (ret) + return ret; + } =20 return devm_ad_sd_probe_trigger(dev, indio_dev); } @@ -836,6 +892,20 @@ int ad_sd_init(struct ad_sigma_delta *sigma_delta, str= uct iio_dev *indio_dev, return sigma_delta->irq_line; } =20 + if (info->supports_spi_offload) { + struct spi_offload_config offload_config =3D { + .capability_flags =3D SPI_OFFLOAD_CAP_TRIGGER | + SPI_OFFLOAD_CAP_RX_STREAM_DMA, + }; + int ret; + + sigma_delta->offload =3D devm_spi_offload_get(&spi->dev, spi, + &offload_config); + ret =3D PTR_ERR_OR_ZERO(sigma_delta->offload); + if (ret && ret !=3D -ENODEV) + return dev_err_probe(&spi->dev, ret, "Failed to get SPI offload\n"); + } + iio_device_set_drvdata(indio_dev, sigma_delta); =20 return 0; @@ -845,3 +915,4 @@ EXPORT_SYMBOL_NS_GPL(ad_sd_init, "IIO_AD_SIGMA_DELTA"); MODULE_AUTHOR("Lars-Peter Clausen "); MODULE_DESCRIPTION("Analog Devices Sigma-Delta ADCs"); MODULE_LICENSE("GPL v2"); +MODULE_IMPORT_NS("IIO_DMAENGINE_BUFFER"); diff --git a/include/linux/iio/adc/ad_sigma_delta.h b/include/linux/iio/adc= /ad_sigma_delta.h index 2037bb68b44115681ff48f66b580b63f50c2ea9e..6e70a412e218d54bbf9bb6861b1= a4cc89be868e8 100644 --- a/include/linux/iio/adc/ad_sigma_delta.h +++ b/include/linux/iio/adc/ad_sigma_delta.h @@ -31,6 +31,8 @@ struct ad_sigma_delta; struct device; struct gpio_desc; struct iio_dev; +struct spi_offload; +struct spi_offload_trigger; =20 /** * struct ad_sigma_delta_info - Sigma Delta driver specific callbacks and = options @@ -47,6 +49,10 @@ struct iio_dev; * @has_registers: true if the device has writable and readable registers,= false * if there is just one read-only sample data shift register. * @has_named_irqs: Set to true if there is more than one IRQ line. + * @supports_spi_offload: Set to true if the driver supports SPI offload. = Often + * special considerations are needed for scan_type and other channel + * info, so individual drivers have to set this to let the core + * code know that it can use SPI offload if it is available. * @addr_shift: Shift of the register address in the communications regist= er. * @read_mask: Mask for the communications register having the read bit se= t. * @status_ch_mask: Mask for the channel number stored in status register. @@ -65,6 +71,7 @@ struct ad_sigma_delta_info { int (*postprocess_sample)(struct ad_sigma_delta *, unsigned int raw_sampl= e); bool has_registers; bool has_named_irqs; + bool supports_spi_offload; unsigned int addr_shift; unsigned int read_mask; unsigned int status_ch_mask; @@ -108,6 +115,8 @@ struct ad_sigma_delta { struct spi_message sample_msg; struct spi_transfer sample_xfer[2]; u8 *samples_buf; + struct spi_offload *offload; + struct spi_offload_trigger *offload_trigger; =20 /* * DMA (thus cache coherency maintenance) requires the @@ -121,6 +130,11 @@ struct ad_sigma_delta { u8 sample_addr; }; =20 +static inline bool ad_sigma_delta_has_spi_offload(struct ad_sigma_delta *s= d) +{ + return sd->offload !=3D NULL; +} + static inline int ad_sigma_delta_set_channel(struct ad_sigma_delta *sd, unsigned int channel) { --=20 2.43.0 From nobody Wed Oct 8 12:36:08 2025 Received: from mail-oi1-f172.google.com (mail-oi1-f172.google.com [209.85.167.172]) (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 6CAD22EE60B for ; Fri, 27 Jun 2025 23:41:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067699; cv=none; b=LiyZMMlx7SUFgSGBbFWp2+Uz1S4qFsas98+kHf6fsgS2ffNAZ6sRs4HEUQVfx4B+0iND93tNi69RMPsMb0nkhZBds7GXm0bEPBIMotZPCnj5LPLEvm1SfveBafPmR1b3AzBRc3MJNPdXJPhy5UN85BL3OYB1gdgCavcCjLLg5Bc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751067699; c=relaxed/simple; bh=x4deODr2J/B/ZfZk3+/1/BV8bYxvy5G2y6ggy6cAeUc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Dgr/MG+QFzGbhmZ/gbACW2LhxAsD5C4qIr76Hxf6zFHwUHY7msKYsQCL1zyhDxGLC+OD+kc/DKRPKWWWkWA0RVDCkS8kmKbA0ZQGvt6+u1jSgJw8jArJ1c89X+5PFDv87TgjBKYiKPRySK/dD33t/mgwayayTt7YUIHM7mSgKV4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=HZ4p/gRd; arc=none smtp.client-ip=209.85.167.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="HZ4p/gRd" Received: by mail-oi1-f172.google.com with SMTP id 5614622812f47-408d14c7e92so323909b6e.3 for ; Fri, 27 Jun 2025 16:41:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751067696; x=1751672496; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=suln3ZPyOtbgf+467Jl0jyyrQzWY3/ACSgQiyK4V5QE=; b=HZ4p/gRdPh9Joh/7m7D6Fva0cJ36VmR9Bp/hrTC+77N5yUItE5lJfdPEJFXWEev5m6 947NppeOafZKWiNccQ5/xdDqSnjNzkMqLdnYksmz+Oc+0xkTfw9bvkmA4/MgL+wsVuje DvTCyKfnGMADWcwkjesHei2uzo68Dv0NeDS3rgB7yWSE5n25Nuuptd33rZwXbZYHEicU RQiFij1aE8HSUvApcvQNVitDrVSGDjmgJnA2bY6Mm/GjeIHo0eKCtaqwbII6uVd58yeh UeTIVdDoDw+FM7RHdcq6Xd9frmLkIvZrbPAXiFM0nPOSnmIG+Ddv8HTt+ejPIYucfODg +nZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751067696; x=1751672496; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=suln3ZPyOtbgf+467Jl0jyyrQzWY3/ACSgQiyK4V5QE=; b=LF2GmKbxo4utpBpR56Vpr74w7pIk+WRTKeWHEx0u41Yrt1QKAlp2/PGkidczvgHgzZ nDZzlM8EBFBT7dbqCUinrOpvIIVtWgIScrWX+2QsWmxRB8uYrwdBKqQQ2tRWgpnUW+F6 RlQUXskVZ+JnCp9mjMaAuPguKeX/4767JLLNzV9oER3ch0Zl9d3IT9J7EooN3+bjzAAI dPrdPuYRw7uGJYAiCYABb8VY225ZL2AgICwAwxGZfnQ0jdkLtGhLMUj+cdCRdpJRUH57 ES3eLe5CV6GniMh+a0Fag4corDwSwUzePlabTWSf8MHLj43g0YXiFVfN8AE+2EodVy5M 9RSA== X-Forwarded-Encrypted: i=1; AJvYcCWAT7oQn0DWK5ND8sEcsgwAPhLcDR2ASkiLmPAYLty/ay87ucbdM95fufvCSKnW78NuD10Q30UwNRot40U=@vger.kernel.org X-Gm-Message-State: AOJu0YzLG8uKPjtC1g7H91QLfV5TioqwKHD2ZrHfx4jdNWr3dQ4n/V7s Q3MfD9EpheVRvGLAAJH1okUD0s4veCaMrELKk/71t1NEW5F9bw+Cie/MX1UrcftYkfY= X-Gm-Gg: ASbGncu2hXKW3a1WsKKVJwOPgFM3wxxltlLVLR3ofshAsF9MHC/fAHN/smLP+yW+Kw1 KG7CNTlskqnZtN5M7+w/PGzLjo+Q8IZ7n5Y3fMXLad/6qU5stSjeojaKdIubszLBVeMcKOqSXFE zRE40RwBPFoTWP4F7Ax8lNcV8b0X9le+TaHQmR3yopmeZBF0F2zLhioLNIBzf5paJ76+EkprjuR Rdow/d6Mb0e+/R+j7qCnVUQVA8IKmnhovUmUD2oUoORRldmkiwAhPZQtuF6EqLxEUNMktunclhu RaHCTYM1JR8xD+ObAc5IEx0TGtnMcvfdEqkgI0dHUtyYNHXteBR8QnMuPyZQULgnF1k= X-Google-Smtp-Source: AGHT+IEszVnxwzyUu8l9k/WvR7kBjoiy6AXFg08wYNDhVx48W7AflOGCRwyijBhqehZP+bmW1LpC8g== X-Received: by 2002:a05:6808:16a0:b0:409:f8e:7274 with SMTP id 5614622812f47-40b33e1f70emr3785765b6e.18.1751067696431; Fri, 27 Jun 2025 16:41:36 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:1715:453e:e133:7d6]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b322ae4e9sm568483b6e.17.2025.06.27.16.41.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Jun 2025 16:41:36 -0700 (PDT) From: David Lechner Date: Fri, 27 Jun 2025 18:40:07 -0500 Subject: [PATCH v2 11/11] iio: adc: ad7173: add SPI offload support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-11-f49c55599113@baylibre.com> References: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> In-Reply-To: <20250627-iio-adc-ad7173-add-spi-offload-support-v2-0-f49c55599113@baylibre.com> To: Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mark Brown Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2110; i=dlechner@baylibre.com; h=from:subject:message-id; bh=x4deODr2J/B/ZfZk3+/1/BV8bYxvy5G2y6ggy6cAeUc=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoXywbZ3akr4Chs8YgOyK+7h+O6cqelf/VMExPK 4GiksjiiRWJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaF8sGwAKCRDCzCAB/wGP wHDwB/9daIu7wU8HmfXqqf/0QoDpVWOj5ADrc2WMoNjPFQEftaBGFOm1rdoqqyMt84oatVzP9KA 6ALLKPtnKhspuD5eQjHfWV//yErQA9TnClFJWADMyEogkYmtAuvPgfu3ecUSUmNSjDpazTAgOUG ckEBGtC3uLJMRkfD0n2yHBQsKkGsH0vp3hUELYKuFa9jaghzPjeSMMOt8LEopm6s88kr4mN1Xmn 7AYQZLcA22rDmwTc2D1ADD9bIaIXNDJ3dEDtFm26TYaEvZxrTbZIyZf19oaL8kjQ0ILRpvsZ7t/ hp2//OOeTLp9S/OPoBYpN33mGe0MUxCbMqx8M1ek69qsP3Pr X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Enable SPI offload support for the AD7173 ADC driver. The scan_type used for SPI offload is assuming that we are using the ad411x_ad717x HDL project [1] which always stores data words in 32-bits. Link: https://analogdevicesinc.github.io/hdl/projects/ad411x_ad717x/index.h= tml [1] Signed-off-by: David Lechner --- drivers/iio/adc/ad7173.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/iio/adc/ad7173.c b/drivers/iio/adc/ad7173.c index 010339c2b7044da4b36dc894a38a145c2fcccd6a..580d4bf3366b193fa0f13d0a288= 86d390e1295b8 100644 --- a/drivers/iio/adc/ad7173.c +++ b/drivers/iio/adc/ad7173.c @@ -748,6 +748,7 @@ static const struct ad_sigma_delta_info ad7173_sigma_de= lta_info_4_slots =3D { .set_mode =3D ad7173_set_mode, .has_registers =3D true, .has_named_irqs =3D true, + .supports_spi_offload =3D true, .addr_shift =3D 0, .read_mask =3D BIT(6), .status_ch_mask =3D GENMASK(3, 0), @@ -764,6 +765,7 @@ static const struct ad_sigma_delta_info ad7173_sigma_de= lta_info_8_slots =3D { .set_mode =3D ad7173_set_mode, .has_registers =3D true, .has_named_irqs =3D true, + .supports_spi_offload =3D true, .addr_shift =3D 0, .read_mask =3D BIT(6), .status_ch_mask =3D GENMASK(3, 0), @@ -1585,6 +1587,11 @@ static int ad7173_fw_parse_channel_config(struct iio= _dev *indio_dev) if (st->info->data_reg_only_16bit) chan_arr[chan_index].scan_type =3D ad4113_scan_type; =20 + if (ad_sigma_delta_has_spi_offload(&st->sd)) { + chan_arr[chan_index].scan_type.storagebits =3D 32; + chan_arr[chan_index].scan_type.endianness =3D IIO_CPU; + } + chan_index++; } =20 @@ -1675,6 +1682,12 @@ static int ad7173_fw_parse_channel_config(struct iio= _dev *indio_dev) if (st->info->data_reg_only_16bit) chan_arr[chan_index].scan_type =3D ad4113_scan_type; =20 + /* Assuming SPI offload is ad411x_ad717x HDL project. */ + if (ad_sigma_delta_has_spi_offload(&st->sd)) { + chan_arr[chan_index].scan_type.storagebits =3D 32; + chan_arr[chan_index].scan_type.endianness =3D IIO_CPU; + } + chan_index++; } return 0; --=20 2.43.0