From nobody Sat Oct 4 15:57:14 2025 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) (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 D3361243956; Thu, 14 Aug 2025 11:00:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755169227; cv=none; b=V1t3miuwTfaHtDoqsFMTuLvV4azxmm0b13quIwUhP7qPebndLQbnSUpFMW++afanY1yyWP3iN360UhMIjBH7Zz2w77OEaCDvPNavABN0xxtaTGDaFM4K5xuCx1aK4Z0e6ouZiuYEtqKCBvo06KY9CWsUz6B/YOTXymLidQidzCk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755169227; c=relaxed/simple; bh=7ZAY+2Peo7S2rRiLYIRAhUNbUzK4+1P+0qH+dyOPnWc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=J693ldYNZOAsonA71jmAFAHv+KZn0TdrYD1o7UlWQxELul4SRmXQr8tpOfU2RWlGOL+9SyWeQbuoEeXGCL+TqRSDqZrvPlqwkcVFkI3Zw5FWG95iaZwZxpLk+fGisr3C+UPlSDHOFXLjZDG7ERmQBCKJizLnEmUJ/UaWsByNS60= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XHYjrVJD; arc=none smtp.client-ip=209.85.218.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XHYjrVJD" Received: by mail-ej1-f50.google.com with SMTP id a640c23a62f3a-afcb72d51dcso122083166b.0; Thu, 14 Aug 2025 04:00:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1755169224; x=1755774024; 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=Xe/jpg8erHMI8XAl5plVXtak/ycKmWW+BnUpeddeEcY=; b=XHYjrVJDrlH22OCuyx5YEEtkdP9NRRIe4TEqHoHtIBjyUZmpkg70WCoFlAACOAOjfm bTuGDP9ntDXiwvBNWryvHf6/0RBTX+23ZkUndND0J+C/W0cIt8r9ERzTifo/0UgpLoWV 3YoMylm7DZFn8XFF3d9a4HIfrN8Xc6/l0FtcsqyvOfRjz0DCV6NBvi9GFN3ixxQZzzB8 T2COUBUCYKdgCrS2kkS5M6FkEhARFaHsYBYvDrzho2Vpo72T0F1IBW3Rr/7H+be0g95S k/0CMN0BHo+GC5sRiwlrA8yPtclklvKx8KUuyJWgncJzZp8iYWHh422RIiKFJh/w++cw CulQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755169224; x=1755774024; 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=Xe/jpg8erHMI8XAl5plVXtak/ycKmWW+BnUpeddeEcY=; b=clYBHHB7v95q57Stg10fMCtd0Laie8lgTz3Divy+8kffuCGf8c9QfY2xuWMtLo+0fk 4ej7+B857CyYzGFEpRULV0FWv7XogxuS/FR1gg4XinE+5yh2An4k1e6Zk82Nf/gTwLX/ vvNb7krTOyXhDAj1tHywu/zNssaC48ojEiA8bDHwOTbFvfMnZ6BEC4EyqwYEUN1q9De1 tf80gFyrDQN84wAkeI2PBfy4GoFB5X5XfAOcCMVQ7msXFGXprmI5AgoWV7cNQoWFDHPH +OopnGpsetFHVqv0i3/eTP+UlCp+WoZGc5UlNDAvWb1z7mmH1zb8eMqpn1f5xEEbsW8l q1pQ== X-Forwarded-Encrypted: i=1; AJvYcCW64V3RAeyT4QT9Tx+ICe+tjeii51xg9HCkoPQIr2Lvfpb2rrm35W5znycodtXrj66RH2CFlTiEEVmX@vger.kernel.org, AJvYcCXvD3g6KRPwriFOvlu5JlfSpbCli3mmcIbqfIbKLWF7fdB9kgwovv+Cq0sbtzHViE0dGkOgwJAg4M18@vger.kernel.org, AJvYcCXx0TgzGuMh6sp0N5QmjWg4nH8KGx1W/7I0Yeweg/4N9m+kKFfHdgqFPZ2pbrxJLMOGVzvV8sGgkqEHwtec@vger.kernel.org X-Gm-Message-State: AOJu0YzG1dURsFEeYHNBWnL0C8DoIU/uGRNbmxGslDUaOFtOEcxGmvG6 cjDBTEubvxoWMJAZgEQMVgHihiqH4UH3oglomh5gmO1JA2NtW0qPMiJJ X-Gm-Gg: ASbGncvzDP9mmfAJwnes4gwrTK5ZlizTC/7wJX2vUPvi1JxP2H6mQATBcRYAzCb3Xlx AjRHo7ztFFYnMvp2lqXDlT7MZctZvdok+asFuVIA3Yz/v0fy+vZmmo4zGVUI0gvmWEQN+9e2TEk v+IL/zRnjmsjjk+8FCA5P7oPTcAnrcrpZ/DloYDvTJCByKKeOGXs/yHfgA4FVnatyGZa2dEke/p m+bkTuPdBk6nxeDMaJ8yu1MpqwbZNoY7f1s0PJQWs9i6l+0azWVYgDM397VWH/rkRymWklxb5ho NEBa8y2vHQJqMzkKV/D9ItabRD+HGT2vpE+h0VlaA8Xek4CFTjzOrd/age8r3dGIioQEP4xi0OL CRgUINBJla3/vlMTgL9gfWp8TOBBX X-Google-Smtp-Source: AGHT+IHeBKJpU+BMGLtp8zoOPw+MiHePwcCIe1+CEv2NIUg4BbKvdiwa3tWjJOCs0H94l3jVMWxe+g== X-Received: by 2002:a17:906:aac8:b0:afc:c736:8b0d with SMTP id a640c23a62f3a-afcc7368bf6mr102799966b.22.1755169223921; Thu, 14 Aug 2025 04:00:23 -0700 (PDT) Received: from [127.0.1.1] ([185.177.137.147]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-af91dfd4b31sm2542980066b.85.2025.08.14.04.00.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 04:00:23 -0700 (PDT) From: Yusuf Alper Bilgin Date: Thu, 14 Aug 2025 13:00:17 +0200 Subject: [PATCH v3 1/4] dt-bindings: iio: adc: ltc2497: add lltc,ltc2495 bindings 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: <20250814-ltc2495-v3-1-c2a6cecd6b99@gmail.com> References: <20250814-ltc2495-v3-0-c2a6cecd6b99@gmail.com> In-Reply-To: <20250814-ltc2495-v3-0-c2a6cecd6b99@gmail.com> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Liam Beguin Cc: Michael Hennerich , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yusuf Alper Bilgin X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755169221; l=1424; i=y.alperbilgin@gmail.com; s=20250811; h=from:subject:message-id; bh=7ZAY+2Peo7S2rRiLYIRAhUNbUzK4+1P+0qH+dyOPnWc=; b=dLCdd2X0Ga7YceosXOExWOlNqZLZOuvMTHGvqfyAtYjwDUTcR+XBrparpoIQzDjQ+wCpx4Gr6 joSgiX/z+z4DESo+FtcPw6x8/skB0eq1nX725jQe1iXanBNPFOAnWUB X-Developer-Key: i=y.alperbilgin@gmail.com; a=ed25519; pk=FtW2oyQ0+xlYU0XmhYiJYC3lNPtPrgeE6i4WXPwaFnY= Update the binding documentation for LTC2497 to include LTC2495 to enable support for its internal temperature sensor, which requires a different I2C command format and a new IIO channel. Signed-off-by: Yusuf Alper Bilgin --- Documentation/devicetree/bindings/iio/adc/lltc,ltc2497.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/adc/lltc,ltc2497.yaml b/= Documentation/devicetree/bindings/iio/adc/lltc,ltc2497.yaml index 5cc6a96840778473895f436b7e2627d6240b254b..2a3e3dcc6ca7a48a0fccb88d8d4= 2fee34efcff73 100644 --- a/Documentation/devicetree/bindings/iio/adc/lltc,ltc2497.yaml +++ b/Documentation/devicetree/bindings/iio/adc/lltc,ltc2497.yaml @@ -17,11 +17,13 @@ description: | =20 https://www.analog.com/media/en/technical-documentation/data-sheets/23= 09fd.pdf =20 + LTC2495: LTC2497: LTC2499: 16bit ADC supporting up to 16 single ended or 8 differential inputs. I2C interface. =20 + https://www.analog.com/media/en/technical-documentation/data-sheets/24= 95fe.pdf https://www.analog.com/media/en/technical-documentation/data-sheets/24= 97fb.pdf https://www.analog.com/media/en/technical-documentation/data-sheets/24= 99fe.pdf =20 @@ -29,6 +31,7 @@ properties: compatible: enum: - lltc,ltc2309 + - lltc,ltc2495 - lltc,ltc2497 - lltc,ltc2499 =20 --=20 2.43.0 From nobody Sat Oct 4 15:57:14 2025 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (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 68C6F318159; Thu, 14 Aug 2025 11:00:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755169229; cv=none; b=n7dOeaSLt5Q5OkheaEm0olX24zdrzfxMsxumWmI0nkpHzgL4yDdiEvaAxQPWsDqkTGfratOoGWy6tNMsSXEi5ErnuPJOE15INRXXRlAJOtmej5XCOc4elrXU67q+cXzc6WrxIk/v5BJmYij0oASW4Ed9yx2fyLOWGh+LsDdOEwQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755169229; c=relaxed/simple; bh=7dL620a4ki2oCdeq6jvorfDoA7+7B+wm9Jmm2GXEtLw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lclYnye6SwrURefgJ/ceSmBqm+k0W0dgjA3TaMdBtUR7nfm7cUIZTS+43xrBOGF8GbI8jLFH/040CoCZ73THKF+EQWZ3A6s9PBwQZoNo76pVdARO/LwgQTg4owcYAEgQZeJ4kkYhKMNPtyzJ1HRTpnCfVfPDq2g/Bq9PvScCpi0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JZvwjUbh; arc=none smtp.client-ip=209.85.218.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JZvwjUbh" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-afcb7ae31caso134223866b.3; Thu, 14 Aug 2025 04:00:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1755169226; x=1755774026; 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=WEhRKi0HmzptgOPz8lO5moCSp0j9P7xyPzVGCUEQhMI=; b=JZvwjUbhqYRzgAKz/GSxl/rgKQLH4/NIMQLrAdP3yR0TFRU7C3I6xQ67TlBzXzZJgJ 6KuDiC0pHW8Jk/NyIH+oHSfG2/AEK0ppHp/TXf7YTgRA3MeDMux4UEFC3h0QHwpSs/yP 0ZYtKeIyzIFwlbNVWbeRGx2uuVFqu4jc4nG2Dr9Xow098xSzQ+5Vz1q3dT+ABO9M2Mt8 WwCLoqlWNaAPv7FsvPPIW/2DZ5Vj0akaXlF0hNnFqM1E4YgldqgUSbA+QQUUcq2JC6Ia fOwSG+NOnXiYn5kvam9Hv/yKyPklD4G2bZBB1j7kIm1CHfiieZFyYqY5xBnSj/O/TGcv SgUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755169226; x=1755774026; 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=WEhRKi0HmzptgOPz8lO5moCSp0j9P7xyPzVGCUEQhMI=; b=RbJnMUE29wTVOdVwyC+Uld4VQi7nQxlWP8VgejwBeqm0AvvwCVH3/nA2Cz8A+wxlnn R6txjnHVNlK82JDfCnxPQwYhI7P24XPbsygHY133gotJKmQJp+jDrdCm9Ly6Bx3yYS47 +XQFe5MAkrMoUf+vaVmq/LsGmMeWq6gEHLq1QS/Wryp+nGG8Joffv5jL13cePlnVn+cq /WLflKrsB8rd8nHcwR9j5N6M2Xu12+xshJphlOMkH7Znpi3/S6qnP6wMZAZS7/iHLBbv 06D43qQaFO3bX2t75rqK0Keb81katggmty5fPMBUpAzMDxLGmVsxG6PFiAq2lR6WWEP2 Xnpg== X-Forwarded-Encrypted: i=1; AJvYcCVP5S/O+7A3+moS/E3+/zYJGG6Yv4h2yWTYh3B+OrF088fug+IQZOoVladdsc6/y3+jdE8JNH7l3cRF@vger.kernel.org, AJvYcCVaMwu/gAtc5nZXPdJbAA3mSCQFDxGaYl7flQa+JjhLqeqzhXd8y6R8rtg08r0+usY1uFKUHwWbamPQ@vger.kernel.org, AJvYcCXBE4MwDvv3SRFBH9SEsNMs8GI+s2QDomAWmFeJWqZpsJ/nhQsdi5S1Hig8OCutZw3cZ5e3Ydet3EaoDVJo@vger.kernel.org X-Gm-Message-State: AOJu0YxA1CjUgsI97YniW7Et376haT7b57tMFYCy40uSzPGb1rISQiLU HfW7LlG2oTrZbzXlv2umcLlV/2msJ6s50MCmtq2TqaEwo8J5iuT8oxwS X-Gm-Gg: ASbGncsRQzJCgczMCNEC0P7SFpmaBtfEVrsNMQR6uGZGD+ZYza1/MfFuufH+xr52p0C d0lmmbzZ5I+YAmACcUyH5lNNBby5uI38202z0FYMrjeBxooNKqcewwpRC/xUld/yg5u+AxZQmHT yKYpgI8FSr3G1xupCkCxHWmv48fjDglaty7L7d4ae06NJHR4Pfy42y1wG4fRkkYEst5B5ItjzUY VwyCn1vdgQJJPEjlyNhxDlT0P2WL2fz3mGtdsC575/XpSowbmXkRU9QuBpWrYlMlBnMeaSbLmW/ PKY70p1WaFcyC5KUIFvTL88WNr3wJTiWcCxEQhZ/Z5IP4qlTwwJxb7oFADWuAxpFxnBhCsy/5vT VNmszrFRMWy3oenRxfjgDM0V6TLzv X-Google-Smtp-Source: AGHT+IGpy7AcomOG/iirooZ0YvCAWeXA8dWfouEtFX/dDgW1yuQGdQaKNHMtlTNXifnaHsiJk3/ATQ== X-Received: by 2002:a17:907:7241:b0:ade:8634:7b24 with SMTP id a640c23a62f3a-afcb9398044mr248048266b.1.1755169225500; Thu, 14 Aug 2025 04:00:25 -0700 (PDT) Received: from [127.0.1.1] ([185.177.137.147]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-af91dfd4b31sm2542980066b.85.2025.08.14.04.00.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 04:00:24 -0700 (PDT) From: Yusuf Alper Bilgin Date: Thu, 14 Aug 2025 13:00:18 +0200 Subject: [PATCH v3 2/4] iio: adc: ltc2497: add support for LTC2495 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: <20250814-ltc2495-v3-2-c2a6cecd6b99@gmail.com> References: <20250814-ltc2495-v3-0-c2a6cecd6b99@gmail.com> In-Reply-To: <20250814-ltc2495-v3-0-c2a6cecd6b99@gmail.com> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Liam Beguin Cc: Michael Hennerich , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yusuf Alper Bilgin X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755169221; l=1588; i=y.alperbilgin@gmail.com; s=20250811; h=from:subject:message-id; bh=7dL620a4ki2oCdeq6jvorfDoA7+7B+wm9Jmm2GXEtLw=; b=ZXQ9yA0JvgKaKvwfDWCsimXZts/WH/Z81TKnKQZoob3XZ2KalnOJXqQfR5utMxnb13AGxGR9s UWAYTxdVyqcA2FWWKnKW3Q01dG3jE8Gm1ngDe8uiaUaQ7hLGbQiNtJ6 X-Developer-Key: i=y.alperbilgin@gmail.com; a=ed25519; pk=FtW2oyQ0+xlYU0XmhYiJYC3lNPtPrgeE6i4WXPwaFnY= Update the LTC2497 driver to also support the LTC2495. Signed-off-by: Yusuf Alper Bilgin --- drivers/iio/adc/ltc2497.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/iio/adc/ltc2497.c b/drivers/iio/adc/ltc2497.c index eb9d521e86e54def0493ea0e81f63b37900c56a5..8f4665547b5b0d32084599f8557= c40102c37a4ce 100644 --- a/drivers/iio/adc/ltc2497.c +++ b/drivers/iio/adc/ltc2497.c @@ -19,6 +19,7 @@ #include "ltc2497.h" =20 enum ltc2497_chip_type { + TYPE_LTC2495, TYPE_LTC2497, TYPE_LTC2499, }; @@ -131,6 +132,10 @@ static void ltc2497_remove(struct i2c_client *client) } =20 static const struct ltc2497_chip_info ltc2497_info[] =3D { + [TYPE_LTC2495] =3D { + .resolution =3D 16, + .name =3D "ltc2495", + }, [TYPE_LTC2497] =3D { .resolution =3D 16, .name =3D NULL, @@ -142,6 +147,7 @@ static const struct ltc2497_chip_info ltc2497_info[] = =3D { }; =20 static const struct i2c_device_id ltc2497_id[] =3D { + { "ltc2495", (kernel_ulong_t)<c2497_info[TYPE_LTC2495] }, { "ltc2497", (kernel_ulong_t)<c2497_info[TYPE_LTC2497] }, { "ltc2499", (kernel_ulong_t)<c2497_info[TYPE_LTC2499] }, { } @@ -149,6 +155,7 @@ static const struct i2c_device_id ltc2497_id[] =3D { MODULE_DEVICE_TABLE(i2c, ltc2497_id); =20 static const struct of_device_id ltc2497_of_match[] =3D { + { .compatible =3D "lltc,ltc2495", .data =3D <c2497_info[TYPE_LTC2495] }, { .compatible =3D "lltc,ltc2497", .data =3D <c2497_info[TYPE_LTC2497] }, { .compatible =3D "lltc,ltc2499", .data =3D <c2497_info[TYPE_LTC2499] }, { } --=20 2.43.0 From nobody Sat Oct 4 15:57:14 2025 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.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 9148B318159; Thu, 14 Aug 2025 11:00:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755169235; cv=none; b=aJBEpqqeuvdvIwAk7tW6tNTpUPLaTmdXYtOWsJRdsS9b1tDIi77cgH2fcR7WL1iG8uQ5KFD907Cuz0iK7zcJKXqr6oCVQI6ApAjlr0J7g6OaBjlzlw8wrghLV8DsFznbrj2ZBJ7p+2aXQ26SzHOyn7qCb4AoapF0rCwxzq8/nf4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755169235; c=relaxed/simple; bh=TB8z6eegknP9aVPdrzi4Bt2WSaiCi/VlFDXiuizM2c4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Wtma4Z2+SWFeLW9KwsYh//TKnAxTDao9xmGoUtUmGszX6eraA2ur7sUKXiVdS6H3Iz6dbHmBzHou4AH1mjbM6HkKbUdnVaYMv6e/DVy9iTam5DrIKjIa5Tzx9kWVVAhGnLv2ubEIrqXlADSJ95V3zPw86xLxuEzsxvDYumqVm1g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jwzxqYG2; arc=none smtp.client-ip=209.85.218.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jwzxqYG2" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-afcb7a8dd3dso129824566b.3; Thu, 14 Aug 2025 04:00:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1755169232; x=1755774032; 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=igkO6ryktDgA+t6fnHzCELHDHELAgmtyYXfKoJ51r+k=; b=jwzxqYG2g3Bjvmt9MiHsgg0w/x98BgDS5IHiiNXw3wZZGJkHbSX/iXl8XAC0n4yG8/ ahbuIaaMEq5HQKmqMsSEbTNuCjZIGrJjKWS7IjqjLbuFNYJXNYbYAXEFDPrDFiVKJiE8 PSNoUmi2IP+xmtEjuPUnnFIYXeXZ2YeZ3tsPYu8IxvjntLu2n/fddwAy0b4a688bJaKo kp4gkpDr7fgJ68Q7l1ak595IzlEviz13L9rx6+xzwRhu/RmqmBwfDdN1Eo5LZlxG9Gy7 AGZ8ySbmXmzWnLcbZXiuQZ5xjreAsXpk8s/8AuX511uhSDZnT1M6+pfuCQYhh2MrIYn+ +B7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755169232; x=1755774032; 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=igkO6ryktDgA+t6fnHzCELHDHELAgmtyYXfKoJ51r+k=; b=uvSppB7Tas2T26Mk8hSJ3JgH+fERcEfZPIcrxdCoTRIye0qO3YMC09ASTXko+MrBgD EACEeuJtAlXH87vwu/UDdZsZ40EtpO1zL4age3z8g7sTqbrHWyxZAyW4zgRjDBwOWkPB ugV7vlA7x1JpRppKnlp20+N7/1gwYLihnhoevWg1gI8grniyRfGvnPRzni7Vs6Su2Htu S+A43qa4tRcK0/bkk+nxgKC+tB5LxCmA91XU2xsesbBakirA3i57gOlBUB6JcvvvtyXJ sNMdeGm4JscCWD1r0aR8ndHn12PmeRFTGrmF4m4hRhuswj2xcOELFp8dl6CpSTi04atz PPEw== X-Forwarded-Encrypted: i=1; AJvYcCUyJAVK/MymyTji9EMskDMx7vWxYwezFwbo6wsmLlk5H9R7mqy0Wu6LuITUsXRSx7YIo1gHUUX0vpkvdAP6@vger.kernel.org, AJvYcCVvNlMrzdBkhn9dEj5X9CIHFGnYDSNw0lIWAsz+FFSNdxBazf0WSnC1aGyGZ3NNXVAxaFvgFb/VJXIc@vger.kernel.org, AJvYcCW7yCNRb4tDkwARtQV/veUYwFFoSJF2bwqd3uPSM9dly8vo0JlyaJTheLpx+T104ppdCxhkTxj1MTa5@vger.kernel.org X-Gm-Message-State: AOJu0YwD7jeym/p8rUEf6VRsndsNDuRo9PQ/uTzL8fMRkRkcB4nZFdmJ w02YLS/iNOIUqrE3QfI6ZhI1hVbPK9NmVp1FvPLehE68E0EM254MPyiW3fVFhAzy X-Gm-Gg: ASbGncuZAB7XHaEE2SdPgcsfMZSEBLldeLsEHHJE9nbsU4Cy/0nNqkjXGr3T8pe7+W1 WNayqwufdUf6F/bfhPYbOnph5mAGPW5wAc8Q+ffCyz68cfgRq3mbHpviLWLd7anU5Z/ME+CC6LR VpkfI01KgbsJP9Q+Hi5Aa5pXICoyNmLb48/KrbX2h4bCoSebrjbWJvYY232SgcVIOxF2gEY/b8w +9R/N99ZiL75y/vLiDFAOgE0gHV4vnVJL//knSbBdzKW7/aoEgPbD8LOnRM8q+7HdOagS8jqlQn SqnH7uoi+hUhnJcVDK9zZkfblp8hiNqtVajbry92vpa/Aw+xSu+uhogbV1GaTO3XVc2SIUaSg6G y4hSOtBz8mpO68ePbDhrZXt6EuIvW X-Google-Smtp-Source: AGHT+IE0cdESPySUOhaMsPxZ6zwDP3I5x/eiYZTISbPQaTxM80zBvskI8z5Bt8WgeHdM+SBnMJLOdQ== X-Received: by 2002:a17:907:94cf:b0:af9:8438:de48 with SMTP id a640c23a62f3a-afcb99072a6mr257208466b.48.1755169231657; Thu, 14 Aug 2025 04:00:31 -0700 (PDT) Received: from [127.0.1.1] ([185.177.137.147]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-af91dfd4b31sm2542980066b.85.2025.08.14.04.00.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 04:00:25 -0700 (PDT) From: Yusuf Alper Bilgin Date: Thu, 14 Aug 2025 13:00:19 +0200 Subject: [PATCH v3 3/4] iio: adc: ltc2497: add temperature sensor 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: <20250814-ltc2495-v3-3-c2a6cecd6b99@gmail.com> References: <20250814-ltc2495-v3-0-c2a6cecd6b99@gmail.com> In-Reply-To: <20250814-ltc2495-v3-0-c2a6cecd6b99@gmail.com> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Liam Beguin Cc: Michael Hennerich , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yusuf Alper Bilgin X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755169221; l=9863; i=y.alperbilgin@gmail.com; s=20250811; h=from:subject:message-id; bh=TB8z6eegknP9aVPdrzi4Bt2WSaiCi/VlFDXiuizM2c4=; b=3RpzE5IJRt2tHIttbRU8w1soTf9ebzVMLxjOjmMeVZwR4j+rGsBWhcULouRtfGekF4vHnQjgn YwcPofcDiqyCP2iPVLIxc+oHP8XS0KP1lGTKhYjkoFpz7XveZWTW3YB X-Developer-Key: i=y.alperbilgin@gmail.com; a=ed25519; pk=FtW2oyQ0+xlYU0XmhYiJYC3lNPtPrgeE6i4WXPwaFnY= Support for reading the internal temperature sensor on LTC2495 and LTC2499 via a standard IIO temperature channel. Signed-off-by: Yusuf Alper Bilgin --- drivers/iio/adc/ltc2497-core.c | 141 ++++++++++++++++++++++++++++++-------= ---- drivers/iio/adc/ltc2497.c | 28 +++++++- drivers/iio/adc/ltc2497.h | 15 +++++ 3 files changed, 145 insertions(+), 39 deletions(-) diff --git a/drivers/iio/adc/ltc2497-core.c b/drivers/iio/adc/ltc2497-core.c index 2dc5c704426949a4ec62c42591d6c2c40ffb79cc..bbb7948f81933ee35103e37cb2b= a94354f61b32e 100644 --- a/drivers/iio/adc/ltc2497-core.c +++ b/drivers/iio/adc/ltc2497-core.c @@ -12,6 +12,7 @@ #include #include #include +#include =20 #include "ltc2497.h" =20 @@ -95,10 +96,53 @@ static int ltc2497core_read_raw(struct iio_dev *indio_d= ev, if (ret < 0) return ret; =20 - *val =3D ret / 1000; - *val2 =3D ddata->chip_info->resolution + 1; + switch (chan->type) { + case IIO_VOLTAGE: + *val =3D ret / 1000; + *val2 =3D ddata->chip_info->resolution + 1; + + return IIO_VAL_FRACTIONAL_LOG2; + + case IIO_TEMP: + if (!ddata->chip_info->has_temp_channel) + return -EINVAL; + + /* + * The datasheet formula to get Temperature in Celsius is: + * Temp_C =3D (DATAOUT * Vref_V / temp_scale) - 273 + * + * To match the IIO framework's model of (raw + offset) * scale, + * and to get the final result in millidegrees Celsius: + * + * Temp_mC =3D ((DATAOUT * Vref_mV / temp_scale_mV) - 273) * 1000 + * Temp_mC =3D (DATAOUT - (273 * temp_scale_mV / Vref_mv)) * 1000 * + * Vref_mV / temp_scale_mV + * + * This gives us: + * scale =3D Vref_mV * 1000 / temp_scale_mV + * offset =3D -273 * temp_scale / Vref_mV + */ + *val =3D ret; + *val2 =3D ddata->chip_info->temp_scale_mV; + + return IIO_VAL_FRACTIONAL; + + default: + return -EINVAL; + } + case IIO_CHAN_INFO_OFFSET: + if (chan->type !=3D IIO_TEMP) + return -EINVAL; + + /* see the calculation above. Offset with (-273 * temp_scale / Vref) */ + ret =3D regulator_get_voltage(ddata->ref); + if (ret < 0) + return ret; =20 - return IIO_VAL_FRACTIONAL_LOG2; + *val =3D kelvin_to_celsius(0) * ddata->chip_info->temp_scale_mV; + *val2 =3D ret / 1000; + + return IIO_VAL_FRACTIONAL; =20 default: return -EINVAL; @@ -126,39 +170,56 @@ static int ltc2497core_read_raw(struct iio_dev *indio= _dev, .differential =3D 1, \ } =20 +#define LTC2497_TEMPERATURE_CHAN \ +{ \ + .type =3D IIO_TEMP, \ + .channel =3D 0, \ + .address =3D (LTC2497_ENABLE_TEMPERATURE_CONV), \ + .info_mask_separate =3D BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_shared_by_type =3D BIT(IIO_CHAN_INFO_SCALE) | BIT(IIO_CHAN_INF= O_OFFSET), \ +} + +#define LTC2497_VOLTAGE_CHANNEL_LIST \ + LTC2497_CHAN(0, LTC2497_SGL, "CH0"), \ + LTC2497_CHAN(1, LTC2497_SGL, "CH1"), \ + LTC2497_CHAN(2, LTC2497_SGL, "CH2"), \ + LTC2497_CHAN(3, LTC2497_SGL, "CH3"), \ + LTC2497_CHAN(4, LTC2497_SGL, "CH4"), \ + LTC2497_CHAN(5, LTC2497_SGL, "CH5"), \ + LTC2497_CHAN(6, LTC2497_SGL, "CH6"), \ + LTC2497_CHAN(7, LTC2497_SGL, "CH7"), \ + LTC2497_CHAN(8, LTC2497_SGL, "CH8"), \ + LTC2497_CHAN(9, LTC2497_SGL, "CH9"), \ + LTC2497_CHAN(10, LTC2497_SGL, "CH10"), \ + LTC2497_CHAN(11, LTC2497_SGL, "CH11"), \ + LTC2497_CHAN(12, LTC2497_SGL, "CH12"), \ + LTC2497_CHAN(13, LTC2497_SGL, "CH13"), \ + LTC2497_CHAN(14, LTC2497_SGL, "CH14"), \ + LTC2497_CHAN(15, LTC2497_SGL, "CH15"), \ + LTC2497_CHAN_DIFF(0, LTC2497_DIFF), \ + LTC2497_CHAN_DIFF(1, LTC2497_DIFF), \ + LTC2497_CHAN_DIFF(2, LTC2497_DIFF), \ + LTC2497_CHAN_DIFF(3, LTC2497_DIFF), \ + LTC2497_CHAN_DIFF(4, LTC2497_DIFF), \ + LTC2497_CHAN_DIFF(5, LTC2497_DIFF), \ + LTC2497_CHAN_DIFF(6, LTC2497_DIFF), \ + LTC2497_CHAN_DIFF(7, LTC2497_DIFF), \ + LTC2497_CHAN_DIFF(0, LTC2497_DIFF | LTC2497_SIGN), \ + LTC2497_CHAN_DIFF(1, LTC2497_DIFF | LTC2497_SIGN), \ + LTC2497_CHAN_DIFF(2, LTC2497_DIFF | LTC2497_SIGN), \ + LTC2497_CHAN_DIFF(3, LTC2497_DIFF | LTC2497_SIGN), \ + LTC2497_CHAN_DIFF(4, LTC2497_DIFF | LTC2497_SIGN), \ + LTC2497_CHAN_DIFF(5, LTC2497_DIFF | LTC2497_SIGN), \ + LTC2497_CHAN_DIFF(6, LTC2497_DIFF | LTC2497_SIGN), \ + LTC2497_CHAN_DIFF(7, LTC2497_DIFF | LTC2497_SIGN) + static const struct iio_chan_spec ltc2497core_channel[] =3D { - LTC2497_CHAN(0, LTC2497_SGL, "CH0"), - LTC2497_CHAN(1, LTC2497_SGL, "CH1"), - LTC2497_CHAN(2, LTC2497_SGL, "CH2"), - LTC2497_CHAN(3, LTC2497_SGL, "CH3"), - LTC2497_CHAN(4, LTC2497_SGL, "CH4"), - LTC2497_CHAN(5, LTC2497_SGL, "CH5"), - LTC2497_CHAN(6, LTC2497_SGL, "CH6"), - LTC2497_CHAN(7, LTC2497_SGL, "CH7"), - LTC2497_CHAN(8, LTC2497_SGL, "CH8"), - LTC2497_CHAN(9, LTC2497_SGL, "CH9"), - LTC2497_CHAN(10, LTC2497_SGL, "CH10"), - LTC2497_CHAN(11, LTC2497_SGL, "CH11"), - LTC2497_CHAN(12, LTC2497_SGL, "CH12"), - LTC2497_CHAN(13, LTC2497_SGL, "CH13"), - LTC2497_CHAN(14, LTC2497_SGL, "CH14"), - LTC2497_CHAN(15, LTC2497_SGL, "CH15"), - LTC2497_CHAN_DIFF(0, LTC2497_DIFF), - LTC2497_CHAN_DIFF(1, LTC2497_DIFF), - LTC2497_CHAN_DIFF(2, LTC2497_DIFF), - LTC2497_CHAN_DIFF(3, LTC2497_DIFF), - LTC2497_CHAN_DIFF(4, LTC2497_DIFF), - LTC2497_CHAN_DIFF(5, LTC2497_DIFF), - LTC2497_CHAN_DIFF(6, LTC2497_DIFF), - LTC2497_CHAN_DIFF(7, LTC2497_DIFF), - LTC2497_CHAN_DIFF(0, LTC2497_DIFF | LTC2497_SIGN), - LTC2497_CHAN_DIFF(1, LTC2497_DIFF | LTC2497_SIGN), - LTC2497_CHAN_DIFF(2, LTC2497_DIFF | LTC2497_SIGN), - LTC2497_CHAN_DIFF(3, LTC2497_DIFF | LTC2497_SIGN), - LTC2497_CHAN_DIFF(4, LTC2497_DIFF | LTC2497_SIGN), - LTC2497_CHAN_DIFF(5, LTC2497_DIFF | LTC2497_SIGN), - LTC2497_CHAN_DIFF(6, LTC2497_DIFF | LTC2497_SIGN), - LTC2497_CHAN_DIFF(7, LTC2497_DIFF | LTC2497_SIGN), + LTC2497_VOLTAGE_CHANNEL_LIST, +}; + +static const struct iio_chan_spec ltc2497core_channel_with_temperature[] = =3D { + LTC2497_VOLTAGE_CHANNEL_LIST, + LTC2497_TEMPERATURE_CHAN, }; =20 static const struct iio_info ltc2497core_info =3D { @@ -182,8 +243,14 @@ int ltc2497core_probe(struct device *dev, struct iio_d= ev *indio_dev) =20 indio_dev->info =3D <c2497core_info; indio_dev->modes =3D INDIO_DIRECT_MODE; - indio_dev->channels =3D ltc2497core_channel; - indio_dev->num_channels =3D ARRAY_SIZE(ltc2497core_channel); + + if (ddata->chip_info->has_temp_channel) { + indio_dev->channels =3D ltc2497core_channel_with_temperature; + indio_dev->num_channels =3D ARRAY_SIZE(ltc2497core_channel_with_temperat= ure); + } else { + indio_dev->channels =3D ltc2497core_channel; + indio_dev->num_channels =3D ARRAY_SIZE(ltc2497core_channel); + } =20 ret =3D ddata->result_and_measure(ddata, LTC2497_CONFIG_DEFAULT, NULL); if (ret < 0) diff --git a/drivers/iio/adc/ltc2497.c b/drivers/iio/adc/ltc2497.c index 8f4665547b5b0d32084599f8557c40102c37a4ce..07fced79aeead3778964b114d47= 9fdcb643c16df 100644 --- a/drivers/iio/adc/ltc2497.c +++ b/drivers/iio/adc/ltc2497.c @@ -86,8 +86,28 @@ static int ltc2497_result_and_measure(struct ltc2497core= _driverdata *ddata, return 0; } =20 - ret =3D i2c_smbus_write_byte(st->client, - LTC2497_ENABLE | address); + /* + * Chips with temperature sensor support (e.g., LTC2495/LTC2499) + * require a two-byte command format to select any channel. + * + * To read the internal temperature, LTC2497_ENABLE_TEMPERATURE_CONV + * is sent as the second byte. To read a voltage channel, LTC2497_EN2 + * is sent, which sets the default configuration: simultaneous 50/60Hz + * rejection, 1x speed, and gain=3D1. + * + * Chips without this feature use a standard single-byte command. + */ + if (ddata->chip_info->has_temp_channel) { + if (address =3D=3D LTC2497_ENABLE_TEMPERATURE_CONV) + ret =3D i2c_smbus_write_byte_data(st->client, LTC2497_ENABLE, + LTC2497_ENABLE_TEMPERATURE_CONV); + else + ret =3D i2c_smbus_write_byte_data(st->client, LTC2497_ENABLE | address, + LTC2497_EN2); + } else { + ret =3D i2c_smbus_write_byte(st->client, LTC2497_ENABLE | address); + } + if (ret) dev_err(&st->client->dev, "i2c transfer failed: %pe\n", ERR_PTR(ret)); @@ -135,6 +155,8 @@ static const struct ltc2497_chip_info ltc2497_info[] = =3D { [TYPE_LTC2495] =3D { .resolution =3D 16, .name =3D "ltc2495", + .has_temp_channel =3D true, + .temp_scale_mV =3D 12250, }, [TYPE_LTC2497] =3D { .resolution =3D 16, @@ -143,6 +165,8 @@ static const struct ltc2497_chip_info ltc2497_info[] = =3D { [TYPE_LTC2499] =3D { .resolution =3D 24, .name =3D "ltc2499", + .has_temp_channel =3D true, + .temp_scale_mV =3D 1570000, }, }; =20 diff --git a/drivers/iio/adc/ltc2497.h b/drivers/iio/adc/ltc2497.h index 64e81c95a3dd05911b6717c09ac0560c9f47f304..65f406bc61c24b912de4beed604= a074b3ea9df91 100644 --- a/drivers/iio/adc/ltc2497.h +++ b/drivers/iio/adc/ltc2497.h @@ -3,10 +3,25 @@ #define LTC2497_ENABLE 0xA0 #define LTC2497_CONFIG_DEFAULT LTC2497_ENABLE #define LTC2497_CONVERSION_TIME_MS 150ULL +#define LTC2497_EN2 BIT(7) +/* Enable the internal temperature sensor */ +#define LTC2497_IM BIT(6) +/* Second command byte value to initiate a temperature conversion */ +#define LTC2497_ENABLE_TEMPERATURE_CONV (LTC2497_EN2 | LTC2497_IM) =20 struct ltc2497_chip_info { u32 resolution; const char *name; + /* + * Represents the datasheet constant from the temperature formula: + * T_Kelvin =3D (DATAOUT * Vref) / temp_scale, where Vref is in Volts. + * + * To allow the driver to use Vref in millivolts for the calculation + * and also to avoid floating points, this stored value represents the + * datasheet constant scaled by 1000. + */ + u32 temp_scale_mV; + bool has_temp_channel; }; =20 struct ltc2497core_driverdata { --=20 2.43.0 From nobody Sat Oct 4 15:57:14 2025 Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com [209.85.218.43]) (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 E67642EAB9F; Thu, 14 Aug 2025 11:00:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755169236; cv=none; b=bBmZ2zXt8i/5eVHZZ0/o9+0xJk1hZ4g/EKu4H4iRO8W76E0WqFoUgXM0UNK6NFuHxqh7rrEwbPuZvv3CTAbUFsjkdiE7JTKT8dxjy2IXCQCyCPldBvNUNU1i98TFmvAalsOZluqPqyjB06/wbPsSr8qPHFMp+L6pJL+fW+l3d9c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755169236; c=relaxed/simple; bh=ha3TYWbV+huAwQsCRTUDSrSg0nq7+oWMtWJZ76ApaJI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Qvj867XdxlqDpOdD6XLBdvqtQktKV4l7mZhWN+k/tX9HnicYr+YVeBRQLisscQJTxrza+u2X+an6drqYWaYu3NVluG/EeeQCx6Sv6Ut2fYw1GcLx1LdCszOUlaaprgHtbgvV36Ir75o87hq2FvoczMh0jVcC4xv6fcy/+asFtm8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=X7qTVoxT; arc=none smtp.client-ip=209.85.218.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="X7qTVoxT" Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-afcb73621fcso116010166b.0; Thu, 14 Aug 2025 04:00:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1755169233; x=1755774033; 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=IVqngp6d0YHayShjN7NcmU4rtRaIIuqWkl5dT+TPW6Y=; b=X7qTVoxTrnD5iZ4vLXQhCv7dg8n/5otgdhrv3ZjXzQodLLWUW2/x8+l2sM7CwgmZiD 12QbHgyD3i9MC38NkJ0U6PThONi68zGw6UDdn5yN/mFiLJ+OGpACdmTrbIqTn0T4oAU0 xd16gyaHZYo0HiDIsKFswUYOa9bQvJcNh37G7mdEe2+bejhqQdgEobeYkaIxCSHi7koa ovKuRwayjigJtzve78zkcHpJOaVNjc7dDI3YNfE7Bs9bkwTMdlTyJeVGk8e7Nee26nyR 7hlAHLwEdmf0A1+e7GMe1drdS9bowgXNpP0E2L1mNuTxcR+MKk9LUVc5CNRlOzPnhrKd 1aRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755169233; x=1755774033; 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=IVqngp6d0YHayShjN7NcmU4rtRaIIuqWkl5dT+TPW6Y=; b=eZ25GEjgdyQz7UQnUiryuzPwQW3QlvxBdWMyL166RRihMd6oVcMXPTNKVbXqOARgGd WlGsnb3MNnT/+SWt1ckjrBK1tBH7dJ6CEADuxJ74unyXW0ETVq11DUn7rjaDgLjYk9DN 6SGp7Eu/DLxa8SILcG5XCL6XUC5MwdXy+ySyaEHDNgnqoyY/MGvHcUJTp1yNyq2hBzKB 5E++8H59I0P53kt5Foa9FHPWwi83dWPfjsupwkmCMDLdGPvljmrXUgoX17F/pU32SWll lWxmKsv1scIaKelptJ/3XyK9SVZ52HsEqzVW4/VY7+HH8qu8DGC7zyz3gHUrm8X7B8yM mnRQ== X-Forwarded-Encrypted: i=1; AJvYcCU5qmbSk0BXExHSCWygFfRUPWKVURAGc94aI68tBup28PSlPTT7V1hdSeBxru1nzy/7iGMwBC2HADWvXxmA@vger.kernel.org, AJvYcCUdkoZ5+dAvzSiE9SHXxgPwzjPq8+aMkO/AgZd5j1o3+jRQn5BY5lwsRje1bdXotQSGGgY9uT+hYJs0@vger.kernel.org, AJvYcCWBdWgk4y/n+GALc8SrzCR7lkdPcKkxpHL1PmHrcONwaXDZOM3BWMoXH8lQfsoasKkdxCKQpZONz4ir@vger.kernel.org X-Gm-Message-State: AOJu0YzaaAnDM7X2Mhwy4NM2iQKcyVLQIRqkH6rBOdY8bohrHIAuoQeg CbOXu3XFWhe2Wn2SaH9TV/LL7muD+5clgDkHvAT4Yl1Q0gb11EpPMKJ2 X-Gm-Gg: ASbGncuORQ6va4e0VKODOmENhE3CIXSVCEd8lcAk6z/9neHdwEDcdVfQOeRfYvdNyY9 S2fBLBrfZ2jiPWF2cqkU+9aZj44HmgykV/nNCVOrfd86J/m7Fc93S78gR574Z+8YHFX6AaYQjY2 P3nLQHMlGskcZJ1mzJy4SVbd54q4vOZw3htZG4MLaWS0k/O/cHYsoTWwaIOv4kuTvw7mhYRnihX wHQ5TIlAFa0kzJzt3CC8MXWGdvZklA4/gx5EfuoOR8FlzC7FAkomuPQOKwuheHlmOqRoMoDkc7d ZFZeU5evtKDHqBCmFYm4TmAqLCI33oCA0w+B9DilZrJcnr/O7/Fq0Ic5CMwt7nXKcP9nMzkuOQE CYAcTGD1VBA5RWyn4AZAYHtwMuSJd X-Google-Smtp-Source: AGHT+IFb4uqgKytb6JRIALaC3r7ae///g9Z/qOGjhuJ/hLXr/TVNVTsIfJAGTCy8LbQPDjrIaOnPKA== X-Received: by 2002:a17:907:9487:b0:ae0:ab3f:36b5 with SMTP id a640c23a62f3a-afcb981ee79mr254524466b.4.1755169233178; Thu, 14 Aug 2025 04:00:33 -0700 (PDT) Received: from [127.0.1.1] ([185.177.137.147]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-af91dfd4b31sm2542980066b.85.2025.08.14.04.00.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 04:00:32 -0700 (PDT) From: Yusuf Alper Bilgin Date: Thu, 14 Aug 2025 13:00:20 +0200 Subject: [PATCH v3 4/4] iio: adc: ltc2497: reorder struct members to fix memory holes 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: <20250814-ltc2495-v3-4-c2a6cecd6b99@gmail.com> References: <20250814-ltc2495-v3-0-c2a6cecd6b99@gmail.com> In-Reply-To: <20250814-ltc2495-v3-0-c2a6cecd6b99@gmail.com> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Liam Beguin Cc: Michael Hennerich , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yusuf Alper Bilgin X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1755169221; l=1743; i=y.alperbilgin@gmail.com; s=20250811; h=from:subject:message-id; bh=ha3TYWbV+huAwQsCRTUDSrSg0nq7+oWMtWJZ76ApaJI=; b=AAUFkHhsavrGE02LDakST86q8xbNc5p47qQxtm45rVCCHo0N+t1JNejhdY+/4DuJPXDJbui/D OW2xs1Rczi/BgFqc/a2zKjM//RR2j8u2LNCKtz9VkkydLJO3bfEwWY3 X-Developer-Key: i=y.alperbilgin@gmail.com; a=ed25519; pk=FtW2oyQ0+xlYU0XmhYiJYC3lNPtPrgeE6i4WXPwaFnY= Reorder members in the `ltc2497_chip_info` and `ltc2497core_driverdata` structs to eliminate memory holes identified by the `pahole` tool. Confirm via the `bloat-o-meter` that this change has no significant impact on the final code size: | Object File | Total Size Change | |-----------------|-------------------| | ltc2497-core.o | 0 (0.00%) | | ltc2497.o | +2 (+0.10%) | | ltc2496.o | 0 (0.00%) | Signed-off-by: Yusuf Alper Bilgin --- drivers/iio/adc/ltc2497.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/iio/adc/ltc2497.h b/drivers/iio/adc/ltc2497.h index 65f406bc61c24b912de4beed604a074b3ea9df91..578f55efc5c400980fe8bbd2b22= 0aafb222d6f33 100644 --- a/drivers/iio/adc/ltc2497.h +++ b/drivers/iio/adc/ltc2497.h @@ -10,8 +10,8 @@ #define LTC2497_ENABLE_TEMPERATURE_CONV (LTC2497_EN2 | LTC2497_IM) =20 struct ltc2497_chip_info { - u32 resolution; const char *name; + u32 resolution; /* * Represents the datasheet constant from the temperature formula: * T_Kelvin =3D (DATAOUT * Vref) / temp_scale, where Vref is in Volts. @@ -27,12 +27,12 @@ struct ltc2497_chip_info { struct ltc2497core_driverdata { struct regulator *ref; ktime_t time_prev; - /* lock to protect against multiple access to the device */ - struct mutex lock; const struct ltc2497_chip_info *chip_info; - u8 addr_prev; int (*result_and_measure)(struct ltc2497core_driverdata *ddata, u8 address, int *val); + /* lock to protect against multiple access to the device */ + struct mutex lock; + u8 addr_prev; }; =20 int ltc2497core_probe(struct device *dev, struct iio_dev *indio_dev); --=20 2.43.0