From patchwork Thu Feb 8 17:24:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13550226 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.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 8211476416; Thu, 8 Feb 2024 17:25:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707413136; cv=none; b=K79HGLyGrk8zaiBhzor9qHakI5sbvU40U/sv3CdvxvJjuq52fIQyREhnPA6dR4VcFYRHmVE85T62jEkukZo4+tawab3Gp2/0VQcbgiRZnx7CA712eQzADZhwzn4OW9TWWFHtoovdMnDRplUMb4fGKJbbhsUbdu0VfyHYk5vKsFg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707413136; c=relaxed/simple; bh=iJLrsjuGugiPI4q+2gS/5BtUzqq25GGNRWez/6JxRjg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=j3XrZTtlxRfjVGieixWh+N5Z+PPX00Lz8uPDJ2XV6951qjYmUOFLQU+3nVHT52flyaLNtOvl5UGeaG5Tfe8ObZWP7/dB8rkTH3ansENOuy8sv9j4J9Jtkq4zdFDfOyVIQKw/dkH9Rj4y9hFVpVD/pGrXsx/Xk4titheEXizTEdE= 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=RSmJgwtN; arc=none smtp.client-ip=209.85.128.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="RSmJgwtN" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-40ef3f351d2so6958625e9.1; Thu, 08 Feb 2024 09:25:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707413133; x=1708017933; 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=Bj7lPYpdTz0WzdqaV4TnPrnHLqxxq6rNre4FSWKwvt4=; b=RSmJgwtNUWy93iwTLEcB+mc/iZMGTKP1RwLf5qZHwxT0W1Y//P1ibUYvS6N0GChZ9I qyTMQX+vnI3STSvkbtS2RM3EXYPiiDWHnTfSTznoTJwmRA4bMc0cyebIgEK2tTzZAwFZ 4TMXaLTcTnBmwekBPtjIo+TEKIscviUCcIWTPK4G4BYjYZdfyXFV0XhF7fpWAKcM4q5c GcW+N3vicf63Fxi0ZkYPZj8Wh/BWcNHEuUG5oTAffuD3eAqM7QkcrYfJgE/+8Y2NiwHA HggHJwRuYLvCMq51x06rNIKTNbCNK5V4Lf7F+gkaeCawtt9vVIMzILrXHd7NPlAKgO7M Tn6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707413133; x=1708017933; 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=Bj7lPYpdTz0WzdqaV4TnPrnHLqxxq6rNre4FSWKwvt4=; b=Y6fY3eNQNCyz7jBsVjcclW7tVTU9ReSgDyDx+IVYpBJpPP/QfeBtI7CLP2lccTGhRp +vxX1zqFg71lrGe+/XJPMVeBvmkHw7tRjvfglm083IFtw7Q//rOqSRleoCtOVENPW/J3 73e1fXa8py/PVCzlXm6olRqj6u21Gs+azWxTp649d80MK2K6QHty2GaK6SBxAev9tusS S0/75V2v+NlcO+UztpHtd9HX6+lSoqIsmFwW6wbygi4q6agi1Fo4tycdRVye/srMKeVd oyE+OazBejObsoSgAJhN2dp9oV5sUnE8Bqaz4WmSBPiqig4ugBK2/WV3raqWWYg+YD60 6ELg== X-Forwarded-Encrypted: i=1; AJvYcCV8pRG+c+5UJYH9oCqjh4kTywv90l2byZPt2yOJtJqzkd2mjGvL2gMLIN0q6K2lk54Je3QwcUt53dNuGPOSgb93bUcSOoEcK4YBMiDerxvM7WBrE2Ue7vTX5b1KIkxtkj5cfKahU1axF0PqDEOBsAOq4t+ub+jq44pRbXvIFrpb+qx+Rw== X-Gm-Message-State: AOJu0Yxg674aAnFvKUKajWL5AFdazHu94JhqVwQjBQ7HKn/PNyierYU/ a2Xkc9d84x+m5aSA8OIr8yHn4yjzKJS6iMkNnWhmj3cJwiQ7ODop X-Google-Smtp-Source: AGHT+IF/01EI+yyl+jqkmrrmzR/zciv2BngE62tHyx0Bq6a/SBKCNdrpzqx9ezgFezAL+97xktG4Wg== X-Received: by 2002:a05:600c:1c13:b0:40f:de25:f9a9 with SMTP id j19-20020a05600c1c1300b0040fde25f9a9mr2871385wms.15.1707413132545; Thu, 08 Feb 2024 09:25:32 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCUf1QzSuv4rdhHqQQ/f+MdgSFcVm3qwpgoaIsn1xyj2/iqw3OWk5JUWTSEpTaKQBuR522cbji1d+mZlrlxjYsRpRUHPzkaThlMQI7ZhYAv0zqq+q9YFJcgL+HlT0NNiykTrF6Yqthz47BYCdzJuFbYyDx0Qw0Z161eFb7kgyPvCbvgclSTGZSdKpouhQF0cJS5ThnSapM4M8ynoTV20PTi7NUceqTVielByHry3Nog+cHMcVVbQB6Ls6EeZyIgCfsjPWCaNdtAR4qY6qbtIaDlrApLHmcCmsH1fQypCHtV8VadXI6nOyGL+R7AGGv8OmhAgOpHUPQ7UAUu6G5fGXD7SbG2jkyHDC/LQMtbW2Nw16MR5AupjXPnXdhJ+pFmNQwGhc289rpsq4pIWmF7hiyPQdA1ta/9GxzgJjO3MKUEsIXrU6p63n4fggNuu0LdkrGEgRMXWvxGkZ58uK6uxtHPz0SSH4Cxv6BwfdgeDjQDNWMOa8UkMfKrPr7jFdVXtMJqDGMiEQcSx9iCYiBPUV86YtEONjhKoh50hi3FlsZ6Gdjcewrl2o0zYzgl2Dg7b Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id w9-20020a05600c474900b004101f27737asm2238214wmo.29.2024.02.08.09.25.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:25:32 -0800 (PST) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Cc: alexandru.tachici@analog.com, alisa.roman@analog.com, alisadariana@gmail.com, conor+dt@kernel.org, devicetree@vger.kernel.org, dlechner@baylibre.com, jic23@kernel.org, krzysztof.kozlowski+dt@linaro.org, krzysztof.kozlowski@linaro.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, michael.hennerich@analog.com, robh+dt@kernel.org, Andy Shevchenko , Nuno Sa Subject: [PATCH v3 1/5] iio: adc: ad7192: Use device api Date: Thu, 8 Feb 2024 19:24:55 +0200 Message-Id: <20240208172459.280189-2-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240208172459.280189-1-alisa.roman@analog.com> References: <20240208172459.280189-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Replace of.h and corresponding functions with preferred device specific functions. Also replace of_device_get_match_data() with spi_get_device_match_data(). Signed-off-by: Alisa-Dariana Roman Reviewed-by: Andy Shevchenko Reviewed-by: Nuno Sa --- drivers/iio/adc/ad7192.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index adc3cbe92d6e..48e0357564af 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -364,19 +363,19 @@ static inline bool ad7192_valid_external_frequency(u32 freq) freq <= AD7192_EXT_FREQ_MHZ_MAX); } -static int ad7192_of_clock_select(struct ad7192_state *st) +static int ad7192_device_clock_select(struct ad7192_state *st) { - struct device_node *np = st->sd.spi->dev.of_node; + struct device *dev = &st->sd.spi->dev; unsigned int clock_sel; clock_sel = AD7192_CLK_INT; /* use internal clock */ if (!st->mclk) { - if (of_property_read_bool(np, "adi,int-clock-output-enable")) + if (device_property_read_bool(dev, "adi,int-clock-output-enable")) clock_sel = AD7192_CLK_INT_CO; } else { - if (of_property_read_bool(np, "adi,clock-xtal")) + if (device_property_read_bool(dev, "adi,clock-xtal")) clock_sel = AD7192_CLK_EXT_MCLK1_2; else clock_sel = AD7192_CLK_EXT_MCLK2; @@ -385,9 +384,10 @@ static int ad7192_of_clock_select(struct ad7192_state *st) return clock_sel; } -static int ad7192_setup(struct iio_dev *indio_dev, struct device_node *np) +static int ad7192_setup(struct iio_dev *indio_dev) { struct ad7192_state *st = iio_priv(indio_dev); + struct device *dev = &st->sd.spi->dev; bool rej60_en, refin2_en; bool buf_en, bipolar, burnout_curr_en; unsigned long long scale_uv; @@ -416,26 +416,26 @@ static int ad7192_setup(struct iio_dev *indio_dev, struct device_node *np) st->conf = FIELD_PREP(AD7192_CONF_GAIN_MASK, 0); - rej60_en = of_property_read_bool(np, "adi,rejection-60-Hz-enable"); + rej60_en = device_property_read_bool(dev, "adi,rejection-60-Hz-enable"); if (rej60_en) st->mode |= AD7192_MODE_REJ60; - refin2_en = of_property_read_bool(np, "adi,refin2-pins-enable"); + refin2_en = device_property_read_bool(dev, "adi,refin2-pins-enable"); if (refin2_en && st->chip_info->chip_id != CHIPID_AD7195) st->conf |= AD7192_CONF_REFSEL; st->conf &= ~AD7192_CONF_CHOP; - buf_en = of_property_read_bool(np, "adi,buffer-enable"); + buf_en = device_property_read_bool(dev, "adi,buffer-enable"); if (buf_en) st->conf |= AD7192_CONF_BUF; - bipolar = of_property_read_bool(np, "bipolar"); + bipolar = device_property_read_bool(dev, "bipolar"); if (!bipolar) st->conf |= AD7192_CONF_UNIPOLAR; - burnout_curr_en = of_property_read_bool(np, - "adi,burnout-currents-enable"); + burnout_curr_en = + device_property_read_bool(dev, "adi,burnout-currents-enable"); if (burnout_curr_en && buf_en) { st->conf |= AD7192_CONF_BURN; } else if (burnout_curr_en) { @@ -1117,9 +1117,7 @@ static int ad7192_probe(struct spi_device *spi) } st->int_vref_mv = ret / 1000; - st->chip_info = of_device_get_match_data(&spi->dev); - if (!st->chip_info) - st->chip_info = (void *)spi_get_device_id(spi)->driver_data; + st->chip_info = spi_get_device_match_data(spi); indio_dev->name = st->chip_info->name; indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->channels = st->chip_info->channels; @@ -1140,7 +1138,7 @@ static int ad7192_probe(struct spi_device *spi) if (IS_ERR(st->mclk)) return PTR_ERR(st->mclk); - st->clock_sel = ad7192_of_clock_select(st); + st->clock_sel = ad7192_device_clock_select(st); if (st->clock_sel == AD7192_CLK_EXT_MCLK1_2 || st->clock_sel == AD7192_CLK_EXT_MCLK2) { @@ -1152,7 +1150,7 @@ static int ad7192_probe(struct spi_device *spi) } } - ret = ad7192_setup(indio_dev, spi->dev.of_node); + ret = ad7192_setup(indio_dev); if (ret) return ret; From patchwork Thu Feb 8 17:24:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13550227 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.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 3C2777BAE3; Thu, 8 Feb 2024 17:25:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707413138; cv=none; b=BtUF+Tm2CPTPBiMJb8TcfqYUOMaY3kH6ura3MLh3xjU5Bjix1sIw9mAT7WBuvvksxaELTy5Bgm8H/1GCl319SYBzs2YkRun6qT06C55uyX2MEFDnkDFzkp5SKRpugCg2VKrYf2o2we9W7yia+/ditfpVb5eVXmUWzsC40Cyqfto= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707413138; c=relaxed/simple; bh=M2tGrQ8zBguuWu0chhjnKP2xU1A7rwPqp1gZTNzV6dc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=alfS9FfXu7ICMkCXvUW5+/S7sz5T0d4b7EwK2H3G5prNTWzbr1Kx8PY86u9wpZt1Sh8KduJJdMlWAzoRqaQSiRXD9mlJ4BR2tJmJlOSjSGmy0Odr6hc8nakG63Y3TKqqezmK6EEia7qaPih29EsdQ5NmmUTWPLA7nI3M1iwZsN4= 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=ElyugyKn; arc=none smtp.client-ip=209.85.128.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="ElyugyKn" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-40fe03cd1caso997805e9.0; Thu, 08 Feb 2024 09:25:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707413135; x=1708017935; 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=K83FXQV1rEavwkJOFpM97Til5o64vlhCwh57IjDM62M=; b=ElyugyKnuOVHqP1tdBkBisOkYbBkXCPnLx0kbAK6Cwog3O+raDZGhUYG6cA/dH0a/x aNsMErNPemW3zX/A3xl0HWgCnl5MeScFlgmu3eSbJqJfS93qOeEI0vm0QLPgiHqIQXbj l7qTuinrz42KDhxkM4L32icRIMicFdtJ5sELKMFNfhlWid+yKU3iDy47dBst6CdZQABC UZUhMlmy5D8jj0ITQbse4q5KqMya0Hs9ASGPs6cmx/TBDPaXyLT9zSoC229CNnT2oJWK xAxl6RvDWnAZFb8fxLm8bZVGYUVQLsupA0c4XdkW2vkQeH4DIhyzE7gJoVqqRqYGvEg4 6Syg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707413135; x=1708017935; 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=K83FXQV1rEavwkJOFpM97Til5o64vlhCwh57IjDM62M=; b=lJ37UItWpqEJU9hjvwQ3tvqnIm7jg8YyTR70C6Ij558ie/q77ScPbGX6BQfdwMhHB4 lox84mb1GVJwvMDn94s0wqoNU/9ZSsrvAk9LhJJUtDFnlF8sTV+FSH5Jp4rm/PbFryOp iSY7tEhU0zOXY2czk7DoeSzYEECQ4USz3JMpjEdjfTOx+Ujo5YRO9D/KmUFgDmkiw9xW MEpZBrV0L+zXe4qvibRLITEQnWU4TdgHtzX6YAC6P1JU5DUtVd3yR9vE6EVQMn19dvRp ZrQA3wE4MCrks9dera53vr1dMdYi5ZZA/Aa+Xx1qjDGKcI5/ParrGKnK44QLRUmYnrcT Nhfw== X-Forwarded-Encrypted: i=1; AJvYcCV471v1u/YcVCxhtsjdxzKtAzRaF4Yqa4jxhiSBsiDXistc/Pza4+SPqxo0kkVxrJ2K7xClRCPJmZxFEqrEGV/c6qlUKwoWBFPt8tnVJzpqS+iSBC2hj22ZNELyOTzRHp5mb6R6z/JLN/WkLALD/8ODadUDf61fJbf2yTHqtU4S7SQ0kg== X-Gm-Message-State: AOJu0YyaQxiL/qK7b2iW9kufe4lHXdieGZuGNFc2c0k6EaYKdGdUDQ9i Z0juKC2ohMU2MYrU0GWGbPOrVONrFQldMyHeMblvmAVeqNRKys0+ X-Google-Smtp-Source: AGHT+IH67U1POXljUXKpNt2O3qjofjkylhL3WYlKbNqgjtx737hdMLnBbAx6vRQ+WUyypuO0dd7OWg== X-Received: by 2002:a05:600c:524a:b0:40f:b5d2:1b16 with SMTP id fc10-20020a05600c524a00b0040fb5d21b16mr7194314wmb.25.1707413135304; Thu, 08 Feb 2024 09:25:35 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCVIgIyrVnDsE9VG+gyKDu+eaGc5ZgJ8X6aAC1pKey7LAjud8VHVNWTMM5o6h0JHYqtIKbkwN+yqK2NKrZ+3QUgWhwlZFvm/20FK1CyIoyiGg5wLaeQm7yKtBsnGu423gcG6NfSTLtCtX9IFqOgsp5L5833uy2xFJnFFWApr52U2P18aNe1FBLlhQeRxoCfpgzVd8aWcuf/bQru8aCyZx1F+CfcmBe6BF4byr0YiBAl+jt7Cup2+kMQO6iakBYNyVJ7p6xeq46Bf4ambecRC2gdmkRxegeKkAVVNRHY+0TQZsAyOeDR/tbr0FrJbC6NXLC5WqtI1cCySh2KhDp8jhOCuE74pVgqmaywWpSIN6+F7KaQDkWJLKETIP7Jsc7N/OlR382tUs6Ci97eEzdoDnFliUADnSAqWt4WtuowDKcnWooy4pYr+SnHPkNjCTCyyUVPtEbTF7V+ojnBGFbjEy2hIej4blZVPBVPIkAyPhA05FoHu5KW9jog= Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id w9-20020a05600c474900b004101f27737asm2238214wmo.29.2024.02.08.09.25.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:25:34 -0800 (PST) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Cc: alexandru.tachici@analog.com, alisa.roman@analog.com, alisadariana@gmail.com, conor+dt@kernel.org, devicetree@vger.kernel.org, dlechner@baylibre.com, jic23@kernel.org, krzysztof.kozlowski+dt@linaro.org, krzysztof.kozlowski@linaro.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, michael.hennerich@analog.com, robh+dt@kernel.org Subject: [PATCH v3 2/5] iio: adc: ad7192: Pass state directly Date: Thu, 8 Feb 2024 19:24:56 +0200 Message-Id: <20240208172459.280189-3-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240208172459.280189-1-alisa.roman@analog.com> References: <20240208172459.280189-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Pass only the ad7192_state structure. There is no need to pass the iio_dev structure. Signed-off-by: Alisa-Dariana Roman --- drivers/iio/adc/ad7192.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index 48e0357564af..5e8043865233 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -384,9 +384,8 @@ static int ad7192_device_clock_select(struct ad7192_state *st) return clock_sel; } -static int ad7192_setup(struct iio_dev *indio_dev) +static int ad7192_setup(struct ad7192_state *st) { - struct ad7192_state *st = iio_priv(indio_dev); struct device *dev = &st->sd.spi->dev; bool rej60_en, refin2_en; bool buf_en, bipolar, burnout_curr_en; @@ -458,7 +457,7 @@ static int ad7192_setup(struct iio_dev *indio_dev) /* Populate available ADC input ranges */ for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) { scale_uv = ((u64)st->int_vref_mv * 100000000) - >> (indio_dev->channels[0].scan_type.realbits - + >> (st->chip_info->channels[0].scan_type.realbits - !FIELD_GET(AD7192_CONF_UNIPOLAR, st->conf)); scale_uv >>= i; @@ -1150,7 +1149,7 @@ static int ad7192_probe(struct spi_device *spi) } } - ret = ad7192_setup(indio_dev); + ret = ad7192_setup(st); if (ret) return ret; From patchwork Thu Feb 8 17:24:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13550228 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.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 604C484A54; Thu, 8 Feb 2024 17:25:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707413141; cv=none; b=CnmVHYrDTdjRwbT4Qh22y0X6Vm4/lUOtgLxPrLROwRAHLq3cMB3OiOK3ObYud+qJVtql9YcPTdwAD/6nKu/qwMrXCDWmoM/reD0JJISgn8E1UX9y3tIiHenMY6gn30v9McaPGAdP5w1aD54iqxF/+Dp+I+sZEwzkGeyrvNys2Yk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707413141; c=relaxed/simple; bh=LzC2ystzC37WxgyPIpv8YIRAxLS51Mexs/EDjs9xPcs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=J/7TB0OktA8bTZs4MZfsU8KtpTL1pSo+tpesWGAjU190saoNYgpoaj1OWbsG6D5leF+tzLUBuntpEXxfHhV/Wg3oMwXy0QQ5msvgUG/ovJMAzpp73RlQ6ndDO8LAmvHqruLGsA8insEm/JTEP7Fezv6de4mdvvOtzqLiTnikUeI= 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=FD+Bo54/; arc=none smtp.client-ip=209.85.128.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="FD+Bo54/" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-4101565d20bso804245e9.2; Thu, 08 Feb 2024 09:25:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707413137; x=1708017937; 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=x3MkseDxVHIJLgIk4pUZBzJPKZ+hhYw5Ai0drdywXUQ=; b=FD+Bo54/QapSvLsMfI8yw0mcDqdQN/bXVszzEvNOA6OqyOR+6+NSLnj0hfsKVt+3sG Ext0PrMtA+jAX1DZuYvgUnicdmOEoTcSurDXuFneHdgCfbq+I96EaH9aG8YBuEa9O2EB CggDqv8Tn0fPAUjr3YpOHodJli9Rwc3zenApiRir9O+JHsqmS6zxfYpUIs6KoCgrgAwq 5zX/klPhx80CaKNWcjNxAQ1hmN/pYPltYJdx6dYhDAAMMMGuVySQlmyijjC0j6HZJjcq xqf6WDRFsVEZxTKDCI9IO4G4Zg/q0rK5eYfGmRBs5CrPuE67N3YwWDe3A6b2Rk41wqV/ P2Pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707413137; x=1708017937; 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=x3MkseDxVHIJLgIk4pUZBzJPKZ+hhYw5Ai0drdywXUQ=; b=YV2v2MAWI+DxzC5H4sUpg0zgkkwRvVgwBaeg7AphjAqU10kLyChtbCXQfpl3hZV5I6 QyPQtgHZTsaFQwB5QdWfPrYbD2sPyigHklfpmYr2vX54DXNwiIg9ZIhY2Jp5FhAusd2W /8nSzTwoZQ6mFPuYzqparaPvScz1zDOTcIZxQOhdZOrSmdeP7iK9rIh+m559ZlO/kgO+ DhdZMLeJJgQfftLTsmghDmhjGftCBW3Osb2oA2zdZ7rlV+PBxbTBpNdwDVW4L32ixtaS SHXTSiqLbifTHJylcsbFiUyldjmwPWvLPk/hhyP3tHAm/T5EZ2C1aCPiftTtxwlVfmHp RKKw== X-Gm-Message-State: AOJu0YyU/6gmQ6x8S76GJ75v2W2aVV28gtHPJdAWCYuYjwikUrhl3Jnm HEGK5AOa6EiZ6n+MaBxlpWd9BN9u9lfDYmnKGWkFrz9X5v5+bvSvuptr/+2q9m4= X-Google-Smtp-Source: AGHT+IGIB7t+vTyZTDRIh+FcR/k1FxK5xZhszwiZuiTr7vb+q8gd/yGAv0Hmu5PnNb5cAJ1lMr9P8g== X-Received: by 2002:a05:600c:1d8f:b0:40f:b680:3e81 with SMTP id p15-20020a05600c1d8f00b0040fb6803e81mr14146wms.4.1707413137527; Thu, 08 Feb 2024 09:25:37 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCWKd5eSclMeOzXke6mhvEM1RINrGyFfWdYT1qAkGVLhd88TVd1dVRZ8+uYmZo/sFW6eAgM/OATsWsSh2kw+0UuJgp+eWbG2+tv2y9mEouMAUILWRINUe5hE9hFYIJlkJg3VMdm8dV3Sk7aRUOySyNniqbqMqWCBY0sHSGEhacyuQbNqjlJJ/EyeF4xqq479pypvZtxGeI7MTBxwXDMPGvaUu6kd9cfIWdsXhk6Vzoo/fcpPqj7KUYsXF1WAZWKSinOFXIznJVOh/d4SNN3eaZF6yEfZqeaLMtY4FOAvFvTOeZfy0LST6RZwjNfJcMQi+emJ4RSVZxCSlp8pJYZ8srkuE7u3WoNQJPoN0S+Hoyx5kvJlIIflpa89fa/Ht50hpQlVVibqaHBtqpPU36tY3mnHLSzjtAFmYyhJZk6tHP874fd1+lUKPQyZ/aCLQEiQ8DezlkoNYps/DeqHRK6qSscbpwwPCkS4mLoJfmLlaqHAGyCtFrbSJd0= Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id w9-20020a05600c474900b004101f27737asm2238214wmo.29.2024.02.08.09.25.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:25:37 -0800 (PST) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Cc: alexandru.tachici@analog.com, alisa.roman@analog.com, alisadariana@gmail.com, conor+dt@kernel.org, devicetree@vger.kernel.org, dlechner@baylibre.com, jic23@kernel.org, krzysztof.kozlowski+dt@linaro.org, krzysztof.kozlowski@linaro.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, michael.hennerich@analog.com, robh+dt@kernel.org Subject: [PATCH v3 3/5] iio: adc: ad7192: Use standard attribute Date: Thu, 8 Feb 2024 19:24:57 +0200 Message-Id: <20240208172459.280189-4-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240208172459.280189-1-alisa.roman@analog.com> References: <20240208172459.280189-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Replace custom attribute filter_low_pass_3db_frequency_available with standard attribute. Store the available values in ad7192_state struct. The function that used to compute those values replaced by ad7192_update_filter_freq_avail(). Function ad7192_show_filter_avail() is no longer needed. Note that the initial available values are hardcoded. Signed-off-by: Alisa-Dariana Roman --- drivers/iio/adc/ad7192.c | 67 ++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 37 deletions(-) diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index 5e8043865233..d8393ac048e7 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -187,6 +187,7 @@ struct ad7192_state { u32 mode; u32 conf; u32 scale_avail[8][2]; + u32 filter_freq_avail[4][2]; u32 oversampling_ratio_avail[4]; u8 gpocon; u8 clock_sel; @@ -470,6 +471,16 @@ static int ad7192_setup(struct ad7192_state *st) st->oversampling_ratio_avail[2] = 8; st->oversampling_ratio_avail[3] = 16; + st->filter_freq_avail[0][0] = 600; + st->filter_freq_avail[1][0] = 800; + st->filter_freq_avail[2][0] = 2300; + st->filter_freq_avail[3][0] = 2720; + + st->filter_freq_avail[0][1] = 1000; + st->filter_freq_avail[1][1] = 1000; + st->filter_freq_avail[2][1] = 1000; + st->filter_freq_avail[3][1] = 1000; + return 0; } @@ -583,48 +594,24 @@ static int ad7192_get_f_adc(struct ad7192_state *st) f_order * FIELD_GET(AD7192_MODE_RATE_MASK, st->mode)); } -static void ad7192_get_available_filter_freq(struct ad7192_state *st, - int *freq) +static void ad7192_update_filter_freq_avail(struct ad7192_state *st) { unsigned int fadc; /* Formulas for filter at page 25 of the datasheet */ fadc = ad7192_compute_f_adc(st, false, true); - freq[0] = DIV_ROUND_CLOSEST(fadc * 240, 1024); + st->filter_freq_avail[0][0] = DIV_ROUND_CLOSEST(fadc * 240, 1024); fadc = ad7192_compute_f_adc(st, true, true); - freq[1] = DIV_ROUND_CLOSEST(fadc * 240, 1024); + st->filter_freq_avail[1][0] = DIV_ROUND_CLOSEST(fadc * 240, 1024); fadc = ad7192_compute_f_adc(st, false, false); - freq[2] = DIV_ROUND_CLOSEST(fadc * 230, 1024); + st->filter_freq_avail[2][0] = DIV_ROUND_CLOSEST(fadc * 230, 1024); fadc = ad7192_compute_f_adc(st, true, false); - freq[3] = DIV_ROUND_CLOSEST(fadc * 272, 1024); + st->filter_freq_avail[3][0] = DIV_ROUND_CLOSEST(fadc * 272, 1024); } -static ssize_t ad7192_show_filter_avail(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct iio_dev *indio_dev = dev_to_iio_dev(dev); - struct ad7192_state *st = iio_priv(indio_dev); - unsigned int freq_avail[4], i; - size_t len = 0; - - ad7192_get_available_filter_freq(st, freq_avail); - - for (i = 0; i < ARRAY_SIZE(freq_avail); i++) - len += sysfs_emit_at(buf, len, "%d.%03d ", freq_avail[i] / 1000, - freq_avail[i] % 1000); - - buf[len - 1] = '\n'; - - return len; -} - -static IIO_DEVICE_ATTR(filter_low_pass_3db_frequency_available, - 0444, ad7192_show_filter_avail, NULL, 0); - static IIO_DEVICE_ATTR(bridge_switch_en, 0644, ad7192_show_bridge_switch, ad7192_set, AD7192_REG_GPOCON); @@ -634,7 +621,6 @@ static IIO_DEVICE_ATTR(ac_excitation_en, 0644, AD7192_REG_CONF); static struct attribute *ad7192_attributes[] = { - &iio_dev_attr_filter_low_pass_3db_frequency_available.dev_attr.attr, &iio_dev_attr_bridge_switch_en.dev_attr.attr, NULL }; @@ -644,7 +630,6 @@ static const struct attribute_group ad7192_attribute_group = { }; static struct attribute *ad7195_attributes[] = { - &iio_dev_attr_filter_low_pass_3db_frequency_available.dev_attr.attr, &iio_dev_attr_bridge_switch_en.dev_attr.attr, &iio_dev_attr_ac_excitation_en.dev_attr.attr, NULL @@ -662,17 +647,15 @@ static unsigned int ad7192_get_temp_scale(bool unipolar) static int ad7192_set_3db_filter_freq(struct ad7192_state *st, int val, int val2) { - int freq_avail[4], i, ret, freq; + int i, ret, freq; unsigned int diff_new, diff_old; int idx = 0; diff_old = U32_MAX; freq = val * 1000 + val2; - ad7192_get_available_filter_freq(st, freq_avail); - - for (i = 0; i < ARRAY_SIZE(freq_avail); i++) { - diff_new = abs(freq - freq_avail[i]); + for (i = 0; i < ARRAY_SIZE(st->filter_freq_avail); i++) { + diff_new = abs(freq - st->filter_freq_avail[i][0]); if (diff_new < diff_old) { diff_old = diff_new; idx = i; @@ -823,6 +806,7 @@ static int ad7192_write_raw(struct iio_dev *indio_dev, st->mode &= ~AD7192_MODE_RATE_MASK; st->mode |= FIELD_PREP(AD7192_MODE_RATE_MASK, div); ad_sd_write_reg(&st->sd, AD7192_REG_MODE, 3, st->mode); + ad7192_update_filter_freq_avail(st); break; case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: ret = ad7192_set_3db_filter_freq(st, val, val2 / 1000); @@ -843,6 +827,7 @@ static int ad7192_write_raw(struct iio_dev *indio_dev, break; } mutex_unlock(&st->lock); + ad7192_update_filter_freq_avail(st); break; default: ret = -EINVAL; @@ -885,6 +870,12 @@ static int ad7192_read_avail(struct iio_dev *indio_dev, /* Values are stored in a 2D matrix */ *length = ARRAY_SIZE(st->scale_avail) * 2; + return IIO_AVAIL_LIST; + case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: + *vals = (int *)st->filter_freq_avail; + *type = IIO_VAL_FRACTIONAL; + *length = ARRAY_SIZE(st->filter_freq_avail) * 2; + return IIO_AVAIL_LIST; case IIO_CHAN_INFO_OVERSAMPLING_RATIO: *vals = (int *)st->oversampling_ratio_avail; @@ -953,7 +944,9 @@ static const struct iio_info ad7195_info = { BIT(IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY) | \ (_mask_all), \ .info_mask_shared_by_type_available = (_mask_type_av), \ - .info_mask_shared_by_all_available = (_mask_all_av), \ + .info_mask_shared_by_all_available = \ + BIT(IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY) | \ + (_mask_all_av), \ .ext_info = (_ext_info), \ .scan_index = (_si), \ .scan_type = { \ From patchwork Thu Feb 8 17:24:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13550229 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (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 7A3C485C60; Thu, 8 Feb 2024 17:25:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707413143; cv=none; b=RazvsoIMCaSCIbmDaVZqWFfLkg+sRMWAjozYVpBO//dNolN/DG22rRJG4pGj/XtyFB5tGObmo024kT4NSzxnvIrFD4/6gjO8x7n+qj4snR9qh2QdMChqhkuiqEPYDMTBJ8LyCrE1tqJD/IG55GII2huRTTckSwO55JGbzUp5QzU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707413143; c=relaxed/simple; bh=6aGSDLm5ssrlEa4pWCOca+PsVqrh0hPliOXwPX68UjM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=mg2M2jfKARnJJujhl7/4b1H/yTlbhxBX+36D+cmGa2HqFUUYsIJ2uB9byhOvwppIw3rzD31PPI3sQAgqwoJVHXw39SnglgE6O3lTghv3MkWb0xgYxnb5pD1AhSib1hUAyNnmsYu0XA1QxNYMapTBbQrBf/aQg1xkDRAQLPyfhUA= 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=KSsMKlff; arc=none smtp.client-ip=209.85.128.42 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="KSsMKlff" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-4102eae7e6aso768225e9.3; Thu, 08 Feb 2024 09:25:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707413140; x=1708017940; 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=SJ1lxhnlR9dTzrQ9UOld5NAHJHnWZ5xZn3HI1aD17qQ=; b=KSsMKlfftHvcWxZcvytLWvtblfgpDHktC0fGk+lTpAoK5QIoHoIhN7OyYDPKrgHdQn NBO37++De1Oyt2GcacoErmlzblGT7j2Nn0ZqhNOkIjhUNBPHA+xUlh1sziZVgrz3kuVD QzHZ+ZyU3b9qCc8h5j5q28FyDG+Ev33DeetrD8KzhwcgPMqggeDhB/LEqoLBYTWe+70Y x3cE7hheZyK2WLoPun/6ViScGT61J1zR1cWc+888LN/9WNcMjwFq/EvKLygoyDxeUUg+ HlgjFrYjLRkbhrjbm9crX4y4CFeO0kRZsLLwl1RahAwhY8Sv3Y9njRrDwi/MmjRdc46F z5JA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707413140; x=1708017940; 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=SJ1lxhnlR9dTzrQ9UOld5NAHJHnWZ5xZn3HI1aD17qQ=; b=FQQ4nTF+lhZXy9M1ZWXswkzUPbopKw1AW0FJR6UiTb5FFfmRVT58DYI/VFEEDtgk6h /qUnyz2UGz9e7983DblubIW0z74uIMo/u8v57aJ6i6Rcmy7N8Z1cTWTBcKF1CIvYf845 HC5OdpBRJypeT1oEtTwkS8YD72jCsyRYuN1puyIX0aQ5YtL7f//wPK8ynAfaE4Yzy+xp IKKq5wLjoBH1EvpGTG3yveyKw/DHsuNAPW1EHEokLYpG5EHkEt3GDdG0h+TbD/cYpOKd Bc+XMoFCKQuvpfuw/9N63exJ9KVNEGE7+q5HJxHiBYn7RIo7D+hSK2DNeS/uh3+MnNw3 HiWw== X-Gm-Message-State: AOJu0YzJ/f1JJMVLe5rZpnyNRbZLq4T4rPAFTEdBgd7kRYyT1afdzSbI RvoypC2/yekBl3VNlRykwf537h6O43wx1fBS61xYM8dgrIp+2Saz X-Google-Smtp-Source: AGHT+IFk4nz94CrdvFzn8K4+4zz441ql4Jl8JcqqJnIvtykguLCKMk7CLgk8UTMvysmGFmVQgJjGDA== X-Received: by 2002:a05:600c:4f88:b0:40f:d1e4:6074 with SMTP id n8-20020a05600c4f8800b0040fd1e46074mr15405wmq.8.1707413139707; Thu, 08 Feb 2024 09:25:39 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCW7cpVkrK9F8RyVIsEWrSPHKNdOY4VngCxSb7JijCHrIDEFGNO+t9JOak/WqTWQKiOnQylgIKaLJtS1mlRyh/YQyTLKISh3O4nEMTPj9L+UQ4BHQuMGUUi6VkqUJVWMCrive/MTPWc14TIDyjOoNPwlxfcFpY/KbBMFhWkiltFHeIx0SY7VxfN5ZZRbds3EzNrQQsCH7i/0GEzV4fLt6Tnl8QQQl/rjMLR5o5lxIIds7gYcAvboTcMpZysOhIKj5hGPWz5SiHTX1HX1t2SVzPUmRCYgBwv47TKWJYDc9XzYn83R1prdqmHlJRzFluZgOH+gnkV1ZwROI5qwXXoVNb3uCkvOwpQdOgZTqGQLuHMc1sCC407ooWz/NxvI+/rjw0I11abwT5PGD4TGtdfnf5/bf/fSNAsfR+L04RRkdPtxvLksuGtyrj8/z+CyOnnM8zpeNkB09oJa2ZRdfyfu6VRWjhhwtErtAm/2EQMv89nH6TuAdCc7pHs= Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id w9-20020a05600c474900b004101f27737asm2238214wmo.29.2024.02.08.09.25.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:25:39 -0800 (PST) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Cc: alexandru.tachici@analog.com, alisa.roman@analog.com, alisadariana@gmail.com, conor+dt@kernel.org, devicetree@vger.kernel.org, dlechner@baylibre.com, jic23@kernel.org, krzysztof.kozlowski+dt@linaro.org, krzysztof.kozlowski@linaro.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, michael.hennerich@analog.com, robh+dt@kernel.org Subject: [PATCH v3 4/5] dt-bindings: iio: adc: ad7192: Add AD7194 support Date: Thu, 8 Feb 2024 19:24:58 +0200 Message-Id: <20240208172459.280189-5-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240208172459.280189-1-alisa.roman@analog.com> References: <20240208172459.280189-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Unlike the other AD719Xs, AD7194 has configurable differential channels. The default configuration for these channels can be changed from the devicetree. Also add an example for AD7194 devicetree. Signed-off-by: Alisa-Dariana Roman --- .../bindings/iio/adc/adi,ad7192.yaml | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml index 16def2985ab4..169bdd1dd0e1 100644 --- a/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml @@ -21,8 +21,15 @@ properties: - adi,ad7190 - adi,ad7192 - adi,ad7193 + - adi,ad7194 - adi,ad7195 + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + reg: maxItems: 1 @@ -96,8 +103,44 @@ required: - spi-cpol - spi-cpha +patternProperties: + "^channel@([0-7a-f])$": + type: object + $ref: adc.yaml + unevaluatedProperties: false + + properties: + reg: + description: The channel index. + minimum: 0 + maximum: 7 + + diff-channels: + description: | + The differential channel pair for Ad7194 configurable channels. The + first channel is the positive input, the second channel is the + negative input. + items: + minimum: 1 + maximum: 16 + + required: + - reg + - diff-channels + allOf: - $ref: /schemas/spi/spi-peripheral-props.yaml# + - if: + properties: + compatible: + enum: + - adi,ad7190 + - adi,ad7192 + - adi,ad7193 + - adi,ad7195 + then: + patternProperties: + "^channel@([0-7a-f])$": false unevaluatedProperties: false @@ -127,3 +170,35 @@ examples: adi,burnout-currents-enable; }; }; + - | + spi { + #address-cells = <1>; + #size-cells = <0>; + + adc@0 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "adi,ad7194"; + reg = <0>; + spi-max-frequency = <1000000>; + spi-cpol; + spi-cpha; + clocks = <&ad7192_mclk>; + clock-names = "mclk"; + interrupts = <25 0x2>; + interrupt-parent = <&gpio>; + dvdd-supply = <&dvdd>; + avdd-supply = <&avdd>; + vref-supply = <&vref>; + + channel@0 { + reg = <0>; + diff-channels = <1 6>; + }; + + channel@1 { + reg = <1>; + diff-channels = <2 5>; + }; + }; + }; From patchwork Thu Feb 8 17:24:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alisa-Dariana Roman X-Patchwork-Id: 13550230 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.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 9014286ACF; Thu, 8 Feb 2024 17:25:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707413146; cv=none; b=qMNcw5Rf6HPzgJWNmDvbyXLWyg3cwFg/tXB/RqwqICj03QV5ESJUFCOkBUshhG4LJAuo9UebzfDm+7YVHegKr2RN8dxkFXL9Ct5eYxyqVV0tBzfdrdJMJxABUtJOFV/FBQLzoVmfiAj77WLM6qIaPqyJyfieZteNsrAet9ppur4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707413146; c=relaxed/simple; bh=1HQw7aGBJQueXsgK8nlu0IkoBW2nbmv0iJsbuP5EPAw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=rcO+AUlfXZuWizG6sBpr8bbrNoxm2+9rf02FGK/BkEavtUxEABT4jegnG1Zxzednp2ss1V97V56c+V75p8fZzvo06EE6FJYGRoWFQBKTCt43Zol23mW0gqvzm6tfNfFUQFiSV7WTW7+R8f8umIBKDDrMLbJsalfglp2bi0PtBSc= 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=fiZbUpof; arc=none smtp.client-ip=209.85.128.54 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="fiZbUpof" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4104ebb050fso808315e9.2; Thu, 08 Feb 2024 09:25:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707413143; x=1708017943; 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=RvcPIhBw0ZkFOGOMebGpiUEgt1YSGQvRZVRF+GXWk7A=; b=fiZbUpofqYNLhg5pfCyucF3GK57BEB6e+a0uDT0tC0tHSwL3cqbBAG8u3lvYBpI8aQ EMT3qDjp8he1b6gxLGMrm/CZNS/QyYChwdnQrw9vSGqmC9ifKOA35u62lmYwSfupJpSl BJt/xgU+r3Dwdh8rR3LyX0InKu3Zh84GQ//6eJtmiaRRU1xPed0NhEIshfdokTbdeKzg xpg50+8rctJjI6awTQ62u+nqzNQ//uBNVhQyXjzrcBr8UZjLoTBVQQ+okvjqXicKmHuc fHMQrLAL6b0KiEpTSrOOevFzLUjmrHzFmwE2xQ7QUAoMPh7zMCmFJdDAiZJaCd5mXRbG cR3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707413143; x=1708017943; 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=RvcPIhBw0ZkFOGOMebGpiUEgt1YSGQvRZVRF+GXWk7A=; b=cJOPAO4kv25xNd8lE/pu1KJo1FCE3bNrxHHLC+v7KKJeF3kFON2jwGQP2jqqeZ1dEB koZmjmVjvBVDpSMHWc8g0SVZYuIFWAJQIYWJFr7JkcgcKM42N9VauxeMlrbjcQy6ycgL LExc9UOV83IEYf75WaH8sOZMKXCveu9M//4Wb+7oOFj++vd4Nj+K9XELuUT0FNKYBbKd onKNN38vo3+y0rkzqzzlVxQsAHnzTu1A4Sdeh3bh72U0MI7wDw9NCbw9W6k1Cp2mr6nB djQyDEsN0uBGqnYcqrdCI3n7NTuE2Fxuay5kA/0WJACVIHlz0NDLpY3qA5MwKi+VN/aO oBvA== X-Forwarded-Encrypted: i=1; AJvYcCVDSLZJe31S1Frs5wshu7t9/O6ezGi2TE7lEhxTU3ixq06lSbOU43elRTH4vm0u4XwZyp6Q276mFM9FS6Fe+RQEAwbxnmj+BHXR8BBFMakvD8qTj0qiNm0eVx50vIH9+xsG2hRT0+AA/g8ct3wILs1TPJjF9eeed2ZSf+ERaY26asXakA== X-Gm-Message-State: AOJu0Yz4NfunG8BEsaEDdtGPbWSszSY+U0AnWoOfj6TA39DWIVr5AQvv WYUMHhvmbHZqrbzmqC/E/3rC6xwRyJNyBFZv/c398DIApelWhUQ5 X-Google-Smtp-Source: AGHT+IF9At71rGC6pYv2iefQSIxVwLKN9azFRD3wnCS2og3xiH5ZWxJuurHMh3wZ3zHZZ1nZWamF6g== X-Received: by 2002:a05:600c:1994:b0:40e:f8a2:4a8e with SMTP id t20-20020a05600c199400b0040ef8a24a8emr12943wmq.15.1707413142561; Thu, 08 Feb 2024 09:25:42 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCUy2Lx9C0JEW11MumnivrJ0/F/oIJy2+qqQ305t5zacf//2NKr2KDDy6hOB5dMNjvjZrppYeWUKhikiaPC+8ywvx3TEkYYl0KcBsQXkGXzwXIUeWlhXNG5BEuq3ZfUSsvNqSY/WdGR0iwKUgIRRK0WVuUSRqU0tK9XNGQxfILrwicQOxZNBQu5st4RCr8BT2gyGqvjG6ub8PB1q+0Oai1CjCTSyBsJsI7YREwg94CVw/rAkV/22dnMty+XSpE3M22Qj5OoBqv+QV5gh9YK7Zgyl0iku15JaCLpOEeSwneitNRelwAQ4Z49vhYzjXj/V7mAUQaIrEXLsSbwspQttHR7dSn263vr2cuXxTrQHu2PEkEUgbwf89TGQ+d1rN9Oro0V1lPT/xsfl9MqBVYbycXQixGgpJciSX70pvtcaVpDd5W4RNS4zyalhTuVVVF3eHinBSvuHUzXAOU9lPQsFJDaXkUUv11WjIj+ALF2N+/ywf2pTsu1pSjxrfU5EOk6Bh4sOzQp31FzF7SAwZQ== Received: from spiri.. ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id w9-20020a05600c474900b004101f27737asm2238214wmo.29.2024.02.08.09.25.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Feb 2024 09:25:42 -0800 (PST) From: Alisa-Dariana Roman X-Google-Original-From: Alisa-Dariana Roman To: Cc: alexandru.tachici@analog.com, alisa.roman@analog.com, alisadariana@gmail.com, conor+dt@kernel.org, devicetree@vger.kernel.org, dlechner@baylibre.com, jic23@kernel.org, krzysztof.kozlowski+dt@linaro.org, krzysztof.kozlowski@linaro.org, lars@metafoo.de, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, michael.hennerich@analog.com, robh+dt@kernel.org, Nuno Sa Subject: [PATCH v3 5/5] iio: adc: ad7192: Add AD7194 support Date: Thu, 8 Feb 2024 19:24:59 +0200 Message-Id: <20240208172459.280189-6-alisa.roman@analog.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240208172459.280189-1-alisa.roman@analog.com> References: <20240208172459.280189-1-alisa.roman@analog.com> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Unlike the other AD719Xs, AD7194 has configurable differential channels. The default configuration for these channels can be changed from the devicetree. The default configuration is hardcoded in order to have a stable number of channels. Also modify config AD7192 description for better scaling. Moved ad7192_chip_info struct definition to allow use of callback function parse_channels(). Signed-off-by: Alisa-Dariana Roman Reviewed-by: Nuno Sa --- drivers/iio/adc/Kconfig | 11 ++- drivers/iio/adc/ad7192.c | 150 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 148 insertions(+), 13 deletions(-) diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index 59ae1d17b50d..8062a4d1cbe7 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -71,12 +71,17 @@ config AD7124 called ad7124. config AD7192 - tristate "Analog Devices AD7190 AD7192 AD7193 AD7195 ADC driver" + tristate "Analog Devices AD7192 and similar ADC driver" depends on SPI select AD_SIGMA_DELTA help - Say yes here to build support for Analog Devices AD7190, - AD7192, AD7193 or AD7195 SPI analog to digital converters (ADC). + Say yes here to build support for Analog Devices SPI analog to digital + converters (ADC): + - AD7190 + - AD7192 + - AD7193 + - AD7194 + - AD7195 If unsure, say N (but it's safe to say "Y"). To compile this driver as a module, choose M here: the diff --git a/drivers/iio/adc/ad7192.c b/drivers/iio/adc/ad7192.c index d8393ac048e7..a3ff60ed6f63 100644 --- a/drivers/iio/adc/ad7192.c +++ b/drivers/iio/adc/ad7192.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* - * AD7190 AD7192 AD7193 AD7195 SPI ADC driver + * AD7192 and similar SPI ADC driver * * Copyright 2011-2015 Analog Devices Inc. */ @@ -125,10 +125,39 @@ #define AD7193_CH_AIN8 0x480 /* AIN7 - AINCOM */ #define AD7193_CH_AINCOM 0x600 /* AINCOM - AINCOM */ +#define AD7194_CH_TEMP 0x100 /* Temp sensor */ +#define AD7194_CH_AIN1 0x400 /* AIN1 - AINCOM */ +#define AD7194_CH_AIN2 0x410 /* AIN2 - AINCOM */ +#define AD7194_CH_AIN3 0x420 /* AIN3 - AINCOM */ +#define AD7194_CH_AIN4 0x430 /* AIN4 - AINCOM */ +#define AD7194_CH_AIN5 0x440 /* AIN5 - AINCOM */ +#define AD7194_CH_AIN6 0x450 /* AIN6 - AINCOM */ +#define AD7194_CH_AIN7 0x460 /* AIN7 - AINCOM */ +#define AD7194_CH_AIN8 0x470 /* AIN8 - AINCOM */ +#define AD7194_CH_AIN9 0x480 /* AIN9 - AINCOM */ +#define AD7194_CH_AIN10 0x490 /* AIN10 - AINCOM */ +#define AD7194_CH_AIN11 0x4A0 /* AIN11 - AINCOM */ +#define AD7194_CH_AIN12 0x4B0 /* AIN12 - AINCOM */ +#define AD7194_CH_AIN13 0x4C0 /* AIN13 - AINCOM */ +#define AD7194_CH_AIN14 0x4D0 /* AIN14 - AINCOM */ +#define AD7194_CH_AIN15 0x4E0 /* AIN15 - AINCOM */ +#define AD7194_CH_AIN16 0x4F0 /* AIN16 - AINCOM */ +#define AD7194_CH_POS_MASK GENMASK(7, 4) +#define AD7194_CH_POS(x) FIELD_PREP(AD7194_CH_POS_MASK, (x)) +#define AD7194_CH_NEG_MASK GENMASK(3, 0) +#define AD7194_CH_NEG(x) FIELD_PREP(AD7194_CH_NEG_MASK, (x)) +#define AD7194_CH_DIFF(pos, neg) \ + (AD7194_CH_POS(pos) | AD7194_CH_NEG(neg)) +#define AD7194_CH_DIFF_START 0 +#define AD7194_CH_DIFF_NR 8 +#define AD7194_CH_AIN_START 1 +#define AD7194_CH_AIN_NR 16 + /* ID Register Bit Designations (AD7192_REG_ID) */ #define CHIPID_AD7190 0x4 #define CHIPID_AD7192 0x0 #define CHIPID_AD7193 0x2 +#define CHIPID_AD7194 0x3 #define CHIPID_AD7195 0x6 #define AD7192_ID_MASK GENMASK(3, 0) @@ -166,17 +195,10 @@ enum { ID_AD7190, ID_AD7192, ID_AD7193, + ID_AD7194, ID_AD7195, }; -struct ad7192_chip_info { - unsigned int chip_id; - const char *name; - const struct iio_chan_spec *channels; - u8 num_channels; - const struct iio_info *info; -}; - struct ad7192_state { const struct ad7192_chip_info *chip_info; struct regulator *avdd; @@ -197,6 +219,15 @@ struct ad7192_state { struct ad_sigma_delta sd; }; +struct ad7192_chip_info { + unsigned int chip_id; + const char *name; + const struct iio_chan_spec *channels; + u8 num_channels; + const struct iio_info *info; + int (*parse_channels)(struct ad7192_state *st); +}; + static const char * const ad7192_syscalib_modes[] = { [AD7192_SYSCALIB_ZERO_SCALE] = "zero_scale", [AD7192_SYSCALIB_FULL_SCALE] = "full_scale", @@ -918,6 +949,15 @@ static const struct iio_info ad7192_info = { .update_scan_mode = ad7192_update_scan_mode, }; +static const struct iio_info ad7194_info = { + .read_raw = ad7192_read_raw, + .write_raw = ad7192_write_raw, + .write_raw_get_fmt = ad7192_write_raw_get_fmt, + .read_avail = ad7192_read_avail, + .validate_trigger = ad_sd_validate_trigger, + .update_scan_mode = ad7192_update_scan_mode, +}; + static const struct iio_info ad7195_info = { .read_raw = ad7192_read_raw, .write_raw = ad7192_write_raw, @@ -1009,6 +1049,80 @@ static const struct iio_chan_spec ad7193_channels[] = { IIO_CHAN_SOFT_TIMESTAMP(14), }; +static struct iio_chan_spec ad7194_channels[] = { + AD7193_DIFF_CHANNEL(0, 1, 2, 0x001), + AD7193_DIFF_CHANNEL(1, 3, 4, 0x023), + AD7193_DIFF_CHANNEL(2, 5, 6, 0x045), + AD7193_DIFF_CHANNEL(3, 7, 8, 0x067), + AD7193_DIFF_CHANNEL(4, 9, 10, 0x089), + AD7193_DIFF_CHANNEL(5, 11, 12, 0x0AB), + AD7193_DIFF_CHANNEL(6, 13, 14, 0x0CD), + AD7193_DIFF_CHANNEL(7, 15, 16, 0x0EF), + AD719x_TEMP_CHANNEL(8, AD7194_CH_TEMP), + AD7193_CHANNEL(9, 1, AD7194_CH_AIN1), + AD7193_CHANNEL(10, 2, AD7194_CH_AIN2), + AD7193_CHANNEL(11, 3, AD7194_CH_AIN3), + AD7193_CHANNEL(12, 4, AD7194_CH_AIN4), + AD7193_CHANNEL(13, 5, AD7194_CH_AIN5), + AD7193_CHANNEL(14, 6, AD7194_CH_AIN6), + AD7193_CHANNEL(15, 7, AD7194_CH_AIN7), + AD7193_CHANNEL(16, 8, AD7194_CH_AIN8), + AD7193_CHANNEL(17, 9, AD7194_CH_AIN9), + AD7193_CHANNEL(18, 10, AD7194_CH_AIN10), + AD7193_CHANNEL(19, 11, AD7194_CH_AIN11), + AD7193_CHANNEL(20, 12, AD7194_CH_AIN12), + AD7193_CHANNEL(21, 13, AD7194_CH_AIN13), + AD7193_CHANNEL(22, 14, AD7194_CH_AIN14), + AD7193_CHANNEL(23, 15, AD7194_CH_AIN15), + AD7193_CHANNEL(24, 16, AD7194_CH_AIN16), + IIO_CHAN_SOFT_TIMESTAMP(25), +}; + +static int ad7192_parse_channel(struct fwnode_handle *child) +{ + u32 reg, ain[2]; + int ret; + + ret = fwnode_property_read_u32(child, "reg", ®); + if (ret) + return ret; + + if (!in_range(reg, AD7194_CH_DIFF_START, AD7194_CH_DIFF_NR)) + return -EINVAL; + + ret = fwnode_property_read_u32_array(child, "diff-channels", ain, + ARRAY_SIZE(ain)); + if (ret) + return ret; + + if (!in_range(ain[0], AD7194_CH_AIN_START, AD7194_CH_AIN_NR) || + !in_range(ain[1], AD7194_CH_AIN_START, AD7194_CH_AIN_NR)) + return -EINVAL; + + ad7194_channels[reg].channel = ain[0]; + ad7194_channels[reg].channel2 = ain[1]; + ad7194_channels[reg].address = AD7194_CH_DIFF(ain[0], ain[1]); + + return 0; +} + +static int ad7192_parse_channels(struct ad7192_state *st) +{ + struct device *dev = &st->sd.spi->dev; + struct fwnode_handle *child; + int ret; + + device_for_each_child_node(dev, child) { + ret = ad7192_parse_channel(child); + if (ret) { + fwnode_handle_put(child); + return ret; + } + } + + return 0; +} + static const struct ad7192_chip_info ad7192_chip_info_tbl[] = { [ID_AD7190] = { .chip_id = CHIPID_AD7190, @@ -1031,6 +1145,14 @@ static const struct ad7192_chip_info ad7192_chip_info_tbl[] = { .num_channels = ARRAY_SIZE(ad7193_channels), .info = &ad7192_info, }, + [ID_AD7194] = { + .chip_id = CHIPID_AD7194, + .name = "ad7194", + .channels = ad7194_channels, + .num_channels = ARRAY_SIZE(ad7194_channels), + .info = &ad7194_info, + .parse_channels = ad7192_parse_channels, + }, [ID_AD7195] = { .chip_id = CHIPID_AD7195, .name = "ad7195", @@ -1142,6 +1264,12 @@ static int ad7192_probe(struct spi_device *spi) } } + if (st->chip_info->parse_channels) { + ret = st->chip_info->parse_channels(st); + if (ret) + return ret; + } + ret = ad7192_setup(st); if (ret) return ret; @@ -1153,6 +1281,7 @@ static const struct of_device_id ad7192_of_match[] = { { .compatible = "adi,ad7190", .data = &ad7192_chip_info_tbl[ID_AD7190] }, { .compatible = "adi,ad7192", .data = &ad7192_chip_info_tbl[ID_AD7192] }, { .compatible = "adi,ad7193", .data = &ad7192_chip_info_tbl[ID_AD7193] }, + { .compatible = "adi,ad7194", .data = &ad7192_chip_info_tbl[ID_AD7194] }, { .compatible = "adi,ad7195", .data = &ad7192_chip_info_tbl[ID_AD7195] }, {} }; @@ -1162,6 +1291,7 @@ static const struct spi_device_id ad7192_ids[] = { { "ad7190", (kernel_ulong_t)&ad7192_chip_info_tbl[ID_AD7190] }, { "ad7192", (kernel_ulong_t)&ad7192_chip_info_tbl[ID_AD7192] }, { "ad7193", (kernel_ulong_t)&ad7192_chip_info_tbl[ID_AD7193] }, + { "ad7194", (kernel_ulong_t)&ad7192_chip_info_tbl[ID_AD7194] }, { "ad7195", (kernel_ulong_t)&ad7192_chip_info_tbl[ID_AD7195] }, {} }; @@ -1178,6 +1308,6 @@ static struct spi_driver ad7192_driver = { module_spi_driver(ad7192_driver); MODULE_AUTHOR("Michael Hennerich "); -MODULE_DESCRIPTION("Analog Devices AD7190, AD7192, AD7193, AD7195 ADC"); +MODULE_DESCRIPTION("Analog Devices AD7192 and similar ADC"); MODULE_LICENSE("GPL v2"); MODULE_IMPORT_NS(IIO_AD_SIGMA_DELTA);