From nobody Sun Dec 14 12:17:06 2025 Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) (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 9BC1E34545; Sun, 20 Apr 2025 01:49:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745113755; cv=none; b=ZGZVzFLC0UVfYt+SYM7KtielMWvudtxPU34i2LcUZLWxBb++MG+X0FPjLC17FcK46knP+1FSc+yZ56+mCY2QKIv2+NfoZt2FfJv0E1meCgiPU0+ZWISQhGAoWoZO0PeplK2AA+PV3azEx5dJfRYcgxdjLjCi4u3ix4tXCK9uqso= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745113755; c=relaxed/simple; bh=nhjNiEws7JDfpSABnQRCrgaV/jVLhmHTd1ukZHOLh3Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Yq1udvBeo4I5UAJ2s0je4kMbWdfejkjs3F7TGNkcAvfu83Ilr/Wo0ducS3zZ60LtPUhuXiBgVl8VPcgnXad4xjUSbjnLchsQGEJ197BHMpgw496JG3l0xWq7B6MBpqEkylAv5UIwshCn0tZ++r4ikUq7njovEZ8AkVOisRDfFDg= 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=PWnm36w8; arc=none smtp.client-ip=209.85.219.51 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="PWnm36w8" Received: by mail-qv1-f51.google.com with SMTP id 6a1803df08f44-6e8f06e13a4so40321216d6.0; Sat, 19 Apr 2025 18:49:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745113752; x=1745718552; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Gk0TUJMIcvb2/Yt9CvbEI4RZU5fYHN3893YNwk+aijI=; b=PWnm36w8rHP+TNs7cNhns2hWCwTQS3WU3VzBdzMDXUDvukZn15meavgYduD+gmaMc1 cCgXHguZ7Pkn7mB44JGWfpEgvEAIpQx+mSVYTKlLGThq4ShlUb9nJAbwwrEWGCau2Jiw M05/QJRUcbLDFJeHgccit3sZqergZin04ZhCtETnLuz7Cf7QrBtAOguh1576jlMOFBcG WS3mIEzyLe4XhbwZ4dUvdDc52/uQBWVOeuWDfi+mibRAvKQe9LL8od2pfQOejLZIfksq Do6Ym+p3pkjokfbe9CjIjVfrgQRkafUK1dYBb1VoZtXW7/Wn5rSl0wefxJH1Q2gfGbFV LWrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745113752; x=1745718552; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Gk0TUJMIcvb2/Yt9CvbEI4RZU5fYHN3893YNwk+aijI=; b=c6mnxEnG5+OOf1gOKWTRFpjMk5vEgD/WS+LSTrzApT7p+tVu/r2NGGjt4HFzZ7AoZl vBIphYLcbeIt67i8qxtRXTtHjeGbf2oW7Ker1xy9Te1MN98oWicl5LyW71os08FBipKo zGlWV/oO9z4VxB0d0OnrObeLX84NhZXs8W7LdYfISuhIjYm+YgPu9dJF57fz3pmLPIc7 bq3Av0pWqzdT+fMyVh/siKJlXy3K8reSHWapveLDFn0rEXn6/T16nE40Z14rc7KgAkm3 EQpchhH0dqNRkPWUoirJO3PUGybeaCwtmwxPvpiD+xiwcr6brkdr7BU+HMDWlJH/npl6 6/9Q== X-Forwarded-Encrypted: i=1; AJvYcCV3ComANWUUP6ukGMdibQUq8wwtY7kyU3gSlxaBESp3iYFbiI7/IytonyoIYeMKE5dJekQJB1Qo@vger.kernel.org, AJvYcCWPCZoy0PhO6j8hMDX1Nii5wwypVW/oJHDve5QSg6WgQaT6kM15SRG+H1i5HvL+mIVrtsbfXRepdMMSHRFc@vger.kernel.org, AJvYcCXR1v50/SQm5HXdx02gNlXNSVx0Vfcg+18t8jH1/mCPmgtWbg2VnrBuiyxck0jCbNGnF6Vr85XD+bo=@vger.kernel.org X-Gm-Message-State: AOJu0YzDItOBxUomHGlkadMOtFZPgX5/S1DVJqrJGZ5XDiSqEOlaXE9U rCVBM9NKxNCR6+f6DmpTDH5y1yl+D7j6FDBJgfCCtEHgEmUZO0R7 X-Gm-Gg: ASbGnctf2zchmHDrbuj0lygnfJ91l2w0czJAipe2OL7A9Bt2U+v1xqBDiZgX+gLBXt2 ic2HZWWf9u3wDkygSGrT6to+qQGF9FH68dYo3RSSK2SDA+ayuI/253qU1IBJdORXWol+WXWmyOv kUjmRPWNCP7ULOOt5HJ/ZE0NqG7sUfHmJqtKOMVBqJhP/MU7Y58j6j/hcgmNvzqzmVzYW3NevAZ SijkafLbOo9StjiQktfSQAbxz8W7tzfLxks5fjUpuCMM0ynIVkUZLUBorDxlOfQPDerd+wER5Yn dCuySriqlBW4wc1IZEZ+beQYLwyVRwZZtXDN66fli+MKt3MLUctsDmMSTptaQYgLgHDE51MPMKQ xjKgml1zgMlbvgBsIIwM= X-Google-Smtp-Source: AGHT+IFRsCe5B3DOeaXRGR7WUM1HNURo5facIOltw+5BM63Sm6+YsXazg+DParofxt0X8IJh+8vDZg== X-Received: by 2002:a05:6214:238e:b0:6e4:5317:64a0 with SMTP id 6a1803df08f44-6f2c2716ceemr122000666d6.13.1745113752465; Sat, 19 Apr 2025 18:49:12 -0700 (PDT) Received: from theriatric.mshome.net (c-73-123-232-110.hsd1.ma.comcast.net. [73.123.232.110]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f2c2af1283sm27583846d6.23.2025.04.19.18.49.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Apr 2025 18:49:12 -0700 (PDT) From: Gabriel Shahrouzi To: gregkh@linuxfoundation.org, jic23@kernel.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, Michael.Hennerich@analog.com, sonic.zhang@analog.com, vapier@gentoo.org Cc: gshahrouzi@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev, stable@vger.kernel.org Subject: [PATCH v5 1/5] staging: iio: adc: ad7816: Allow channel 7 for all devices Date: Sat, 19 Apr 2025 21:49:06 -0400 Message-ID: <20250420014910.849934-2-gshahrouzi@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250420014910.849934-1-gshahrouzi@gmail.com> References: <20250420014910.849934-1-gshahrouzi@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" According to the datasheet on page 9 under the channel selection table, all devices (AD7816/7/8) are able to use the channel marked as 7. This channel is used for diagnostic purposes by routing the internal 1.23V bandgap source through the MUX to the input of the ADC. Modify the channel validation logic to permit channel 7 for all supported device types. Fixes: 7924425db04a ("staging: iio: adc: new driver for AD7816 devices") Cc: stable@vger.kernel.org Signed-off-by: Gabriel Shahrouzi --- drivers/staging/iio/adc/ad7816.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7= 816.c index 6c14d7bcdd675..a44b0c8c82b12 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -190,11 +190,11 @@ static ssize_t ad7816_store_channel(struct device *de= v, dev_err(&chip->spi_dev->dev, "Invalid channel id %lu for %s.\n", data, indio_dev->name); return -EINVAL; - } else if (strcmp(indio_dev->name, "ad7818") =3D=3D 0 && data > 1) { + } else if (strcmp(indio_dev->name, "ad7818") =3D=3D 0 && data > 1 && data= !=3D AD7816_CS_MASK) { dev_err(&chip->spi_dev->dev, "Invalid channel id %lu for ad7818.\n", data); return -EINVAL; - } else if (strcmp(indio_dev->name, "ad7816") =3D=3D 0 && data > 0) { + } else if (strcmp(indio_dev->name, "ad7816") =3D=3D 0 && data > 0 && data= !=3D AD7816_CS_MASK) { dev_err(&chip->spi_dev->dev, "Invalid channel id %lu for ad7816.\n", data); return -EINVAL; --=20 2.43.0 From nobody Sun Dec 14 12:17:06 2025 Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.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 9790B70800; Sun, 20 Apr 2025 01:49:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745113756; cv=none; b=Ih5HRImUVSxF74dBBQTCoHqqMkwe0SQ5EQV+AaUOBDTiL4jK8MG3xtkVbePUlEERW4tix+nPQaBO2dg+kSHVmaRhuOIkJQlJ1kg6Iwzo2+t2+t9bGH4w2QkNe176yXPVudJwg8zahqg7imcNkcSnf0jG2a9+HgTVVxuTAq6JdxM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745113756; c=relaxed/simple; bh=ZtWyf+85ZAZuuUdke/D6KK+1edjKVBiOUFx39D2hd6E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JBJqBtBTjxYyxHWOOHf6a+HYT2HQPLSy8P967zo8BBHSyG2dp/hg+lBeMi+ju+KGhsuOxdMHdNNuQl+F8ciyA/CJw/ufpZPhpa/h4w4k+rHsPArB4g4mr8J4esIKMJBUSghoT9nLTIpTK/KZzuF0gykn4lc0zv9oI3nJiI/wlSw= 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=AZ29zrTT; arc=none smtp.client-ip=209.85.219.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="AZ29zrTT" Received: by mail-qv1-f50.google.com with SMTP id 6a1803df08f44-6e8ffa00555so25896156d6.0; Sat, 19 Apr 2025 18:49:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745113753; x=1745718553; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=de216G9QJ9z5gWQFLLYUZKYI5uHds9pgvjd/vVy9J+I=; b=AZ29zrTT2/qqywXteeVaxQvuMQ2zz7VYcFXeerX2M7fA8J2mh8eC6zVWhtaRX3BCEa kxYmYHQOImS6YWZQxQB/1JIhLpTsqyh/biLxNJBcqdcFXR411ti10eBN7EtXhy/St3AW iZ14VV3vNu0HdDetOgIcHuRgy0Ga1SwVNlhSYXrteuDA0EIs8GMYJxyosLJj30KBE7KS JwzGWDFxy3zXWVeRuVlYYKvqCmc6treL27KH9VDWy1R9TdSczuQJbjkmIx2tZAH8IH6D kuvjNlUJWusdsPxgATR+jz7SSuOCg90htgkQvOAjqmB+b/liTuPX7nz9kzu8/mV0q6qE dYwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745113753; x=1745718553; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=de216G9QJ9z5gWQFLLYUZKYI5uHds9pgvjd/vVy9J+I=; b=b9mk26V9Ycg0MdD8sWGQP5oOpQJQDt1axCnBK13HXbmi9ng1zj4lYf0t1TyGICjEex Lg30gBH2k767caSFXUIHDmVwCW/SoSYMK36Hd/+R24d4LDYywIfOddB+cNDPXKdbmYdv wsVdADbnq/N9ZjZ3u95nt/bjwbGxS/WtTPbKlmY/Zm0MQUHe1LmE4dTLtei2j/aA/XR1 0ZOqhiiSqU+c7idlr3mgB/pVVUJxc14j4ZwDPFcSqTzima3/cVYORgwATbUXfdt27gMe hAGd04oQ6Rj5XLuppZBSXKuTHhkYDh53mxQ7yBtQA3M4Zn3lkpxfZt+7d4oZB+7KlH/r UiwA== X-Forwarded-Encrypted: i=1; AJvYcCVFyZOnpS8QVauTf0xnDz69uZbq99KRXr6nj6EoHHeEA21zgrMrI7NJ3zFlZOCJmZq7IodNI5w6u6mIEwQ3@vger.kernel.org, AJvYcCXzmj99PzPQQnN5Gwqaa2IzX+t8yJ/vWoqcmw8U8r5l1jZaybT9mTG9MhJj2q/4bXSTFciqgkPsID0=@vger.kernel.org X-Gm-Message-State: AOJu0YxeETbhDCdFTA736yx41irOp2f7AtGyiJSqcyU6exJUKq/mpbQw szNkkR0lxqaZfuLSGhlASmVFQwv2mrfAE9oYYzTNjGPGmIHAN8aC X-Gm-Gg: ASbGncs6/h0zZhIuDa8yULC6dMqcrTGJSbrI9LbsYSI1NEOO1hIrppoa8EY61uj+rVG 2R1q7UVSG0rG4KUjw+K/2RXFckJV/eZonSZcOhyRPjNGxxKkXG2FW//Wl5PgNcLruMTpbVFpzB/ Dv9MbFNIJn4hwZ0pL8Rj9Nj8EDioTIfGMA/StEaHyxV5KYes6HyIFCxPV/O48O2Wd1JH1rit7vK DYpS1QdpK5JEAAEi+QYigwGRB+PTOCxM/jYLMPV6GomqJcyqNHdO3gro1fx84xh2y/6o2fXxKKc Abv1rnK3t6XsB7RhO2038KISc7YBqRzGasz65HYL7RROEeuePFSfnwPWOcWbm/HkNetnzCAou3I YrrRuSccuboi0pe56Oaw= X-Google-Smtp-Source: AGHT+IH8VO4vXzl0rubJg0RyzomASRe17nj48diM7NE29nTOhklwT9EqFA+/1DRk9ANTDDCdzpLPwg== X-Received: by 2002:ad4:5f8e:0:b0:6e8:9525:2ac3 with SMTP id 6a1803df08f44-6f2c4656a9amr154919086d6.34.1745113753379; Sat, 19 Apr 2025 18:49:13 -0700 (PDT) Received: from theriatric.mshome.net (c-73-123-232-110.hsd1.ma.comcast.net. [73.123.232.110]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f2c2af1283sm27583846d6.23.2025.04.19.18.49.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Apr 2025 18:49:13 -0700 (PDT) From: Gabriel Shahrouzi To: gregkh@linuxfoundation.org, jic23@kernel.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, Michael.Hennerich@analog.com, sonic.zhang@analog.com, vapier@gentoo.org Cc: gshahrouzi@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev Subject: [PATCH v5 2/5] staging: iio: adc: ad7816: Rename state structure Date: Sat, 19 Apr 2025 21:49:07 -0400 Message-ID: <20250420014910.849934-3-gshahrouzi@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250420014910.849934-1-gshahrouzi@gmail.com> References: <20250420014910.849934-1-gshahrouzi@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Rename the main driver state structure from 'ad7816_chip_info' to 'ad7816_state' to avoid confusion with the upcoming structure that will hold static, per-device-type information. This is purely a mechanical rename with no functional changes. Signed-off-by: Gabriel Shahrouzi --- drivers/staging/iio/adc/ad7816.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7= 816.c index a44b0c8c82b12..cad2e55aff3f9 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -38,10 +38,10 @@ #define AD7816_TEMP_FLOAT_MASK 0x3 =20 /* - * struct ad7816_chip_info - chip specific information + * struct ad7816_state - chip specific information */ =20 -struct ad7816_chip_info { +struct ad7816_state { kernel_ulong_t id; struct spi_device *spi_dev; struct gpio_desc *rdwr_pin; @@ -61,7 +61,7 @@ enum ad7816_type { /* * ad7816 data access by SPI */ -static int ad7816_spi_read(struct ad7816_chip_info *chip, u16 *data) +static int ad7816_spi_read(struct ad7816_state *chip, u16 *data) { struct spi_device *spi_dev =3D chip->spi_dev; int ret; @@ -102,7 +102,7 @@ static int ad7816_spi_read(struct ad7816_chip_info *chi= p, u16 *data) return ret; } =20 -static int ad7816_spi_write(struct ad7816_chip_info *chip, u8 data) +static int ad7816_spi_write(struct ad7816_state *chip, u8 data) { struct spi_device *spi_dev =3D chip->spi_dev; int ret; @@ -121,7 +121,7 @@ static ssize_t ad7816_show_mode(struct device *dev, char *buf) { struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); - struct ad7816_chip_info *chip =3D iio_priv(indio_dev); + struct ad7816_state *chip =3D iio_priv(indio_dev); =20 if (chip->mode) return sprintf(buf, "power-save\n"); @@ -134,7 +134,7 @@ static ssize_t ad7816_store_mode(struct device *dev, size_t len) { struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); - struct ad7816_chip_info *chip =3D iio_priv(indio_dev); + struct ad7816_state *chip =3D iio_priv(indio_dev); =20 if (strcmp(buf, "full")) { gpiod_set_value(chip->rdwr_pin, 1); @@ -167,7 +167,7 @@ static ssize_t ad7816_show_channel(struct device *dev, char *buf) { struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); - struct ad7816_chip_info *chip =3D iio_priv(indio_dev); + struct ad7816_state *chip =3D iio_priv(indio_dev); =20 return sprintf(buf, "%d\n", chip->channel_id); } @@ -178,7 +178,7 @@ static ssize_t ad7816_store_channel(struct device *dev, size_t len) { struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); - struct ad7816_chip_info *chip =3D iio_priv(indio_dev); + struct ad7816_state *chip =3D iio_priv(indio_dev); unsigned long data; int ret; =20 @@ -215,7 +215,7 @@ static ssize_t ad7816_show_value(struct device *dev, char *buf) { struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); - struct ad7816_chip_info *chip =3D iio_priv(indio_dev); + struct ad7816_state *chip =3D iio_priv(indio_dev); u16 data; s8 value; int ret; @@ -271,7 +271,7 @@ static ssize_t ad7816_show_oti(struct device *dev, char *buf) { struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); - struct ad7816_chip_info *chip =3D iio_priv(indio_dev); + struct ad7816_state *chip =3D iio_priv(indio_dev); int value; =20 if (chip->channel_id > AD7816_CS_MAX) { @@ -292,7 +292,7 @@ static inline ssize_t ad7816_set_oti(struct device *dev, size_t len) { struct iio_dev *indio_dev =3D dev_to_iio_dev(dev); - struct ad7816_chip_info *chip =3D iio_priv(indio_dev); + struct ad7816_state *chip =3D iio_priv(indio_dev); long value; u8 data; int ret; @@ -351,7 +351,7 @@ static const struct iio_info ad7816_info =3D { =20 static int ad7816_probe(struct spi_device *spi_dev) { - struct ad7816_chip_info *chip; + struct ad7816_state *chip; struct iio_dev *indio_dev; int i, ret; =20 --=20 2.43.0 From nobody Sun Dec 14 12:17:06 2025 Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) (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 69E3213212A; Sun, 20 Apr 2025 01:49:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745113757; cv=none; b=XvQ9tfoTR5NHAFvs5dEU5qATbKvz17hhxh5m9dGwIuYH+ujS8GTqHu3q/qUDs+i7h+qpvyQRZ+nowu2qJf5i95s3TLzEquK3x5adiDiPyL6HBmyd4DNbBSScJdIa/gHrND2/bVg1Y227KbguXHvqCXqYYEdxqYzHxSWcO9nmqfk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745113757; c=relaxed/simple; bh=FS5Q98qLID6FAQ/N12FPnFMlE/nozAWlI7CwtVF5bKM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=btmwMwh3n92dBw/whepZbnS0a8wI/yYuFCGKNCALHYKNknK/G2Kcm4YSHSp60oAw3a3fJk/piDD4v1M7b073MCJI1SFFVWfXgGN8FhGB74Vg25404eHBYzbTegzaYdL2d9hxxBm7iSK6q/tJFIabD5+X2ZCO72stOvs4jSQdZ3E= 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=iL5U+YOt; arc=none smtp.client-ip=209.85.219.44 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="iL5U+YOt" Received: by mail-qv1-f44.google.com with SMTP id 6a1803df08f44-6e8f06e13a4so40321336d6.0; Sat, 19 Apr 2025 18:49:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745113754; x=1745718554; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rd8epHvveGFvAa9vnuKQvCxPWBU3eQ5S8aYIg7aa9r4=; b=iL5U+YOteawkFlWL5esSQHtPq6EPJheZB3YfyhdXdMwWBgprXoG45DuFtlabbkVJ7N ju31cfybFi0D6aRVp1qSzRLnCi7XoiKE+QBPR/5fQE4fBxTx09pt0AmUtvEm9Y7wOAzC suVn2XlJUuWRVz30P7T2EFlGWeN3eh/0HfcQiW06+nJbcD8Bx0k3GWKkUHZkf2qDDZI1 cOcvsytj78Xx09rwm1PYZVur2Qbqx7qYzJG2ONr68WguU+7BUQTXyRm9OG4vp2qwZ874 yt797TO8HQbPjejX7blmEMG2HfkVFlP3eb+c/+z3DM06M/PWC1NXUkPt8ekr4Kj0hyUn pjlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745113754; x=1745718554; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rd8epHvveGFvAa9vnuKQvCxPWBU3eQ5S8aYIg7aa9r4=; b=mMYGFH1w8sGnWiXvO5B/Wbl/Y3ds0HRixtd3g/u2U58Qh1bFHoZZh8o03uxIyR7qFx jhCeyR5r7iQW27/aFPgvGQ74F0vSys6rlZCvV7RRik3RBIamo+n5YVt2RJYYv/PomJsW G83j45/llIpyFMcscemlQjDX9HVKXjZWtXG39Fuk/jM2hGKefbD4vbeARupGDKhvE7T+ g6iqjkVrMfd9w9+e9q7SCX4Vo5pGfupMMcDEg8h0VH4z2ay/M2vzoDHNoxQX43wn9KeP xAWl8nR5ECbMTgYnlyUxXmkiUcmM6MZbKeLkoB9vEBJIH1WbgIhYWz6NKC+MoV6yuNLe bghA== X-Forwarded-Encrypted: i=1; AJvYcCU41EFMtLCZF74Jjq0Zo8DL/m+b8maRrYbYeViExXUnCLNTPjQDcfQmC/oLjiO/vVzNLnd73RBRPDc=@vger.kernel.org, AJvYcCUrKlgSHc1U0BKpTbCIqP2Bcet1nIauvEWx8WHsrMJdPyByxgFTGdxBJ10gnlW2iINFcZNfrOwCTJb849fv@vger.kernel.org X-Gm-Message-State: AOJu0YyUufFx1dY+CcPySvd1K2akKaG9F+7p/FswgFpIcXm0i85NBPFg ySq57OvUJgruFTWKAzn4pxQV90XWqqMIXENEUVAIPK/i1XYbLa6S X-Gm-Gg: ASbGncueVvoaNdfs0/nwn/fOAvTMcuGmYyXxvNjIAM8GzM/WJYQc7JbEh2OyU0rcgmC 4fuBg7yTpiOy+DSF6UROtiCS5ytdQ6enTP5MD0U2iBdjNAz4cNq+4k2rm4AqVeTBiwbrCTAqK0H GHrGRPCWkuqDO4bW5ID0o3/fCb+ZNVfX4aenyLP3y9f3oUxp/fVnmE2MMH+n2h3JNVmwlk019r5 gunzojh4s0bRmvCRsSIZ4YJeFqo4M/C4gYK4kdw4xHyHxHFwKW4pOgh0jwUPv7B5u5D6vujdnjs VCt8ea19vo+v0L8LjffXmnKPAr6kLZLiVOSjlWZx1/LLu6VMmSTFhx6hX5jm5ukbZNJ70Kfin1F TqD+Mb2Atx8al6q16BsqJVw/zgqu48w== X-Google-Smtp-Source: AGHT+IE8QhtT14V2rzTMTBv+XClz9Lo8X3jPZXkIOiI7VIkejQCyQnS53LwCvsx93xyvO0wCQY0mjg== X-Received: by 2002:a05:6214:f06:b0:6e6:9b86:85d0 with SMTP id 6a1803df08f44-6f2c26c9d2emr136152386d6.8.1745113754262; Sat, 19 Apr 2025 18:49:14 -0700 (PDT) Received: from theriatric.mshome.net (c-73-123-232-110.hsd1.ma.comcast.net. [73.123.232.110]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f2c2af1283sm27583846d6.23.2025.04.19.18.49.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Apr 2025 18:49:13 -0700 (PDT) From: Gabriel Shahrouzi To: gregkh@linuxfoundation.org, jic23@kernel.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, Michael.Hennerich@analog.com, sonic.zhang@analog.com, vapier@gentoo.org Cc: gshahrouzi@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev Subject: [PATCH v5 3/5] staging: iio: adc: ad7816: Introduce chip_info and use pointer matching Date: Sat, 19 Apr 2025 21:49:08 -0400 Message-ID: <20250420014910.849934-4-gshahrouzi@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250420014910.849934-1-gshahrouzi@gmail.com> References: <20250420014910.849934-1-gshahrouzi@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Introduce struct ad7816_chip_info to centralize static properties (e.g. name, max channels) that differ between chip variants (AD7816/7/8) but are constant for any specific type. Store pointers to these instances in the of_device_id (.data) and spi_device_id (driver_data) tables. Retrieve the pointer in probe() using the firmware-independent device_get_match_data() and store it in the ad7816_state struct. Signed-off-by: Gabriel Shahrouzi --- drivers/staging/iio/adc/ad7816.c | 55 +++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 18 deletions(-) diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7= 816.c index cad2e55aff3f9..39310ade770d0 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -41,8 +41,28 @@ * struct ad7816_state - chip specific information */ =20 +struct ad7816_chip_info { + const char *name; + u8 max_channels; +}; + +static const struct ad7816_chip_info ad7816_info_ad7816 =3D { + .name =3D "ad7816", + .max_channels =3D 0, +}; + +static const struct ad7816_chip_info ad7817_info_ad7817 =3D { + .name =3D "ad7817", + .max_channels =3D 3, +}; + +static const struct ad7816_chip_info ad7818_info_ad7818 =3D { + .name =3D "ad7818", + .max_channels =3D 1, +}; + struct ad7816_state { - kernel_ulong_t id; + const struct ad7816_chip_info *chip_info; struct spi_device *spi_dev; struct gpio_desc *rdwr_pin; struct gpio_desc *convert_pin; @@ -52,12 +72,6 @@ struct ad7816_state { u8 mode; }; =20 -enum ad7816_type { - ID_AD7816, - ID_AD7817, - ID_AD7818, -}; - /* * ad7816 data access by SPI */ @@ -84,7 +98,7 @@ static int ad7816_spi_read(struct ad7816_state *chip, u16= *data) gpiod_set_value(chip->convert_pin, 1); } =20 - if (chip->id =3D=3D ID_AD7816 || chip->id =3D=3D ID_AD7817) { + if (chip->chip_info =3D=3D &ad7816_info_ad7816 || chip->chip_info =3D=3D = &ad7817_info_ad7817) { while (gpiod_get_value(chip->busy_pin)) cpu_relax(); } @@ -353,6 +367,7 @@ static int ad7816_probe(struct spi_device *spi_dev) { struct ad7816_state *chip; struct iio_dev *indio_dev; + const struct ad7816_chip_info *info; int i, ret; =20 indio_dev =3D devm_iio_device_alloc(&spi_dev->dev, sizeof(*chip)); @@ -362,11 +377,15 @@ static int ad7816_probe(struct spi_device *spi_dev) /* this is only used for device removal purposes */ dev_set_drvdata(&spi_dev->dev, indio_dev); =20 + info =3D device_get_match_data(&spi_dev->dev); + if (!info) + return -ENODEV; + chip->chip_info =3D info; + chip->spi_dev =3D spi_dev; for (i =3D 0; i <=3D AD7816_CS_MAX; i++) chip->oti_data[i] =3D 203; =20 - chip->id =3D spi_get_device_id(spi_dev)->driver_data; chip->rdwr_pin =3D devm_gpiod_get(&spi_dev->dev, "rdwr", GPIOD_OUT_HIGH); if (IS_ERR(chip->rdwr_pin)) { ret =3D PTR_ERR(chip->rdwr_pin); @@ -382,7 +401,7 @@ static int ad7816_probe(struct spi_device *spi_dev) ret); return ret; } - if (chip->id =3D=3D ID_AD7816 || chip->id =3D=3D ID_AD7817) { + if (chip->chip_info =3D=3D &ad7816_info_ad7816 || chip->chip_info =3D=3D = &ad7817_info_ad7817) { chip->busy_pin =3D devm_gpiod_get(&spi_dev->dev, "busy", GPIOD_IN); if (IS_ERR(chip->busy_pin)) { @@ -393,7 +412,7 @@ static int ad7816_probe(struct spi_device *spi_dev) } } =20 - indio_dev->name =3D spi_get_device_id(spi_dev)->name; + indio_dev->name =3D chip->chip_info->name; indio_dev->info =3D &ad7816_info; indio_dev->modes =3D INDIO_DIRECT_MODE; =20 @@ -420,18 +439,18 @@ static int ad7816_probe(struct spi_device *spi_dev) } =20 static const struct of_device_id ad7816_of_match[] =3D { - { .compatible =3D "adi,ad7816", }, - { .compatible =3D "adi,ad7817", }, - { .compatible =3D "adi,ad7818", }, + { .compatible =3D "adi,ad7816", .data =3D &ad7816_info_ad7816 }, + { .compatible =3D "adi,ad7817", .data =3D &ad7817_info_ad7817 }, + { .compatible =3D "adi,ad7818", .data =3D &ad7818_info_ad7818 }, { } }; MODULE_DEVICE_TABLE(of, ad7816_of_match); =20 static const struct spi_device_id ad7816_id[] =3D { - { "ad7816", ID_AD7816 }, - { "ad7817", ID_AD7817 }, - { "ad7818", ID_AD7818 }, - {} + { "ad7816", (kernel_ulong_t)&ad7816_info_ad7816 }, + { "ad7817", (kernel_ulong_t)&ad7817_info_ad7817 }, + { "ad7818", (kernel_ulong_t)&ad7818_info_ad7818 }, + { } }; =20 MODULE_DEVICE_TABLE(spi, ad7816_id); --=20 2.43.0 From nobody Sun Dec 14 12:17:06 2025 Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com [209.85.219.49]) (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 6D184148838; Sun, 20 Apr 2025 01:49:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745113758; cv=none; b=H8VgSpgzUSQylwl05OzOVk4Dnn0yM7eEXcohkrS3cunHe6d4v0xlMZTeXElUMdxYzD0gykTKublL6Wk2dzYfkDg1FgGnAOpn9fqP+VH0oaQ0KFpdkyWpnbT5UP+V0a5s5rEdrl56h4O0A9dJXmFPTzdULpOiTTJx1wuZYC35bJQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745113758; c=relaxed/simple; bh=IeGkgU0YBXtfAvHiWobFFEYEFFchmZKYlSuvetJAaME=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QGcbMRqoX732ecLx6DL2v9eL2Y2Y3ORUZZsGpyI1xLommpZu+CwXoE06L5Z7A5bnK1dgR35Rp7DCfMam0jzwYj6bjIDvjRHEyUHWSMOPzN1R65dNasdHsBdoXHxTIyrFqY6stacg4K30kpzPgLgd/yQvqujH0hOiyjuC9Cel82A= 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=IDmmVT8J; arc=none smtp.client-ip=209.85.219.49 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="IDmmVT8J" Received: by mail-qv1-f49.google.com with SMTP id 6a1803df08f44-6f0ad744811so19435676d6.1; Sat, 19 Apr 2025 18:49:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745113755; x=1745718555; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AWMbB3RCjLtzIka1EeVCBu0jLU/YK5i3+0Q0+aZfr+E=; b=IDmmVT8J97niHusDSiMgIDsZBRNIDsRkxi0+/iQX0T3VyjpI9O+kjA+qf5FYsPDpAQ MUzryj8vVLHNkwz0uH78tH4ZnP2wTEERSTuHxbDbWj7qBq1W6w/5jHwY655QfDUYKMag rg85of/htsocguZAQT+S827jAIDOXXveOo7Z+OEyHu+1AdUNH+nYh3UDAJiLyhn/1nQq Fcjqj+9PIiULVGwNQoKJYsZlXdnaedN8bsVp7PyWqrkMFVe1dO8qLc4zWOOp6690sTtN UtIyCV7Sg2mIrnCKjXcVKq3c8J+pXlpVI5xbJkz7kbGmKidBMeVPO1qh0C0knjbc2VGg ZyQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745113755; x=1745718555; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AWMbB3RCjLtzIka1EeVCBu0jLU/YK5i3+0Q0+aZfr+E=; b=sfHF3SZi3m22+zuSg5qZZtHr0A43OlaUeKAfm9MBskaXfOP7ngBkzpKFrF5rvMijtK dr2efU0I/8+nxdxOWu02mulUQFBbXQHt/wa4izKDVDHLQvwJUy6tLtU+0geoYuHOuCVC E61IFmS+UqQIt1LnNJKHIz114XyenNmwFkCw8o33c3ci/Zf/5rUqhVbJCzaLnshUdAPq UtzdWezzBz9mtHOSHqWHtoT+E6phnu8Q3jFxlQD5Ja9zhiliMoPopYYfkb4eqtEDODdo FpcFZaXMWAGvtDNoEJYL3hcWyrMgYW1/4h4145wmVzFnX4T3ZQ2sH2kK754qBHtSg1Gn 11sQ== X-Forwarded-Encrypted: i=1; AJvYcCUMrfXT5WYUeByjvkkO80xu3tzJNZvxXBWGHitvt7AgB4liGUBcqjjIbyNkslAXKnEVgdEs7wKVmsY=@vger.kernel.org, AJvYcCX8056cdmNMCOHm9cwPSUhomw/+eMHvocNTOb8wce7jZGrJzABeJBWkUAmzzQVfVvYzwAnAkDSLV1hsOrcr@vger.kernel.org X-Gm-Message-State: AOJu0YwAFqOCNWn2nrVLGLtL5iWNffRKIV9OnemgSiCc3jmZ77e6Msmx ulKCiygPZfuhOS7s+xsaWrBdXxeFnmugjb0L4WDEprl66W/cJe1rvV6ClI2I1D4= X-Gm-Gg: ASbGncuM3SSX9GPdTA2lFUk37+m78OH+d1xPIJR00ZxombxxrCOf27ynmSbBrzo0BZ6 1wYXMeNBagOgZi0rebLdBVvehBQmDznBuijMg08DZgIp9eudHizbmclYmw8u0+aGWEzocshd0RX Z5kdwMtfhRga0CHvcFAvXoYVnqkCZxnUgsPnLiXCtLER4ya6vZ3UMkt49RRdoSJ2yfVqlGhkC+I euzMNOtMYDyx5lXsb7X3yWOZb8tbafvdrwOs1HotNjESSwHZpYXD/fJBRtWWKKOYRKdjbmuZOp3 NVBNq0N+3ZbLj7Cs5A1YyGrsJJK6q1GeCNFpRh5xohDWAlt8P3Cv6y13hHumrjQ5Ani8CFM8Dr3 aO6RwGRUQ0QzrNQyRPhZLzkddZvPcaw== X-Google-Smtp-Source: AGHT+IHlRgFSQA5uuSHMeGhsfwbPFm63bB0A1m3Zb5IbIU0lFNk5InMgcrcqFUNR30HKIJT0f2f5IA== X-Received: by 2002:a05:6214:f6a:b0:6e8:f88f:b96b with SMTP id 6a1803df08f44-6f2c450aab7mr123047676d6.9.1745113755276; Sat, 19 Apr 2025 18:49:15 -0700 (PDT) Received: from theriatric.mshome.net (c-73-123-232-110.hsd1.ma.comcast.net. [73.123.232.110]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f2c2af1283sm27583846d6.23.2025.04.19.18.49.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Apr 2025 18:49:15 -0700 (PDT) From: Gabriel Shahrouzi To: gregkh@linuxfoundation.org, jic23@kernel.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, Michael.Hennerich@analog.com, sonic.zhang@analog.com, vapier@gentoo.org Cc: gshahrouzi@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev Subject: [PATCH v5 4/5] staging: iio: adc: ad7816: Use chip_info for device capabilities Date: Sat, 19 Apr 2025 21:49:09 -0400 Message-ID: <20250420014910.849934-5-gshahrouzi@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250420014910.849934-1-gshahrouzi@gmail.com> References: <20250420014910.849934-1-gshahrouzi@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Move device-specific capability information, like the presence of a BUSY pin, into the ad7816_chip_info structure. Signed-off-by: Gabriel Shahrouzi --- drivers/staging/iio/adc/ad7816.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7= 816.c index 39310ade770d0..ab7520a8a3da9 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -44,21 +44,25 @@ struct ad7816_chip_info { const char *name; u8 max_channels; + bool has_busy_pin; }; =20 static const struct ad7816_chip_info ad7816_info_ad7816 =3D { .name =3D "ad7816", .max_channels =3D 0, + .has_busy_pin =3D true, }; =20 static const struct ad7816_chip_info ad7817_info_ad7817 =3D { .name =3D "ad7817", .max_channels =3D 3, + .has_busy_pin =3D true, }; =20 static const struct ad7816_chip_info ad7818_info_ad7818 =3D { .name =3D "ad7818", .max_channels =3D 1, + .has_busy_pin =3D false, }; =20 struct ad7816_state { @@ -98,7 +102,7 @@ static int ad7816_spi_read(struct ad7816_state *chip, u1= 6 *data) gpiod_set_value(chip->convert_pin, 1); } =20 - if (chip->chip_info =3D=3D &ad7816_info_ad7816 || chip->chip_info =3D=3D = &ad7817_info_ad7817) { + if (chip->chip_info->has_busy_pin) { while (gpiod_get_value(chip->busy_pin)) cpu_relax(); } --=20 2.43.0 From nobody Sun Dec 14 12:17:06 2025 Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) (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 5616418A6CF; Sun, 20 Apr 2025 01:49:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745113759; cv=none; b=j30Zd7QW252Mpb3hT4hi6G6JoJlNpRSbmC4b8oCnrsG3eV/dYY3h2IXVw7fjWZNIJ8K/lYltX5obuu0C81zu7QXTYcKQnKa6j6bx4lIwOykQtHdSYJOxjM8/mhZqt/k2k/TCO0HrO9FZEr7CXmyH7G7RVMJVmRNN3e2jUigswTg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745113759; c=relaxed/simple; bh=Ubbbw15hEAZ+J5L1Ub1FKSI3XNWrOXLdqS9DAd1ONgc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rTVEtMJTA+pFIW5Q27UOK1U2wBZGPWXjA4x35MhvTf7ek9FVSra2PKAvp513Y2cscJBriRsXIYXsPnImcTOIkA3dK6xbC2kPI1yCGOBB6QqSNI/F/q4tBJSmRVlM0Zok4JzNQkD8OiCAdJlUiDsxcXoSuFD8hZre+scSKiDiY0I= 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=TNa8RiGS; arc=none smtp.client-ip=209.85.219.44 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="TNa8RiGS" Received: by mail-qv1-f44.google.com with SMTP id 6a1803df08f44-6ecfc7ed0c1so27232986d6.3; Sat, 19 Apr 2025 18:49:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745113756; x=1745718556; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=aXLzgwUjjblsXqDwVt3NWjFIy+rshNgbw5xBdqozz6Y=; b=TNa8RiGSFRbRVeAAaugxFk7kBrc0N08EmNoiHN7QXR+6cwJZr1h1iVHo591EwpSDib SLpjdaz0clqZgRRfSxveu9DPCqyuSERI/jdJo98doDPVwrgSTFOMxeY5g7QMZm2idAMb E886bpJWAMSOg5zGZ1atcw7eIK9AbCOe56n9Wtl+2eAmIisIqQKjbmZJ22bJ4uQdHQbb iBFAv9ziBNlKGiVzcX/EU9N3sgAnY4yEMQwQW8t6HwdGrs32BEWur0LfhdMzVDb4Pvol /0f2ijn4/dpsH+7lhu9Xev34idmKKtmPeqbKxj9fGQ0GvM0yFsh/XN6oAzj0AQkYmRz4 YiXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745113756; x=1745718556; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aXLzgwUjjblsXqDwVt3NWjFIy+rshNgbw5xBdqozz6Y=; b=hOGsnkZC/yZu82eRkbxxzyK4CnrCFqSslCQyOozYp0B4NMEPPNunZ6P59IsGtxq24O FZ6qVNsE3wdhuIh2xe3VNJXiu+9rciytEkN1vgO55Ox/EkpyiukCVML4iUmqEDpPFUyj jpvxJV+Dt7izUAg+O/t8CmHJB1LkH77xdYxkbmzTvvmtw2rA6CWU1yh2l39kq65MpePk Z8P79hJTcI8u3SeokY4C6WJXXRomKbG/JWEuAHH/ED3lSHcR+uNytBNZP+RCC3Asfd2K TQFePXoZ57TESHZep2QtXjd9bZUAIsv4OH/YKeB9sJhD+eGMoCYZ9YNJJyb1ntnzzd3l Ln6w== X-Forwarded-Encrypted: i=1; AJvYcCVv2mi9arTxE4vlImLhYF18HlURnw1YENFJW+3OOVhXORpOVW1uPAuI8Zh0Q1TVfHd2NwM+BVLZA0Mx0J4B@vger.kernel.org, AJvYcCXAAlvFaNlPuGN+TBj3MDwyGG5YXAYB4mhZnbwUKi3epXxJD2U2XFavTe9LDblh+n/UxJA/AJX2RoA=@vger.kernel.org X-Gm-Message-State: AOJu0YxsjiVJAnAHhO47DB1V+ZMKoUku7jCpg0O67qf2Dbfd1ISqulJx Qaeq4/5C/QdxnLP1hAE3SCUYHOeGb/AsbZ1YA/sH9GWJZGIYqzmJ X-Gm-Gg: ASbGncsNBqrZXTrFQLlWF3FnK8YqclUZCgBWihnr7gfW+iCVYqgdVIqZBYUUZYfzhWf c6vLI/o2hSLsklpXZYYDTgSVL8HQcBURLC/9EegjXy16AWgDX345oKXbvFtPgNVdKQbgT5uUtWL e9rGLHMSRD6dgrHuODQSteqMwVxqOUE5qLaIrOMl9dNgahO0MMwpKo7X0cjFngHJxeM6xHJKCIx LJFRui+C15Tq/XA5KfVlcMKFdiAsEjsjMCOEj01bgI/ws8t+V/WJqc+VneO1PJf8JVte1U7fy0F yNctubLR8YwfToHMgLkf0YjykraKypvFO5576IOnC81yTJqKhMHF7A9aNGOD02X+TLw6HHp+uVE +YUBWMxjI2jUdkLb/dAA= X-Google-Smtp-Source: AGHT+IGEhBOvap/DzNCF2EzCoiO8omkKUAI0ZPVhKoS8sRTdzbQhZAp63l+GmWWg2+HI6/bVMrdXEw== X-Received: by 2002:a05:6214:21e2:b0:6e8:98c0:e53d with SMTP id 6a1803df08f44-6f2c46a07dbmr109146956d6.45.1745113756223; Sat, 19 Apr 2025 18:49:16 -0700 (PDT) Received: from theriatric.mshome.net (c-73-123-232-110.hsd1.ma.comcast.net. [73.123.232.110]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f2c2af1283sm27583846d6.23.2025.04.19.18.49.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Apr 2025 18:49:15 -0700 (PDT) From: Gabriel Shahrouzi To: gregkh@linuxfoundation.org, jic23@kernel.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-staging@lists.linux.dev, Michael.Hennerich@analog.com, sonic.zhang@analog.com, vapier@gentoo.org Cc: gshahrouzi@gmail.com, skhan@linuxfoundation.org, linux-kernel-mentees@lists.linux.dev Subject: [PATCH v5 5/5] staging: iio: adc: ad7816: Simplify channel validation using chip_info Date: Sat, 19 Apr 2025 21:49:10 -0400 Message-ID: <20250420014910.849934-6-gshahrouzi@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250420014910.849934-1-gshahrouzi@gmail.com> References: <20250420014910.849934-1-gshahrouzi@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Refactor the channel validation logic within ad7816_store_channel() to leverage the max_channels field previously introduced in the ad7816_chip_info structure. Signed-off-by: Gabriel Shahrouzi --- drivers/staging/iio/adc/ad7816.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7= 816.c index ab7520a8a3da9..7a59cfbcc6e33 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c @@ -204,17 +204,9 @@ static ssize_t ad7816_store_channel(struct device *dev, if (ret) return ret; =20 - if (data > AD7816_CS_MAX && data !=3D AD7816_CS_MASK) { + if (data > chip->chip_info->max_channels && data !=3D AD7816_CS_MASK) { dev_err(&chip->spi_dev->dev, "Invalid channel id %lu for %s.\n", - data, indio_dev->name); - return -EINVAL; - } else if (strcmp(indio_dev->name, "ad7818") =3D=3D 0 && data > 1 && data= !=3D AD7816_CS_MASK) { - dev_err(&chip->spi_dev->dev, - "Invalid channel id %lu for ad7818.\n", data); - return -EINVAL; - } else if (strcmp(indio_dev->name, "ad7816") =3D=3D 0 && data > 0 && data= !=3D AD7816_CS_MASK) { - dev_err(&chip->spi_dev->dev, - "Invalid channel id %lu for ad7816.\n", data); + data, chip->chip_info->name); return -EINVAL; } =20 --=20 2.43.0