From nobody Wed Oct 8 05:34:57 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 6BC57269CE5 for ; Tue, 1 Jul 2025 21:39:32 +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=1751405974; cv=none; b=SQf/ewQ/PgT+51ubJLLYgCMeVbcE3Z9tieXkkT7SCrT0MJo9THmcOYFcGAGaa87nrkqNV//ywdMmAX138gsFGWLjyeAVB9OADwUiXZCW8qSUiVU10lJgP1D5k14e+wCWE5BM4T0GF2S0yMxcKDx2rx+0wXjgBPq52nFaYRyRsvY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405974; c=relaxed/simple; bh=0yYId7CmKo/+nPN29+4m0T9CC1yhegBE9FCPgm6tkyc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SjMczvW00dWZBcNxKYCbn1fKZA2Kmtr54NNpUT/KCHONMI7YaxbKuZz/aSwggAXevs6w3dByo2iX48jEfnEVZNqW9fe/LZAjmkr92XaXND9cnQPg5CFamXKaPxO8A+AMzUfHTFCP99fweKLZ1Zy95+Ir0E7nWt0/oDhmGoDCzM4= 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=bmIESoKj; 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="bmIESoKj" Received: by mail-oi1-f180.google.com with SMTP id 5614622812f47-407a3913049so3280143b6e.2 for ; Tue, 01 Jul 2025 14:39:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405971; x=1752010771; 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=bmIESoKjaM6+/GQDPWsc5plFMhIZu6XHFqo12Xivuelc1PWg9nj0RHqRN/VVB8LFEm Hcm4AAs4FZGF5vdks0t0p0w8/6pJBlEWXxYwVkHh5vpdh0CqdabITs+8fSj2bu8/vUKs 8VI8h18bLlQUXnKoJyrS4cawRM6LHsvWX8sBixB4QcGLLS5kkOl5BrmnidLoGrtW/0Dv AhG+tax3II0nXEcAN19uz5ETvOoVjFE+bhGE/GKOPbe8SnhHBL5AMxqcduhgP/1DLxSc KhAQK2DU1dlGIfmlLNK4jB0+MAm1zgr9otpc7hR6nCZujNUS2xPVWN6f+jljGqPBq02R 3CDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405971; x=1752010771; 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=w7dMlc6ScXUkag7arggkSoPLiVcmTRVN0UxKsy5oc2LW1rq/TRbaupTOuUKEtDcAQZ RTTrKcApsrGhEyzD+FQTXMaspxzPeKkG5mCLopxHwXJQEOFUpl6nn7/GwosZ0n3kzmyf Es3eMy4k+eDN5vRVQcsRJ409OkGo1Vbt/NS1NeW2tkCrYSUVEoy29nRrA6xGOr7AfTgA 8SVTquu+TVG/ANBB8ryQ+wrS9JEh2AT7hRrha9FLe8vajnfr8QOjhgKw1qyNZrBbnxNu d+OLYNyodCrwvc2eH77F/UW25TTLm0WQMUFzJ+iHw9tbkxJDAqoZhQpGdB/dKw70eUpT U8Bg== X-Forwarded-Encrypted: i=1; AJvYcCX+JgTCoOSFui782YHhB+eGEnf/Jkn6d2fbULPGxo4EGLZrz1SBUdSvily8SFzhyOTij8m80XXw2LcSweE=@vger.kernel.org X-Gm-Message-State: AOJu0YzjIx2qpxNI+bnycY2P60cwmb/Fgja0UhfPvok6mpQXbaN/CLGE PV3Fp6Bc3Ca3S8hZDwAA6LKU5dkFf0FFsMrtBzzv2ESpQ7Xz0/Zojqx2trJYHh+l1ko= X-Gm-Gg: ASbGnctG4+dRnnkcaDk15wFFeYKv/AcVhB98R82DQT2tNgGd27//QGxZYiHul1sGLC8 uKVstRZKJZIJIXhdlPfo7CvKSfBunZ+5/PMv5dIqOTkTPH79hKgM4HlJSGS+O9PSgg+wjNy+Nd4 5ntisHXMVHxrwSRqKV45FjDSDFTZ9PuEcoDeF12ImxhYpOvV/438mhr7iHsZlzayatudhmFqlFx hLx0fD5kq8V93p63fhwlUY4hgnZu83rexxkWx91Pq1Ol1ZFkN71ZAf/O8HWEhkiR9Lzg8tCz/Hn oijfh/AL1PNxNQc6Bb5drt+478W1m0QrPAZR9CJvecHEjlKkKdpY02pG6Q74cNGovlBZ X-Google-Smtp-Source: AGHT+IH7i8yqxhjyYN/KbQhInEcAJaa6cWJ3EyftErBCubqr/OVp0eFazoz27vBEtzCjxnUCgjYlbA== X-Received: by 2002:a05:6808:1307:b0:40a:ab2f:61a with SMTP id 5614622812f47-40b887d9c24mr273589b6e.23.1751405971489; Tue, 01 Jul 2025 14:39:31 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:31 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:49 -0500 Subject: [PATCH v3 01/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-1-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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=kA0DAAoBwswgAf8Bj8AByyZiAGhkVTuiqNL7i1o/SZKUCWwt3GuZlstGKg6M20S11KcCEKhVQ 4kBMwQAAQoAHRYhBOwY2Z5iDoPWnNhomMLMIAH/AY/ABQJoZFU7AAoJEMLMIAH/AY/AhA0H/3CO fopSOjlWHCAtDnc4dQtzMVK1WnXmMthC/eXuPJrwo6ws3pD8i32duohWnCcFRPHLkKDCToZ2989 K64ia8HI+IRjzR6GADENFKWAO3pbtYxf9ENV6jOtVbJP9U4IW1V3urzaF98v7CMOvI66jT+RbnD inubvVxHzwAPS33hJqmptqXma5p3vRLOPfWptbYSuCSedkUq5HocXai8PQUK8JBq3Aygh9sLqSA Tf9lyJ6UGQzkZrEQjrAHEEMVmGZ4H1/gKX+XWLs/ZqLDnV79Be2OYnkwWxCBz7DAbfsT76g/7Oq cy94BHcTuQOxWHHy5Dl9mmtTxuYN+f2QCI0gFoU= 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 Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- 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 05:34:57 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 4D93D2FEE3D for ; Tue, 1 Jul 2025 21:39:33 +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=1751405975; cv=none; b=pxDqiQw82nHiPtdBcWijwDLllaP4bcRVLDIK95EUlq+bQJQuQ1gVd8WT+RdGrQ9ofZphqosLnhYLUcfz98dXd3wKAbEbCcRgsE6ZY4zrtOyicSsgtgd4jRtkLFxJLeGsBk6igX80VmKOO8Cbc7Jy01NvfxYaxLeTcw2enUNj0ME= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405975; 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=CWvlNFV3XQhv6Z3MnzDP+QT90xE3n6730UtUpPT0UOIyOjqgvX4x/Pun+otZZDDevIm9tMA3moALRvBYf/PpfiC3ywgtPnxgJGruhca3pKvBDvHVBurehjO+0Dkix/IcM4EXBKlDQguoNhVa8Pkaoe5YZbi/LjBPsSlwx1txOmU= 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=Jz0LiL07; 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="Jz0LiL07" Received: by mail-oi1-f179.google.com with SMTP id 5614622812f47-407a6c6a6d4so2022939b6e.1 for ; Tue, 01 Jul 2025 14:39:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405972; x=1752010772; 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=Jz0LiL07Iv/DuE4ipjOIC8ZQz2FZpc7wXLwTw7L+JwrX3Nzj8kl+xlUyk5bOdiA6Fc RB+ShDt121kcxfw41Y6GOiBfc1TtADI2DJNdd0wlF7gwYSOEftGBjzj/7xjRNpIvRKEA zHr0mqMiGo7n0o5Y3Hi0PiLj9MGijbU63EguxsamByykZuk0V2aLYJU0SmpGA2qkvGK1 zYGjv7OvqLAGLdys5kYWhosI/jSVDEItQiwEeZammmqO6X0SAQn8K1TNysYoMkU60hge GmFTGfFmHXMZe/LXCdJPjxw0UPtbS5gj5Z5DtWfxZ2/cj3vfyvFV33c399XhqYMtzoDj 3/TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405972; x=1752010772; 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=sNlmKFq54knFY/5l1Sb2PTKpdVyI2p1Kz5sF+I6ze5NN+Le6chyP7RmbZHgdTv8f4t uDrdMAlljepV9fMTgiGYsEIxYr9np+4KVEtkQXIOAeymSe2cVImvQUTRRUKVEp6bN/al Mt8imXonZXCDOnaKBDqcsU5RifyBG+VzrEIe31dSSOVCYqWU5O15vW2nFYJsymPgT86k epmJn1l3Nt0aRrQEc856XhOxBRK+EnHNNPT6CESQedGfODJjfeD3zXCh90kLE1+FT688 LMUTrAh837OykiNQWb6P3q1XBkH91T9a/nzDrkHSq5w43f1iDvHBUPD0UFHzi5W14gJY 3lpg== X-Forwarded-Encrypted: i=1; AJvYcCWeoyB7i/YVBr8ArEEsBy6U3cbk1b4TI1rLpJUKjE9tsoWPm5MBQqNOjFYajNninq2k6Ui8u3skqFwQ6M4=@vger.kernel.org X-Gm-Message-State: AOJu0YyoRzqtPXT0sJ2z9s5VnP1WdRo6Ol2EpA9y8MoNpvh/FPMGBOrq dA1MdyDcwe7Tu70KbbXTeo9J3rBTciU2A+jdSaHaYZXaEBwbIg1STkLteZilLM/cJEs= X-Gm-Gg: ASbGncvXFfxoA4rlOkzKpqonTkd6sG77Ia+G66pU8NxZSA1SRdydfGAvKXSPJAV1Q6s iqneu3PjpuDQ3s0zVRehobMpk64Ts/+CkfvdKx01bDvXIEjVeKVJzs/eQ7FhjiA80TT1HlEko4Z vboN8BofRtH4O9oZ1/HhvoT//ReFu1SR7pbxty6En/bMLBH/w4aNWcwCre1ans0R8MG033vnkBW 5VqSxFIj+Aa8laAPLTRoJ4FsK7ltJCa7bx6vKtYaRYz0dNJLCuRoHSGL8M9348RXbDxNO9I5BL+ gMAlMfqGUlW/7bUKHsDxXpcn8E27vm9bGQ+ht3qgeijCxxs58Wg+zbtQ1rf880OqZbbp X-Google-Smtp-Source: AGHT+IEVj+OQx1ExM6bdvzBEpZB3mbKahHnEvuYiD60xCtIPqVZTq6a66aw113ivnak/wvuX0kwIig== X-Received: by 2002:a05:6808:130f:b0:401:e933:5dd9 with SMTP id 5614622812f47-40b88818292mr219493b6e.20.1751405972280; Tue, 01 Jul 2025 14:39:32 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:31 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:50 -0500 Subject: [PATCH v3 02/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-2-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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/AAcsmYgBoZFVC+1/TsWxjv/MzSa6lzkWpzn21t4FgGShZ9 ysIlXNGMfyJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVQgAKCRDCzCAB/wGP wD9PB/9nTBwTyiDomYAZvoIEQmN1g1VBPdOOGeN9ul8WNmQrd1yFi8z32Q6Oj9AkVyyp+dF/KaH 3gVlsJof5RxnEUgtgKX4o+ikufQdLfYBJbkaz2Pv5QTWj12+/4TwiHpZr6GLJ4I7v6Nf3jnckWg hlKPthQm7S/Ehe9IL7PBNU8c6LIOwO1KhIaH7wQEtwNCVSHUBK3eQ8rtYbu1pANxD0yrFmvHzZV GdkuBqVlce7vJMNJhC3bR27n65Kh+U3Pe/I3RccsK3oU/ahh88PAAMFijIgX6vpQAcjaxRWYrUV PGCCD8F2afbIdrf6V1n1ndfER60gVI/pZPvEA5axfL0zMGew 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 Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- 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 05:34:57 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 0E67B26B77C for ; Tue, 1 Jul 2025 21:39:33 +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=1751405976; cv=none; b=qetG2Bekp47jUjQI++KCtGwcOt6VOLi4fY3bcPrOEhIQKkX/Vs/wsk3y1bOPgSoZ7cfYrrc7/oZmXVv9HihVgfhCuW3+CuIgC9XvZwxy/OAp1wU71nBxlcJ6Id6WfPOZsKCgR9iimUTK8aloZEhHZdg3xp1LqNS82vSfZZdgkzA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405976; c=relaxed/simple; bh=FtjSefgJ38MUOtssdwwTVZxqFU2P60mzs7S3a2VVXcU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XZYYRLbTkIb+XHkPqgL9cfaLBTOvF/wtFTH7nUxr2HTlWJHK0K5303QlJ9cd3LJoTx7iGPYcP3aPSwzkLCy6/Q3ImndhQoZuG327FAev1asm/udN7wzthTSmwT89L4tUAlAxdC54W/g5BkSdpgP/aLfw2kaMEklN4noIIz7gBDY= 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=oSoQxzOf; 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="oSoQxzOf" Received: by mail-oi1-f180.google.com with SMTP id 5614622812f47-40af40aef06so4112206b6e.3 for ; Tue, 01 Jul 2025 14:39:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405973; x=1752010773; 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=oSoQxzOfIE8OiJfLxp0Unm2fJnkK9z2Um5LdSqijwmVkl05wJrSiCEAgM/NUJIeW9y xoxop4WsCqOslJY3KO5/lom3n3xx+C+uOIUIS36JV6+ErpMTqekwSWYs/lLsev5HCo7b WJBWGPiiQGGfRmDjKQBm+U+WwKi+mwHHscaYDy8CfwYYhVe41yI8Y1NTAe21uYxCjTML Jth4yQjlRPWzwAhkJG2h4sxxePdeUUnZKxteHKTbRx5Ko26AfBCNEGffIjv2c4RQK6pG 9IgvhabQ0OOcDQD0RH61MIn8MuVnHjtrzQhCwIC5YbowBGagOHRDrFq1ITo9Lr/qa+Zb KPSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405973; x=1752010773; 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=R70pNJzU8Bg4McjY3wQWkKEiTN2yw6fb2BkZuTZvR03nhrDXlMSlbrF4B0dXjfn19P Jp2n+1T/8ctxYis+7iHlO1uMJAHCTu/t4pJ1m1PZ64VdzJcm+RxEGJDI48NU0XOnfVol 90T+NhgRLfMPIzS3SeO5GSJMaXNrO0WYr6LIbUzYT+vFXQ6SHGmYIweiRKi5mGmzEq5A 3JI2jtzLIwlnbjQsn/2UDea93wqqPOx1iy9526YYHgFb2VtP9YmEMF1mxfqNKHQHuoSW sxuPwA9o+w7fPtE/rnxdsZ5t4iAuCGnmML4ldcWmcNkE21rYKQQ+Z7697MZyBmxQQPIe YCBg== X-Forwarded-Encrypted: i=1; AJvYcCWP6I6vC5fjkEk2nnv2yDdyNYOrj9JgVH55s9KLdugHgLO4WAiGSI0V6dnCLxkSIXpWAGibqrH2WM70gVY=@vger.kernel.org X-Gm-Message-State: AOJu0YyUgfjGfixc6+xRzgqOOmDkdJB/w4bx8+VEz08uTwmRv8yabKqF 8yKE4Jki7bkYarntGSgDthkwYVfehKpAnpPoaKE9CgvSNAgLfvlIZ9PdCcJwCxFYp7o= X-Gm-Gg: ASbGncseGq0KRbVW0znNyxsxUUie2FQMDPdWU97CGHmg1XVT5xi8ju88s/YbiaDFbrJ EKP6RuYZfVQpsfKFmDV1dwV0EF6m78/LBWzDU/E+GTPdexQ7rozlDlHUjs/xPlZCsyWUGtMFRuu yybdzieCNtjBZZoaZ5vABJFoDOTAMHEggo8qogMNiBSrW5fWW6tjtjVJWcjbCvHvTtNVT7+fGll FJXzpggzlTjvrdXHODK0fmKE8PaJ21/crdCNOCX5sjw2tvrdcZV6j4KLaCkI5W7XncMtFSznYTI 26uO6x8fn7xLq3GV875wewkwncLDjee5yNYIuNIO8ofZPU8SlRRDO3kU8jjsrVMn2PMz X-Google-Smtp-Source: AGHT+IFPLpGlQzR3j7kaW4n/Pqc3/Q6LASGd88cjHqp7yJPIT8kSoq4bcJprhlxmKWGS/E0s1JApjw== X-Received: by 2002:a05:6808:130f:b0:409:f8e:726f with SMTP id 5614622812f47-40b8881832amr242630b6e.25.1751405973087; Tue, 01 Jul 2025 14:39:33 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:32 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:51 -0500 Subject: [PATCH v3 03/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-3-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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/AAcsmYgBoZFVO09pl3X9dfHB8dEJtTortsapcFVhaYcaxb ZP834aYu+eJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVTgAKCRDCzCAB/wGP wOMHB/9clEf7mm/2AnqkayHgZUQcPbtjvar4tPyhxrdO7bPQ2NixAHgXZ8OgLCWT/alB+SdFO/Y wJ6+m5nDLFavvyluv/75j86akbfvlTn51EraqcawOIqU+vPROQ1IJZfx5x8yefJLn7nNdpmqt8N Wtakd2g6istk2GCpNoT2LrsHk51IhsPVsAAok25Lw6wWWrjHD+ETkJxg4sbU1OKDbEqtyIOeKOx I/MdNFtLv/R8V1gSbyhQ4mFgw8YwWbya9bEBsG1lqLkt7yDALUlAlccueJg6ToxeQCGfxwU6i/7 IsJqM+AztiQ99ILdshq7VhraupPiRUAcsZ9Khp4B3G6Ipo9v 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 Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- 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 05:34:57 2025 Received: from mail-ot1-f54.google.com (mail-ot1-f54.google.com [209.85.210.54]) (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 E556C26B945 for ; Tue, 1 Jul 2025 21:39:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405977; cv=none; b=MhSEowyGf5oZQ46BSzju6gPTGiBJ+oXpQPJbcI/+x4OIq2XI4ECqE8DXI7+axlnR4yo9tY1WqrQWh4K8T9jrvFOJqPZ0ULscg2uaavoyJMyAU8znrHgWbnWsP+uzGY9cqT2JWEJ+vG9AZbCRJJ3/hzldiWz/WM2ks8eWu7yXHjE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405977; c=relaxed/simple; bh=eX4YHp/dtOegV1BsNpjg29XkjKcYwdbRuJEkdrbboOc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ilYEXSZ22waI+mYMXrZ91wV2cXnXBw+roC7Ogm83Sp3vSNEdMH+T4cM/a92CAb4cQt48uWSzdL0q+khTw3HE2dzPoZQNR9ozgFKZ3RAb8troTot/dJ+xufsnyhbOYypPaU2O6tmipOYkANmkrohPdKVps6T5erI8d0YZMKKAOaQ= 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=vY1msg12; arc=none smtp.client-ip=209.85.210.54 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="vY1msg12" Received: by mail-ot1-f54.google.com with SMTP id 46e09a7af769-73adf1a0c48so1990359a34.2 for ; Tue, 01 Jul 2025 14:39:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405974; x=1752010774; 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=R2FCNKCwh9PvjlU7ijHy+Usg9/eSYsjcOSLSWrMIa7U=; b=vY1msg12b2q0qoGp2IQQRIZAZqnbeIqJwZFDdEw5J2y7zJkC7JFZzxkQ5lBHqvek9J q7sxz6h21zwnSqu47YAOJqy2uOzoLkLRk4gUvEz+ezkYMgp5UxuMADQ5Vr+2t7LmFZC7 pWJOChk1PH7fNy3symV+X9QhmUt6xBWFYk/Yb9IdMvrosVNdI84gkKu8n3ta5KFuf6Gk KgtGKW7pgAtVaFlp/AHRtUrTstpFtOiwYbkuRCKaMUqV5eWy/nyuN0uX2okiVwOIBimJ yVqH6F6daGESvoZhaGG85nWMNqcl7iZTLdYpNSDn/sb594zeFdkwZ86wZskjLgemqx85 VNPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405974; x=1752010774; 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=R2FCNKCwh9PvjlU7ijHy+Usg9/eSYsjcOSLSWrMIa7U=; b=s1pHsXFABf4NJSOQppKoos3FQFQ5vr6lOvZ7sLQtjuoq/gzpWflt7tnL8e7D2wMvhi z+Txvc8k7bLS2VrcDbNqYB0mirN5t1l+MlBGgbq3HSTa9QJa3vyfSXvvkJHwiA8wZt5d Ujp8EoIdnj9gtb9QWUjfRz2rtpzVvngm6R3VUDuvJUxig8y/YM7Z76Qp+xeqo+9lyjX3 8PGzqvtn66OZX4iqzJWhwLLI/IQJhUJVZ27/+UNnNn4q61CI502GrC21fTddMnoEiQID PigRar9mymoonlAXbB2XKXPsjbFFN09a35NNMuoB1+vyo2GoobfYbD8eHSPJJqriDI/l WrMQ== X-Forwarded-Encrypted: i=1; AJvYcCUvx4uIe4WrF4IwcuNBci1cEc4q91vtijeFC7iLgH2524NGIjAPPIhEABA9Sh/Tk7RVsadmHlft1El25FA=@vger.kernel.org X-Gm-Message-State: AOJu0YydKtcmRF3iAYiLOnJABnRCBfaHTjzfNcGA1i3x9iFrOfSrxqX/ 4p6eQiCEOgn+5x/A6SoZ2efgW0V/Ppz7V8LYxwT0CxDRoImLp1aH44ao12mH/I5ILLs= X-Gm-Gg: ASbGncsEtnDAxfvmn6GOSKoh/53fZYHeVHfjgrnozHV1dW9Zq90Kysn8Wq+uwXUR/lJ gejweltCtvxsfMP1ch9Q4JF1lCLk8KMP9P8hi9wRFhBbSYWp73dhTPmvw+FbqB++jIvlOsQgzli xbRaoCoHLWn8rwZxNwZFJdk6PoIby6Fh7iFi/8TcMjEDv15Tsq/JSx9lh7VLrTrJljvzqmjjXKz /Zn1o7QDz3rMXk1+qFvjDf9FCOYvQ1/sM0uMURwWTClfWjbvPKrWd64X351wYdQ/NMMVsaPYPO7 3JlghoK/UVgyErSYfnKyCL5zZ/6w15q6tSRqXDm0GTS37zfYn04FUjoO+YwHpQ3ZNxfjMJSDbOC KLt4= X-Google-Smtp-Source: AGHT+IFOQRYfDvwgeMufDGbyUL583xaYoWA3vjZvR3oblGtKTc0TAcnFq1Nd8Z9bQbtdkT2H72dBdA== X-Received: by 2002:a05:6808:1405:b0:3fe:aecb:5c49 with SMTP id 5614622812f47-40b88816bf2mr246009b6e.21.1751405973985; Tue, 01 Jul 2025 14:39:33 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:33 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:52 -0500 Subject: [PATCH v3 04/12] iio: adc: ad_sigma_delta: use sizeof() in ALIGN() 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-4-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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, Andy Shevchenko , David Lechner X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1105; i=dlechner@baylibre.com; h=from:subject:message-id; bh=eX4YHp/dtOegV1BsNpjg29XkjKcYwdbRuJEkdrbboOc=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoZFVUsg9stveBrxGDVhLGZYC8y44lXhmauYRD5 IOfBQIKOY2JATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVVAAKCRDCzCAB/wGP wDRfB/0UmeaGt77fPnm8zNrtXCMu1IImtJf/qesmSMZ5xa9lv965FBpPpUNNECXWK2qxmuLyg2w y7HGG4Mj6VDqWba3HrXZC/u3JlxaKEmKh4vRp5aPypfP3Rul637HMZekXc5uFp9SHwLe8HZIYC3 ApAzK+RpJGXFEsypw4xhYK8qo/4rS0R/WlmdX2g2SI05t2i5Bv7qshKVvBTsMLNOidHkLI0D4R7 nt82jABxuHUEMyY1jE6wsSKqZ1AkNG8R8ZqwCp6mn6dolf0V+rbXnz8DaovNXJMXqkTvUyynsUC r5WCT+vOdLgFtuaLWePSV+aehgWr6My2A+YtlD+Abbewn+dm X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Use sizeof() instead of hardcoding the size of the timestamp in the ALIGN() macro. This makes it a bit more obvious what the intention of the code is. Suggested-by: Andy Shevchenko Signed-off-by: David Lechner Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- drivers/iio/adc/ad_sigma_delta.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_de= lta.c index 5362157966d89cbf0e602716aaaf0b78f3921b11..dd15c357d1494bf5718e50e50a5= 14cb4d4556f2b 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -488,7 +488,8 @@ 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 * indio_dev->channels[0].scan_type.storag= ebits / 8, + sizeof(s64)); 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); --=20 2.43.0 From nobody Wed Oct 8 05:34:58 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 B6245302CCA for ; Tue, 1 Jul 2025 21:39:36 +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=1751405978; cv=none; b=kG2rcYNiiW5rnRs/5QJBVXood0+Qz15VBIPuCaBnnVhJt8OS1qI/iFoFJwEZ+GNNj4u+6Jf7yRzgnijySG9kE+JJEMQFWvP3eHiPm17eF2uiCqY4BN8+zN0xsSthuHmbLPLz7In22yXr0Q6eDMrvUfWRQTKKZFWrolGM/qnYhBs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405978; c=relaxed/simple; bh=M4/tNur7tRszJi5SmRurWDX7ISkKNes7iozPTRRi7As=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bPclmCytFQkk0uKMWkQJWKQrcgpIQJ/+B1XdGXaLREex5giPcBG8mVQZBnYe1DIuLkTq8WDfzQACsn9DhyoiEoURWYgb0meqGBwTFe3WFDqQq6PqefV75n4DOko0wCWqWN9ducWi+ncdXDeolx3/Z6l9R4ixmdCPaN6W8e0CuLQ= 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=pnciLUbd; 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="pnciLUbd" Received: by mail-oi1-f180.google.com with SMTP id 5614622812f47-40ad1f7c23bso2568863b6e.2 for ; Tue, 01 Jul 2025 14:39:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405976; x=1752010776; 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=XJKwd/wJqdB50K5/93gQjs+L1bIrA5xTZSKkVy95VeU=; b=pnciLUbdK9Wuq+OqTh0HJ7yj/l4vMPqo2n4o5V7Xz8NwgBbj4FI9fsx4Cfpm+Ewl+3 eT2ZKM6GxCfJBM2B9RJoPlygIV+2IPuR30bSSnHawgt0eEq8lof1thGlptjeLsCP9vAz lL8aXlmsAv2fPe15N8bQAGzlnohgiWoKsRdLFz9kRYdagBBdlwIqHAuHLEwBGzKFNfB1 6+XMstybcKCw1sGv/VL27Q0IMeyGS4js4j2f9yFi8hyI2S3XUJhZjKzb7/1xUz0AEzjD MU4QGE0fGnoyy9uPqcYlu0xQL+xwmjqffr+da/HV9cBxfPAUzDBrra424KvKpl8Cga+h TrhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405976; x=1752010776; 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=XJKwd/wJqdB50K5/93gQjs+L1bIrA5xTZSKkVy95VeU=; b=M2jrf8JW76pJb5RzJ3IUMBo20F2IGnWPQMB8np7fUEt0aNbHmG09EaAWA6H/R5MmCj GcLk8qc+yaAl7tR71UTgMsFNVpdaxMXQcsWeCJ/i5JrVicosHLUUaSRLSOBmi+OBp0l9 9GIem3zs9FkG6kvAtOi7DgAroZ1jqVvWtDeA4nMG4IgNlU17VRNvwHLYOxTm0IiFVDPI 7BgUYJcC8nx3/i4v07mnfnzqE9R6YEz5pJ02ibAaEzun+kB2zFkZ6J867UwLMJ6fqSm+ vAkF14RofZxHqFbaqkUEQA3pXb6j9opnbipbFbBE2D4WSHTjsznDFALPanqx4uhv54us VolQ== X-Forwarded-Encrypted: i=1; AJvYcCVQ3u3aXmzKdweUWH8l+FHvROiad+w2AeNqfDCpaqCUvR+GzfjtiMqZxVoMYOWjP73ooV2EyzH+WwteGog=@vger.kernel.org X-Gm-Message-State: AOJu0YzvKYW3lZFNegGjRinvQv3flWYpXpzcDQrKiLO768ZLJnFsS2Lk YxA6eTJYD2iA/y/+txkD12Jj7VkzFpe8R2VvCAPXSkOObVIX2sq8WBwBIOPgMbKSwn4= X-Gm-Gg: ASbGncuYhZOG20XqdxIBLjJKb+QzJV5bz6hvVZz0xuwi5+CS0ueqMAO1nd5cfVhVnEr aAEyYobFYB4Eoo5hg+VHFfNSy0A9pEuHeUsZ7psjjAbe4Id3PDWinmurxvln8cJrJs7IWhTcmO6 ebi89H7/sYIluF3E/TKy8HjHPfROpAjYchazyYZiSAIURGDoL+kTJ2ZYsfid8WOALNgxte3JVIq i62eOjguaySkZ2YcajhLSjXCtjB7AYShibbQ1oakn2Faio4iR53wYUNrBNo27dXzXieNqP+fqIE TTYxMgU9R+B7fphIxPt4Q8f/6s837LDEuO8wAcDPA+z77B+KmN2yauxvwLz2lhK97xA/ X-Google-Smtp-Source: AGHT+IGJwGygej2LG3wxVUQEglbyRiCBO9CmndTg/hDO9OykoKuP9uFYVTtjhgsdZ18CyZNtp0nULQ== X-Received: by 2002:a05:6808:1a0e:b0:40b:3bdd:ba22 with SMTP id 5614622812f47-40b887e8847mr258915b6e.24.1751405975748; Tue, 01 Jul 2025 14:39:35 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:34 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:53 -0500 Subject: [PATCH v3 05/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-5-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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=3583; i=dlechner@baylibre.com; h=from:subject:message-id; bh=M4/tNur7tRszJi5SmRurWDX7ISkKNes7iozPTRRi7As=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoZFVb7+LH0qfzvjwAMFEUcfYoiQ60yFKMGt7Ci pr12dvhRhWJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVWwAKCRDCzCAB/wGP wNn1B/9y+qz2FL8FnW6WawUuwFMrHtRYMozxtssOsHG/ot66OFx440acYcwz1vhVWCV+oPoCSeC TR8Dz4W1lWC34MhU5bZU+S/zYVPcZahiqrN4CHMaSisb+rtyK9uJr4Y+3yl0uVU/XRdlJozY+LH iYzpVnyKasHWp0UkNKuUKZ1BA09RgkNw2LPOS/vOzQITcPQM6Wupc2ERC0qYhhVtARYuex5I88r PI+EBh/oTdiKNyo7hVleIZjLGja5GiZ9mPn6Oka5MQArXX5FCyE71rWRFsgj48ZNPb0OmpI//3k CEZI7AaEnRH4o1vffi29WvPR4lsSqPFtWj324UBgidI+kjmm 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 Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- 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 dd15c357d1494bf5718e50e50a514cb4d4556f2b..f91f7ae6dfca05cf3ae632a5f19= 990f3d153b706 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, + samples_buf_size =3D ALIGN(slot * BITS_TO_BYTES(scan_type->storagebits), sizeof(s64)); samples_buf_size +=3D sizeof(s64); samples_buf =3D devm_krealloc(&sigma_delta->spi->dev, sigma_delta->sample= s_buf, @@ -544,6 +546,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; @@ -553,9 +556,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; @@ -617,7 +618,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 05:34:58 2025 Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) (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 0FF20306DBB for ; Tue, 1 Jul 2025 21:39:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405980; cv=none; b=tES/McBySww/noGkU/3jdc4GnZ443OB5Pipntvp4t58Wozvr2mntDMmbxXqlvpkMZHg91SVA2Golt8l4SMMyBuFL8qRM45PgZ7nLOtCOLzGivW52MXXtMadFev1fqSQFx7YrIq4kC3Pwto7MDQ13El3W9N+Rr7DOyxt49lHFdyY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405980; c=relaxed/simple; bh=1pUnPmEW6s+eLqvk9BXOOUemrGb7ur2APhmFlPgVmmE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jxNwjvMHQ9CKno8/RyUCgCjvv5jPFG9LRsNTutIl91yyeKeKec+Gb+S35sOhzITRuIPqceeHT/Dode0MbpsNTol6fjNBtnD0WOaKUTi8X63+Hc2hNMI+3a8iZRMPeDwSuY9GblxcoTKTKfxo4hC3uqk5g7e13j6/Elwx7Ax2fLY= 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=d+YvQV3X; arc=none smtp.client-ip=209.85.167.178 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="d+YvQV3X" Received: by mail-oi1-f178.google.com with SMTP id 5614622812f47-401c43671ecso3040611b6e.0 for ; Tue, 01 Jul 2025 14:39:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405977; x=1752010777; 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=sHniCqYc2VQTDAA4fWnYCZus3iLgaAx0sPomUMoMA1o=; b=d+YvQV3XzqVan+eNfHNMON2ndzk9VxERr5TRJhvsSQlNfzbDdEq6BODmv7lJkrYdew B0LhEQiqZLjF4ZwiBcx48SVdlHgiQ3AV9g1HYJxy/iZ46fFukqN042GeGM/5m2hWt9AS c5d32WTimJJHbOBinpgehDoKmr99nmDM4EVsIcJpYRP6hbUSOVRiXIHT65/mLSPATJLq FJJPxlGRIdEv9tq6ofTraj2HEnWQjgnwJqh7bGaEF7mYZFqOtwaM7EayGlSFbfiSBWa8 kg7EoIbe9418VyHP6y6cupghwIFck2ptcMVwGbnnxEihVk+cQzZ3c33YMcjc3gLBhHYw Ffpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405977; x=1752010777; 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=sHniCqYc2VQTDAA4fWnYCZus3iLgaAx0sPomUMoMA1o=; b=WhLGSBktiEZDHlW63SDD0lNF+DxW1vFRR/T7MF1K4yTncIweNbIkQ2uMuS1gs/mBCU k4acAyz4sfCW22MUSVoMsWnkD8aUcRAojatINQf+IHv+a38gtYOe7l1c88dRudT6e2M9 BQhf0gHHZSJ+g5KVk9wfgqrBXf8ZPhHtMZACBk+Nh9zEPwBxE5kqrHO+EfT8XyW+YqOb H6on0V8IE+vQ1+4S8ThTzOctR8hsvpKiMaQOqfm1RdBTgChnK1d7OBYLtg3OZ1WnS0h4 w2ZZWePPTBzYGxcxuPA0CS2+Pql9JC8+HxYRQc4J5eCNZ3svZttml837wnQD3pGWfKu3 NlYg== X-Forwarded-Encrypted: i=1; AJvYcCXatqPq22lPUIuPxwSSjXRYeqdMcPYwzy+w2OwrjnD6URCw0gXvTwlCYyAa6VA+kqeJJSHO4BteO7wZK+U=@vger.kernel.org X-Gm-Message-State: AOJu0YyCYWwsJoIHQ3uBkL1MlH9qoA3Zr0IgsYJMVMBj5DOjGDHPJC8S Jr/+VLlEzi1cirZoIQU+2svR8WHKbjBpwZYoQTX5R0Kjnk9KKBfE2H/Tdzd3pO/Qgmo= X-Gm-Gg: ASbGncsexyh/uB2eXJgdFWhO0GQcYJrNVXtw6J1I9YTrZ60JrlaJTZYa4ymem6iIx7G ICfMkCf2b2PbOyvrFH0nIV0rGHXscFk9xqZ6kNr1EUI8fBOz+51i7kvG8pf6Mgg5nVCqjm4Kijf KGOjWV+292rjZ0QxUWl1kSy3xyxsZTGvl7PdrQ5amOPHqtgAXQKeSnBeAYLG/PmPZaTbEXlSb6m n2oGQ3M55GEImH65EdvQeTnVeq/YPIvUtivGaCn5ZZcVzy9MJFImiPIFW/BEiOpPp5j42nWrWga k7EQIQQ9ZoCaL+tGpXC/QOWuAwUaUHdAduqSKAsYY3yAUhtxnu2GodUIwkAUNJifKss/ X-Google-Smtp-Source: AGHT+IG0bhBx3lA01RN18NYfLT0rpHpS0ckfjNDTHVbR/kan8VENJvcoqo8/X2nSGkB61dwgGiAHgA== X-Received: by 2002:a05:6808:4fc7:b0:40b:1826:34c1 with SMTP id 5614622812f47-40b8999b39fmr191361b6e.6.1751405976599; Tue, 01 Jul 2025 14:39:36 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:36 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:54 -0500 Subject: [PATCH v3 06/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-6-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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=1561; i=dlechner@baylibre.com; h=from:subject:message-id; bh=1pUnPmEW6s+eLqvk9BXOOUemrGb7ur2APhmFlPgVmmE=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoZFVh1rpys8PmWV9xj3NC/o49aXlvbxJ3xeDIQ 1gRRA/KMOiJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVYQAKCRDCzCAB/wGP wLkqB/4oOW2IyFjdlSpnzdKReg/rrMYr109m+uGSKjMXb/6sTXnma00V8PIOaRfWER327KKpQBt GuxYElkSh+MVDeQaLlyIoHMXrN45mT6xMTrDtDklY8zEL78amVIp5mw7QmjOJo8pyvbM/TKYOu4 4+BQwyA3KjzPwolaM7y1TQgDreZZ+G0kOHej5SWm5YwPZgE3JYn69k7FFV2pCjqHd0vbrK84Nsd 1WNCaJlJL9oXbEPnvQQbP/W+qhS/SHuP5I/r2wvYS/DPdVzhClBDZHdpPY/h6sI/BBohZUtguMx 31E0mY/KhKjV3d7hJxauINaCfoDSXp1KtDjZ2kh8ad6zSVT3 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 use of those APIs as well. Signed-off-by: David Lechner Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- 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 f91f7ae6dfca05cf3ae632a5f19990f3d153b706..b5c66a6cc47ec8e36c458fae873= 09fd30109c0ec 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 05:34:58 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 4D5B0306DC1 for ; Tue, 1 Jul 2025 21:39:38 +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=1751405980; cv=none; b=iX/K02Fc5J1jNE9yFv1XJ5ekfzAzqorKERxfaBkVp2KQlhfVqSA/T3ti5u+GJWVcEidVepHQ6BFLpEPrhIMMhYMMx2guoJnryNDCnPhyfEKLuF7vINHiDHcyj7WZgCNYAiknPVS5EpqPQ3HYJbsKqk+AGZMmmvbhBSrGcdQDWno= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405980; c=relaxed/simple; bh=ri+GV8hDbxQKdegUY+Asy/ciZDUtvEJCgrkaZk0M59E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OIlHLfU7MDD0tVXDNp2XTAWZYOhjp1XaI8TnqsC9UFEXTMVFcT3usDVfNRDY//Opw6PlMBnVpIdECpmY15caF2bZO+BBrGn9bJ1SiSUeiLhPhR+RgIgNplAKAHtyPsjCHBI0bKXet/vI+s6g55FCJvZAapwkL8r9uTjsdsQWf+Q= 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=RIsvOkDF; 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="RIsvOkDF" Received: by mail-oi1-f179.google.com with SMTP id 5614622812f47-40af40aee93so3950239b6e.0 for ; Tue, 01 Jul 2025 14:39:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405977; x=1752010777; 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=LoGkdeBhqcrBQnH+/S0/qj4I6O0imtl9FrWlFxhByvM=; b=RIsvOkDFlXrUcuBEjwGKjoBkQQnVsS/k5kA549BzP2MQ5grqUYwuJ+UyiR8/W6fl9g RSKQplCnQt1CwhZjAed34sMPAXeGQ05p4Fhv6YX5/SrAUdb57j3CN25DEWNM8Mmb/L5c ikrcRUXJGpy87jH+CgjrK2iMFtdSLu3UJ3zjTXOFXDDDSrPnNGGb4ht+puunLuegsm5A /emZW8kVSGct+l+04MAWuuqdqpvch1FAqSlFCBNxfvx/X2uM4+vE8YscTs7SLWNGMr9P ARIHl+/L2gq4+Km+UC5pg2PP/l8+rdakessOm3cL9N0M9vI3vMkfhPO5Ni7Q84Dy36Fa Qd0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405977; x=1752010777; 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=LoGkdeBhqcrBQnH+/S0/qj4I6O0imtl9FrWlFxhByvM=; b=vm/tQWMR0SHaSVQ2hfRNTr812UhoJmrukBa3LalFYsTCkLlyEvB90VqO+RrN8/mNLc aV3Dn0pfXlDa5u+c7xSu8Iv066pm6jqgDvLDSDQQ98zUJLQWt8iQA7HShZyFYuIQ3k8O mLlRq8OFs7JnSjqGuAbfIu4FL26VXeu5qf3GeaBFF+8gExe9o2Ia5PeMv7ssqvbcPULK 4iX9Tg8BbWybJEnp4BDOarKwOtpYiC6//dmO2LlSs+NJO1xa9kfbGpF0G2DUoQFSdxT/ Reo9eBQJ9szTe5U/sUc79qCfQ4oWCzJxC5kui6DADoNZj2oFx6aZSAMd/IkRjyLDETq0 fSlQ== X-Forwarded-Encrypted: i=1; AJvYcCW0+YjXLR3PdD28FLnGJNCT+f+m9hbL9lZDXoxn4LglZURziKzRbvSsskFUSgazPRH8NfnEHJnwPbmsCdw=@vger.kernel.org X-Gm-Message-State: AOJu0YzZsCAarsOGMmMt5wajzMw9/oWI0i5iG6QYRUKW+qghj2BnF76/ I3ku4AqK6yIkJxSumPoBc1z12PAlkOySGBfkezntTonEZjoTpPf1F5mW8WnYWRikfZo= X-Gm-Gg: ASbGncvXk2ShZcIbe4TV856q8aobOfvXnKLZUpAlWkSUW3zv1X+N582uXziXHzjYEKC SKBr6RTtmdroICUojyMTfUpOzvhtezgWe2GTR7D1YwgBWNRa9vaFJuHGovGQIFHg3ekvhwehxeK l01pGY9Lwak0EuxwqyINAe40Hp96xKW93pGAsXYYhZzMlXkmxlKcMcW28EwoicXaZLIWLg2ZcnE RPJF3i9B1q9fCGip6wlYhjeqfBi6+mOT9cH6Hc2gtpZxm8TINbowQxkGh7suBdL8zWI2NfIBxRp 6+nOg7tv0LkmTGurXQizMC5Lc48bBl9oeSeZ0kPDsraHcmHHt+rfqZEZtCDOrg95NZkS X-Google-Smtp-Source: AGHT+IFjLqFCy7sYMcfA64FamIas5nnvC28bvlSgo6+v1bonAVCJqb91DMUaJslqnGnYR+QfEJLqag== X-Received: by 2002:a05:6808:f94:b0:404:ed0d:79e5 with SMTP id 5614622812f47-40b88807fd5mr304514b6e.30.1751405977395; Tue, 01 Jul 2025 14:39:37 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:37 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:55 -0500 Subject: [PATCH v3 07/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-7-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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=ri+GV8hDbxQKdegUY+Asy/ciZDUtvEJCgrkaZk0M59E=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoZFVoUoOvzajg9oS+SsuzrU8BJSDqxyjIjP369 K3N8UaK+ryJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVaAAKCRDCzCAB/wGP wMnWB/0XlKOgOHhV9LDrxXB7kWcQugtbnzivlxQliToetR3VfVAZ8zQY2xL0Fya1YWYJeNWvSlq tA+sSbybKR+V+PJdaHdhTdgR8fPVkECr8SZboyxAA93O+OmsRYWxeBep7i14VDEsDrYENR0dJAy KYirmjlPXKYcOIpTzYBs0ffaVDEuZg83jGvTzKrcrrSiHfAXMdzxGRoK5/6SVXsglL0RInLMmEk Q85Muk94V++iPjj4Js2q3KL14iBmJQhPG7+xw6ErVj8+ZdLvx1w3iexThUrowCCAtH9+yhtAsZ6 L2CKwdmG5bJosTf2GPuH+rjmGXCtNgZWod7V9fIVEXfGtfxv 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 Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- 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 b5c66a6cc47ec8e36c458fae87309fd30109c0ec..ce549775ac3d68fd11e660b6b99= 3ac661301756a 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 05:34:58 2025 Received: from mail-oi1-f175.google.com (mail-oi1-f175.google.com [209.85.167.175]) (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 1B40A307AC2 for ; Tue, 1 Jul 2025 21:39:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405982; cv=none; b=Sv66/yzt2Wa69zIhXCv2dj+Owka32HB2sK9P2CTozl7wy4UqLRu8zeWwAECAKg8HHlq6nA9BcZxUZl/IWQHK0uw6aV89FaQeFFTlV/12EraSU2n1PTd/18VmZDN4MqIs0Gm9cfDMFNiHPxcRjPXp5tVw1GcCdkotEQ/Unmpsnzo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405982; c=relaxed/simple; bh=C5gxKS3jTVgzKfsZ8e1RL24XN2xLOEjjLOcnNVrTiz4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lD4JNoBJqCeYlg2/NqSpYAFeC15Cz8+4sITdlmKmCAA8dRJbSzkjLwRnptmfLa27iko+v2eKDYuYQtyVty0ZAGqkU6MJdClsZLby/Qzrmv5vK8GyyUHOEzBknh0Ol56PtxILHf0GUbQLzuicqPE5TNHTHDBkyJ5avxAkkzIpvtk= 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=tUlvfjdm; arc=none smtp.client-ip=209.85.167.175 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="tUlvfjdm" Received: by mail-oi1-f175.google.com with SMTP id 5614622812f47-40b71debe9aso786378b6e.2 for ; Tue, 01 Jul 2025 14:39:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405979; x=1752010779; 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=5dNsRfhxESTJ1ulyXjxpfIFM4GNzQZzgqJncfLY7uiU=; b=tUlvfjdmvGL6epEJr9lN6+c7b8K8xvl3c77P2t4BAP+aS48AK+cNKlObtwUGCXLOxX yJWYVOZNo4UpH4ttBmqQf4PCBGwLmLCY9USFvLrtvVshfIUGyMn+6+Tn3SgS5EEADfIn 1UdfblkBokvm8OgT/rMqAIcdLreopftTFyiH4YYne+DuLY9mZNkaX8v8OvbJlpjjj6Jf xwKHEERXMP83UeCTsOwOWrVqb5ANTkn5kUtP46D3Fb/PApa7CVxKsRHNR+Bm9SjerfbO YGfELzkqSz3caXFAGvSJ+dSWHmNDGvp2VI6M2kJm/0zctx5bC3EHx1AU3nuMCnma5UPw xxyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405979; x=1752010779; 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=5dNsRfhxESTJ1ulyXjxpfIFM4GNzQZzgqJncfLY7uiU=; b=hPNYuQw2sLqfu1yi8HmpnvY3voayFTctsESzQgmL2TQ2GKdsWbKAocwahPfA/0yfzm pn+GX8UBZwRQBkyHGGgYkcCoHJXbg6wpCg50t424IoUaNEtsavMlSwi6zV5fYG9XQTtt gSpQxnJ0kjdkvmqH4hYLItpHlUJLM8CKzLSSEvw3OGCNkw5ljF4D6VkghS52BU+0kHUd lsOLv8TP5WKNAtQMuo815zV1TzhDUDm2+4kpZsHQ9J3q8Sh5gpV20nOslh9FW/Xc/doW edXTaGDuKqNzhSTdcJc9eAHPz5Rl4UX3+AzrhT/5wlW05s9lLb4msP+Bp8rnlPnfGpKQ iSIA== X-Forwarded-Encrypted: i=1; AJvYcCWTVTF7N9A/PlsmciQbqTSRrmLKomCUw2IUJTw4LiB5J36O6JlNACSSiuPWeurxD5jMG4Ighz+M6XJy/mk=@vger.kernel.org X-Gm-Message-State: AOJu0Yyg5pxaqPmIVbX1jdKLWgirRya8ZeAhzU+9kzjzhTVWs0KN7Fa7 lWq3MaCO5pfNlvRthaNgq4XU0UxnmyG7IbcRtpbR7iss8DIxA/DzyfMPMdN0WoSBF78= X-Gm-Gg: ASbGncsJIoLdvdusmOykMpheyBYKDlul/yLYvgampCQxhXT8iDMkSS7Aym3cTrYaeFu RtcS6+WUMQq0+XwoQUJLbEBzaX9bZWk07sbTYH6jIjzqT3HOaiPpZYyTzOxcKDHONz4q4Py5H9b 5JIVxlXPAGEaf3g1wGZQk0NOH7mtQ+H5SixRVXE7+Tlj2vTV3MybWcVJHgK//iZjF9IrGR1AjpC t+IhPZ1CtoVvn4fRckUkfmZhGa4Vk485/qmITS/nNQr9C6KJKRJB+p6kA2W7bS3cQZgDPbpcfr3 dMVSy+mh3pgHaa63hF7qIdY7rqLQolxMMk/SAx0JgOc2r08HuT7aVGKAT/JT9U2Lpq0F X-Google-Smtp-Source: AGHT+IF2mPCAO9B4RH+Pk2P7QDjXh8JA0YwcU32FcC3oDgcwmaLUwh9y/9KVk9LuRqWbIHchNmSxow== X-Received: by 2002:a05:6808:8950:b0:40a:d024:993b with SMTP id 5614622812f47-40b888180e1mr265485b6e.22.1751405979093; Tue, 01 Jul 2025 14:39:39 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:38 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:56 -0500 Subject: [PATCH v3 08/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-8-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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=C5gxKS3jTVgzKfsZ8e1RL24XN2xLOEjjLOcnNVrTiz4=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoZFVvZqfJaoWTIme+NA4sQVgYjMFydXFnH5zE/ MoV/96EwTSJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVbwAKCRDCzCAB/wGP wNmICACT8FDGHvOGIV0tIDWHCXJp2C3wYrn3BARLAwYgq4DxANWCn5a3fBLMQ3lGFEJ1scbKib1 zACXKI/x1YwmlqDtKc6tIuRtxM9s1cfYcPq4t9lLGE4j4NzU4Hr2agMx56vE4jpf3LUUTvLaaEl sBSQ2JXrWkzE+LXOJ4IvJaDRRPa86wNXlE9Bvq4CtcVIZdEoeXaQsJYhcurfLp8FlfSAbXo3UOW u/vIN3AsOFE1uHNLs70kRVwmC/VN6K6T9w/2C+PASUpA609d1dh24HvaSvPzPBWvuza+AWZ+cuv 8vI05h8l2RstdV/XrtccMn7D3YK4+Ilg5RIcjqvIgOWnu3L9 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 Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- 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 ce549775ac3d68fd11e660b6b993ac661301756a..124c42e19f2e25723b67ea38f7d= 016f00ff91342 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 @@ -510,6 +511,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; @@ -529,6 +552,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; } @@ -550,7 +574,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) @@ -560,50 +587,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 05:34:58 2025 Received: from mail-oo1-f48.google.com (mail-oo1-f48.google.com [209.85.161.48]) (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 E6EE8306DCD for ; Tue, 1 Jul 2025 21:39:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405986; cv=none; b=EYugn4iwQ1NvMvhSk5iZVUId58xEmHkY25tOyLUGifcorkHO1vRhd29z+7qmejzOxC7j6Rr2um2fi73ZDGVzGna+g2DksS4+dEQuvpct2rW3OVZ87/NlBOZ3xh4+Z3bni15b858+Y67jQmqkehO0tzW4Vl4EOgpLtc46vvDUqzY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405986; c=relaxed/simple; bh=J8Mp/XPieqvBImE5UKsEDCopSlfxADmRzvJ27VGC3to=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MChLEWYFOD2VUZBvCjg4fTmp6qHCZwevsvsDSKmKKEvHQjV40Ok/5eBG6c0zaKMVxAo4rMSVBke9FkoOylUnbX7o0oF4z4+hPBlKbND3nLpoK2wCtL4GdAw+IfxXhxvrtly+gFNr2yv25ZO+1VxSpz6on9SGTqAg4K8QzzhSnCM= 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=RgDDy1pE; arc=none smtp.client-ip=209.85.161.48 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="RgDDy1pE" Received: by mail-oo1-f48.google.com with SMTP id 006d021491bc7-60d63174f05so850355eaf.0 for ; Tue, 01 Jul 2025 14:39:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405980; x=1752010780; 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=RgDDy1pEA0/sNq5ETJ+u+fYABgwppk69wcTsTlvEOhHUluMXtY8paxy9oiAygi/n2R P4IOmzCX54u7MXtw9MT6UErxdoN+vzwatGy96xKC4fMrDe349Rg2dokr5NqcEP4zVIPj 5DzQUSC9Stmjz4/pyAMObja1VGfKzEaVGNjPwkvghBDeozCRI2lpJf+yMzrVbYoY9fX9 yW1x3DHaxpHKghbNEJQRZ9HtPLCWgTOUkQSPBYCQW3pBeg2N6qhzXlweKA/mLrHCz2Ij xXVKugiULLRWWP/fD9HZ96biTwgdf7jMPV8b554VTUnXXmQ6KcRrMKIuJ0FeM7hSVENu lU8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405980; x=1752010780; 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=PWIcAF/DEwLVecaXZ0eADlJYNmsKQWijFHLNjqxqezOQqKIkr1SY+NvS3JoisQvCHT MOcljRdjkFXj03G9MS74kwMkOiXPS3/nQRexvJlhmh5nMKZTkG5jZABgL5V7/oF8FKjP H8huH6YhoUCp+CBldELUYZxzJONmQ4n2p/yYU6a6X+HyegCbsjdHIkZ+S/tUDdfWTKd8 Vf2C5It/zYXG2Wz46NoC1HBC/k+/hQmXf22iyaVIzrbV/Dsfeb21I1yW10XIyP5CU1le Mh47PS9CW0YkUiNkeS1ZbWGTJzqtBn8sKCgnpZEjmENE3ub2Cr+v0V0LUrSSGbIyqu+T ilmw== X-Forwarded-Encrypted: i=1; AJvYcCU7TmmrGQtnDGtPKGz85XlGaoqeru/eEilNeRLzp4ioHluWYyx03Rbq6y6mWTWaCntJ1mEMGSc6Lr5RSBk=@vger.kernel.org X-Gm-Message-State: AOJu0YxBcFgmtQXBxOGw2wbPdtnk1iK1uJ/ynR3Y1R+lu1DXTUso6Wqo CUcm0OGst3lpAeYg0jZ65hPKd/TtQEKCfw+nPNcUP70GOdVg997LkGsjuwZdf3jfnFM= X-Gm-Gg: ASbGncuqtMSUVasblrEj5yRqaiwQpxYlCbujhaRHyfn561EoiXth+Y6EGAag/TS2GeJ eZH9qG9dWrxfOTFLXMRzYnM2JZxc0CB0oJem3GW+iy55H6YavGeWlsnh8AE5QJ6S0counXJYHMP SeQuK+0XvFKfh1D3LG4rFqhjIA6xPeOntc3Wq0DNzTRfhKoT2bN53sygvB/pOY4JtAnn8BD4QrH 0G/qEIswNL/7QqW/kEzQkUZV8snJ7UwAIKQv5Z2vL0dahEvWUvEk1I7DAte6ELn/x96nssIMK4t MKjJRwCv7Fpd2eu1+XCdLKSzUDLm874a4DUNM69pygZj8m9p5hHcADwJMUwb7KSYxgsD X-Google-Smtp-Source: AGHT+IG0GdL5pmOi1RDALjt7tJvWKe7lV2Iel7oaQwpb/7DIn4IUOJRxmVkuDvZ98ZgmpO7wyZ5AbQ== X-Received: by 2002:a05:6808:201e:b0:40b:4208:8602 with SMTP id 5614622812f47-40b8853f92bmr279298b6e.4.1751405979908; Tue, 01 Jul 2025 14:39:39 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:39 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:57 -0500 Subject: [PATCH v3 09/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-9-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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/AAcsmYgBoZFV2RAg9UrWh2byim6y6XgK83pSq+w/TiGjkQ V/GFAyMNmGJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVdgAKCRDCzCAB/wGP wKCOB/9rEGilC2YevdybZ7IkreRYSNSwY+d1Z8BVD8GqtCz1NIQ5ptA04PMD5FN74ka2cAWiNXl YZM1UTFi/JjaOAOxXaUtOQtuj0yv0Ukzcj0pWmfJBUbmPwZvwoiMi5g3r3Wif9QTtZi371jLzFJ UgnUluQ1myrVGl8uxd9FFIh0EG5cytSoAyr3S2MI9B5T5Cd/3GMu5tosDRn6vL9NjYzZchYqgVL PScjjENLODQKiwDvz3RFc6bZ0bokJI/OYdIvzDLr2JeeboXbvCWeb0T/+5BqEY+ZhVAimfjU12+ y+PYY7O8zNaCfkOm9hMHZ0kwLlTdEsbimaRuq9rCT4RACRat 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 Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- .../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 05:34:58 2025 Received: from mail-oi1-f174.google.com (mail-oi1-f174.google.com [209.85.167.174]) (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 B9946307AC1 for ; Tue, 1 Jul 2025 21:39:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405984; cv=none; b=dtX0CU8ZKLU0nDF1QJQpF1AdLPwdzfb4UpKq6ynCimivfr8PNIvE5y0GTCnRoOe1GHF9iLC6awnZ89gTZ41QWumPnE5dB/qY/AikBqknodVonp0oIdFAEB0Bf7QpzE9dGlvNF2rj/W0ORgpfF98JrVTGJzT1Hgj+I9Z/cVvwdPA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405984; c=relaxed/simple; bh=ODK9s/KesQY1q9pgllRcE+1udpiAQ4WyUQ8s8zoiSYI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fxgEUi8v/HzYwxhZAN7+L+iMq891VCIkbG/J4cL3ICwJztbxqkFHdm2LJ4pLMuFkPEQmjU7kJ/hrWWWiThFflb9ujzUbOeg61gMx4wN/oj6uTHCspMJjvQ/McwKG16Rw06lJUu5euzoXjWLdPlLijnc3W6n0RxAEANUnU0FWVCk= 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=f9Hl3fao; arc=none smtp.client-ip=209.85.167.174 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="f9Hl3fao" Received: by mail-oi1-f174.google.com with SMTP id 5614622812f47-40b1c099511so3368725b6e.0 for ; Tue, 01 Jul 2025 14:39:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405982; x=1752010782; 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=KXbJNHObp0yLymcgJegYRlIqp8GCgqIbPNCpluvKCfU=; b=f9Hl3faoRtW6GfuiVCazIXVefkfvJdhdxmYRplxpftehz9Z96KNha6zCApCzSY9NZ5 ut8Vs5GtKLdKeHXA7SXB1evYPAb07KQR4Lq0/c2acW1/6+R3SO/alA3gZoqmpErfPUuK JMdrUUr3MSzEmnxqNnr04XeNpn4YbjuWmzI/E+plU60TIOr1YincQaL5hHr1KS5Mrk/0 r9qnau1sSpE6sF9nxOD2xJ5Ztm4bReR5CQi75pDf4N+BDSStIoKBJDc6nJfIFimvYEVo a6mxyJAnEFeTW1spcpJ8cqe/oy7+xI6CVIVpuzA242yYhg0Fjsn4pkKvDEok4Ils+jgd RWGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405982; x=1752010782; 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=KXbJNHObp0yLymcgJegYRlIqp8GCgqIbPNCpluvKCfU=; b=rKxyFAkwE9mx8O7HkC72p4dy/5AnvxrToY9prHuUohPCpke2xvEt8xNXhCdj7B9k3N 9bB07NOIrB/WiSqkKYRoW0jqEoUqSznlVR/UeuZeC1QxdCrI+Anuj5eH0uRsicc5w04X YcF7LLGLfy7VefIPW6rL/oBm3DqHP3GpoLfpEwTZsaJNWdhgg50KpeGWkoNeYtCtkCys Pup6YmWqRdawFlWAy9RncsSu+QfNKRjAQvpjb4n3I4KvUC5y66uRknYd/e5iI10QGzes 0s5qXdUtiu1MWx78+tBAO2yNV8GlVr5fjwHJsgtcv1VYEuL9jRb9uLCniUQ4zy7y/S2O IJMw== X-Forwarded-Encrypted: i=1; AJvYcCWUp3CPtiAHx4qnzHAkDZwshpmi0vNlGXMt1+aJeXWAiAtRmxvaVgiiGkyIU2CzYNFwsSaYXhIDcvA0qL0=@vger.kernel.org X-Gm-Message-State: AOJu0YywATfANHdnlILdwgQ3Z5YmSPHyv5IbSUYaigvs/uDhT4Vc3v6/ R1SQx6a2fLJ0tAnUieILf8qvcQulq/oX13VVFkT/eBsSRr3hHhPcUSH+We7uKXVg3bg= X-Gm-Gg: ASbGncuhMjf8FfQCGI83C0s58FkYmw+6sTenrDbbJaZw8WaCNNUuwUTFELQ/uTEspaf TbFuvMKBH52CgWd/WDQioXfPyG+CDL9xQ0G8bkDJPYyEwlzVjnOFS0gNy/A1HkT46o5qRc7pOsy J/gTKaw600yT0HznGIxGuVg2RCsoBXaCPQLBWUUbDJVVQ+blrGUx9k8uER4wGGcFFZ1q28YXAtr nuePjj0uTbaseb4rIVRRSIKSQ2FZsiGtT4IqomkCzRaB35UTcdJr7gjPj/rPwTolH7H0ISs+kPF oRUTVSr0qdjJ2+s9y83FNBh6r4A5RtJMrIrJXapLhe9OpDttaEeGW2wvtezyCQHFg8nG X-Google-Smtp-Source: AGHT+IFSICywf5bWBOPamju0WA7wIyhluWkzttRu9z5id5CRQeysZo2qvdLXqEZmvJHwm6ndE3fOkA== X-Received: by 2002:a05:6808:4f1f:b0:406:69b5:36da with SMTP id 5614622812f47-40b8aabd9f3mr157850b6e.16.1751405981676; Tue, 01 Jul 2025 14:39:41 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:41 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:58 -0500 Subject: [PATCH v3 10/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-10-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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=4356; i=dlechner@baylibre.com; h=from:subject:message-id; bh=ODK9s/KesQY1q9pgllRcE+1udpiAQ4WyUQ8s8zoiSYI=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBoZFV9xeYLLeB0HZi/XyTdaJ2M2m8jxczPEsMWe 2lsSTjigEiJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVfQAKCRDCzCAB/wGP wJv9CACborVMse/liFlC7Ut9b03+zhxm0nqzlgwfdEp+Q9qYaXvEGHwNlKfRENLS6CiW0+kLx49 YijGeDsUs3DUguHEFD1FhN8ntHvckuv4BNtPGtdcalA54FXimf588P4wOkVz2mUnVOv8IUJBUr3 JtJ7ZVXIcsa5RSOBAY2A2C23/GBHgayDKQ7KaW1Z4S6KPC3fvPGDksmTI/oq72DYJIMWbYDHMg5 x+Xi7rUxoLgzTV7bQKmwxIWhLwg76FKXwXm7nD4xaYb/QBGyPUpSb+IJOjVZDowdzmt/9jTpA/m uq8wAB+x/dT0LbzZnQsQvYyqAK7FUnkS1te3Iyrij1V8AgIZ 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 Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- MAINTAINERS | 2 +- drivers/spi/Kconfig | 5 ++ drivers/spi/Makefile | 1 + .../spi/spi-offload-trigger-adi-util-sigma-delta.c | 62 ++++++++++++++++++= ++++ 4 files changed, 69 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..8468c773713a3d203b2e668f340= ee3f477b8fb6c --- /dev/null +++ b/drivers/spi/spi-offload-trigger-adi-util-sigma-delta.c @@ -0,0 +1,62 @@ +// 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 +#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 05:34:58 2025 Received: from mail-oi1-f174.google.com (mail-oi1-f174.google.com [209.85.167.174]) (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 2436C30AAA1 for ; Tue, 1 Jul 2025 21:39:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405990; cv=none; b=QZK8f6bASf3SmfK34YYhA3z9QlSfVjIEUvco58A8jc8YO8O4nsSt7wMkw4Bt341+N8npnn4CmA/4eaG3fQAQ0ZPfCSbMwZAWLik1YjzvP7nTwnXs7NzEGxnX+geH19SgBp7d7DbzkWp3tIRn8KkZlqixqZBarYp9zNS/H/J9/fo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405990; c=relaxed/simple; bh=+d+NxpTsTAufeAHbXn6vZokwn73QBsqhiRNIGn6xEMg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=b3msMcnbix7fj5jbr0jihVIfM8+fM6DbSITkssScJc7sbp675I/zU+9PhY4wo3oTp3KHAISbwLXxTqXboOgNivijr6uwIATzY96EHvYgVlFSTpZi32jWEwHsfNSUkKKhsXkPQz8fFldrFQKVxB+9AxcaQ3OO7FFInYR/282tTSU= 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=lXN1VDL3; arc=none smtp.client-ip=209.85.167.174 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="lXN1VDL3" Received: by mail-oi1-f174.google.com with SMTP id 5614622812f47-4080548891fso2153635b6e.3 for ; Tue, 01 Jul 2025 14:39:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405987; x=1752010787; 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=8HARK4yUyt3ToLiXOsTRFjUOUUAN/T6uBl9MD5Q99x4=; b=lXN1VDL3SFcvUiim5P71UXmlsgvOX/y1Yraf5zcJrl142SkfuV45pVOXtq34F9ZAT9 53T+sehLPWJLCxemOhtFcQd5CDD8yPmJ+TTqNJU15ZXgkHoDI9Zu/RMpijq0JD2uNOA1 uxUm3XiKPEofw21imurxCX+l4NiXsFUfT8P5iRSs9vfYpCF1iNIHyopSbZlrQy+Wzf3m 2cZhRiIA5Tx2c7QGdqxby0KzqpX5XtCZDwVYuMB1/SiGtbD18c2rdNYeAtEMfJ5gVoV8 lW1ArmZ3dWrdfclr9YI9t32sYyMCrG7OhwN/0nyxVMQdoweH/ebB349ibrIaWZCIS/rq NquQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405987; x=1752010787; 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=8HARK4yUyt3ToLiXOsTRFjUOUUAN/T6uBl9MD5Q99x4=; b=JEErl7vnftmfmEilSbz95RuEUF6NLCq03irmCKMEl9GdZdx9yaKaElAr7tqjpmY2gr YshokxCnGOOXqBgxM9h4J6pN4XMtL1l0Ynv/Sj0Bb8gzRUh/vGLtS1Qg2WHbT36no76i 4ZVgbjGfPaltVzxBQV/5iMwe6CSqqION9TJJMsGBebG03P9XRAMuD2Tcvm7xyNfuEBSJ /3sgh6euC/hlfmeCrY609hTeP6Pxpz2FwKEEu6WahOlQmdOzxR+4jc4yEbpci8LpaRyQ v2gxUda+vgxR6dRJfAqZ9wNo8wgPztZQux0DvyYfBA/FcVTflO7Fiofvl6cQ6hR8RDUl Z+4A== X-Forwarded-Encrypted: i=1; AJvYcCVruwGrf7V4abcfmNb0y+QIIeJj5v00eDH6jOsxSLT4mx6E7v0Ew8z98+Z3BFh6m4cjTII+K33DJWp8xSg=@vger.kernel.org X-Gm-Message-State: AOJu0YwZcTXktb7OEkZsy8EcilN4XmpGDuZWKBZFhoHv5eIykpIVtchT rS0r05VOSfsDmfPJvf8u3dmBz4ICwqfO30FieoSkRc031Ss82lEIotvGseRlIzLrbHc= X-Gm-Gg: ASbGnctHvAqtbxxVq32mgssREpMdeg42LyCW5PdzsDmqKAi1ZKsKu9gkEgRBZ9ezlUD 6hkKK5C3dR2MAOGxPkvM65xbEPWmejXEn84usJLLnK80QVOQQrFPNrfxAspBgdwbkFzOwCK3aaI 4gLHUOtwn+bfkmaC35exOpYwyfeFxcac/IAC4RGcN4Wj955moAcFu/4I059S2J/qmZ5u0T1isEw 2ZmnEbak03s9Prl6WNDVe9h1oS5qLnaPtYgDFfoKLSWI71blvh/G/lzMZDLWrXW74ZqLWGWurjw s2Vwx01ZFitR/tXNdtBoADBmoAT+1VvSR5u+gSAnrMPSv0xPEdY5Ls5tntLE6p6QmagOWp4Iju6 XKYE= X-Google-Smtp-Source: AGHT+IHNvbIlM9B8xBbwOrEGY91WUX6qfGb1IgkqoOC/5A2b9xtY0fWbRtmKupZRSWPVdAK+GHh8ig== X-Received: by 2002:a05:6808:4f14:b0:404:764:f7b6 with SMTP id 5614622812f47-40b8876a215mr265046b6e.9.1751405982526; Tue, 01 Jul 2025 14:39:42 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:42 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:37:59 -0500 Subject: [PATCH v3 11/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-11-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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=12172; i=dlechner@baylibre.com; h=from:subject:message-id; bh=+d+NxpTsTAufeAHbXn6vZokwn73QBsqhiRNIGn6xEMg=; b=owEBbAGT/pANAwAKAcLMIAH/AY/AAcsmYgBoZFWDmWkRubXMkuTiJqJVkkzxUBUyHg9U/GTIO n6FQf2+ha6JATIEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVgwAKCRDCzCAB/wGP wLhEB/dNn1oI1gAw2yzlTJ3TEzgEes0rXs7gal2teIWD2lz+kkGhtLq8TMW0ZGL7c2/3Gw34VdG tAHfy0Yo3yn9TuJfyDZ4MJLwa2kSt6kxTnXR3lKJe/LG3Bv3VYdAbwfpg7jIM8/XT+mBW80OtZI 5jnPqV0qtM/+4x6vW3Y5n6WqDsU2UaQsIf+GsgRvqWCrlpMv3TYwy5+mjrUXVVnBzmv00BATqtz sbcTplgrWhJliRjA44VO1CHfX07yJ120rzh0w+MBKSNhZK3GJzmE5KohiFsegCIteAbrSCdq5o0 WF/byPQ/V5iMVuvfp6xcJyYKadhOU+XKUbWl7Yz27S88n8E= 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 Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- drivers/iio/adc/ad_sigma_delta.c | 165 +++++++++++++++++++++++------= ---- include/linux/iio/adc/ad_sigma_delta.h | 14 +++ 2 files changed, 132 insertions(+), 47 deletions(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_de= lta.c index 124c42e19f2e25723b67ea38f7d016f00ff91342..9d2dba0a0ee6d7fe60c8ea188ed= 614100419081d 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,25 +497,35 @@ 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), - sizeof(s64)); - 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), + sizeof(s64)); + 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) { @@ -530,6 +541,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; @@ -546,7 +559,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 @@ -561,10 +586,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); @@ -679,7 +709,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; } @@ -712,17 +743,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; @@ -742,14 +762,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; } @@ -769,12 +808,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); } @@ -837,6 +893,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; @@ -846,3 +916,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 05:34:58 2025 Received: from mail-oo1-f53.google.com (mail-oo1-f53.google.com [209.85.161.53]) (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 A53C5309DA0 for ; Tue, 1 Jul 2025 21:39:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405987; cv=none; b=rvXCj2+0Maq6Fgj+Gha84McyhA8kZ5rIagYg/wixxw+W+RJxAoKm/EnBecE0g7TKJFH0YnLyD/ZDA8Eg5hwaW1NVkjg21bq1OHCxY5crgM3Lc4Rt0MWs1Cm2ytidkJD5gXE+EVXriYUudtxhrbN9z5MkC9oGSEYIVah72prGBoc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751405987; 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=bwk9TAEenGN1/q+GgMYZIULrVtUMnDvCLZZTLA/4NQWxj1Ot55mC46IP1E8R1I0bylho+9y3+dyQyjedhQriuZQo6Acv50xNpzT0igdc9fkdcFzRzBCknuTWnwpaMNVh2lqtrNWsFL469uksMYXx9dNbipTDnOaiwvV5l5L+UgA= 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=uzFV2QfR; arc=none smtp.client-ip=209.85.161.53 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="uzFV2QfR" Received: by mail-oo1-f53.google.com with SMTP id 006d021491bc7-610cbca60cdso2398668eaf.0 for ; Tue, 01 Jul 2025 14:39:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1751405983; x=1752010783; 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=uzFV2QfR/9O4bbbkOJxLfJ4apFXo+I2UDKekRLkUk2CR62s4ds7TvNdaFJaNr15UV9 as/jpcwB9qphSeaOpw+0nyZirN0iBZ/+21NSkzFTlY9vKyriqkDIsTTGUn76ST45j+PL U4F8fyclyDjm/uQeJ5aOMvZB1eegv4aE+CaF3hSJPBypZkguCgesL/zAd027ZMb+LYij qUb/Fdbts06kGmSjvYCwBQeIbF+HLGlCkkYpU2RInFkQcZCCL/lPEjk7ZViE3OA+FeMH dGFz25q0NMAiRxEp4JxBUjleM5GP32g4p/+s5aLh7lnHZQFOd6lR4A8oFEkWLs7Gl8d3 QWfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751405983; x=1752010783; 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=aX1oVpcanXmwJ7VTY9c9S8eHLL14OwCiBwpur6riY5SkG2HXJYYG5zqrgYzaFkTsxV EYmtZkDHnKFrmw0nU8eLe1nBvC2XWjJN0P+HX9kTDuDjdau/TpXr4Li5k2kViEC+/mNB xL3KmJLn3WVj2ocAHNC9bQFP5cl6h2a6JFwES6l9TBMTwsR8jcC2qutpuvRTnfittMR0 FIX0brB3H3CCHSYeEXSoBg0xU3EzEU7VqiLjpDGNk+gJcOKtSLYrOtbk77IPW3cZwfmx 9Q7vXiN1IVSuaIuMyT9cshJLoRNUIMNX2YO/tuz05sqpqUgU7nydFxQPXm8WKbj5ewr6 bNig== X-Forwarded-Encrypted: i=1; AJvYcCXDrtc3swxArrS1l61tmAAOlpTwaG+fa38WfgiAh9P+osy9viNgT6w0Ic4J3Y4rJ3bjmhrKY2WkQwTRvAQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxbVkEqeR/Qs11ihxPjZPS0qVSsy5LDhEPPzVK6x8ClyR63r9nS cXz+kOMGg0fnDSm9jua69u0KQHXwc1yYWTn0aZAwICCB1raVgF5DZFr+j+Bn/2hCCW0= X-Gm-Gg: ASbGncuI+HOngCZ6hP4XUc/mu7IfZLWmJz0CuOtQA/UrT8mS8BlbOKXrEngSaGHdVrn yscnPV0vVEQWTM8iF/hKzRtEHp3Q0v8zQ2D2SV9cNkEy8NHEQnj4xbgDf/MLJ5ePUW/LA5NSVfw d9UhwPMfOLRfBdK7VOXEECXMUClHhBc5an7aiz6N8mx5u4Dg6TTZHG+BsuZ1UQnkyJvcAHJsJdx RbslKEhdp2WGevbV5+hFUkTyBePZxCAm2/80GgyzgtWnqQpgtq5e+HTgosmU0wv+TElhsgCCqah 4hCtjLTZSqjGNTOTyzEvxpsTGtgkU/rEeygABV9/VvRgr4kR/bQ8xGsAsBRgyvxRqOPr X-Google-Smtp-Source: AGHT+IF6kRQojTr3O2i9DG8mL7DMuXbV8rMwlD9TonhoHxqzG4+HoL+1QVcxeETXqNSATHlBkNqfyw== X-Received: by 2002:a05:6808:1a0e:b0:409:f8e:7274 with SMTP id 5614622812f47-40b88e07cbamr163963b6e.18.1751405983560; Tue, 01 Jul 2025 14:39:43 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:1d00:70a7:ca49:a250:f1d5]) by smtp.gmail.com with ESMTPSA id 5614622812f47-40b3243deeesm2288335b6e.48.2025.07.01.14.39.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Jul 2025 14:39:43 -0700 (PDT) From: David Lechner Date: Tue, 01 Jul 2025 16:38:00 -0500 Subject: [PATCH v3 12/12] 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: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-12-42abb83e3dac@baylibre.com> References: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@baylibre.com> In-Reply-To: <20250701-iio-adc-ad7173-add-spi-offload-support-v3-0-42abb83e3dac@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/AAcsmYgBoZFWKFauMI32n+rVJ4X53stwAqiiUvPd+u9cFp uvVIaRAIL+JATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCaGRVigAKCRDCzCAB/wGP wE4UCACbCLWfN9b147eeF/3FnSESrviOzb6Fu37NJlnlvMpDCeG1q6ArK8xrmF+fw25/vektB7i h24Bm6GTgyEVq+Q0MOPABO9fDJL2uSWaRuVrRrqVr/I9AbRWr5dIfxqQJGtMT/VYQwGAMcVp3h3 BKUeRv4tRjoETflevaU6psSJMOPzxt3XW7qTSYHuoYAZgWKFvqj9OJqtXTPaBmFuhtx83Jf7WCm sjQKKjGVOsn+yZ7Rzlpy34BGCYtFC/SsI1QHMxSe2idYDvGQZlJE5f7SFF9BNCb0VPGmd9A3Rah SAjh5D/znRiJRVMB4W6hFq60UKW28JwAD9k7EOd0B3ZEBd/b 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 Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 --- 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