From nobody Sun Feb 8 15:37:33 2026 Received: from mail-oi1-f175.google.com (mail-oi1-f175.google.com [209.85.167.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A0FB19408E for ; Tue, 20 Aug 2024 15:58:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724169536; cv=none; b=IBugJevLoY7Kr7heaGRhFMTxo40j6eNuZvh+GvoXWWKP1w/q5zbnwQsVWe8hSrYKKMxzRrf9u57cyTWvPluWDRsC1UJaX8LPijCFJ7Xt+4iQOq3o5xEBWKfxd5uhZrpUAxkF58U5ZTuRPyJVUFLk8aU2HA/93holSDulqHG15Dk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724169536; c=relaxed/simple; bh=T2uW+9PyixgbUtWpXjoj/knW40tAhHFwdFvL2UuJfK4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Be8lY4UVWhG1DNxxrzj3B0U8rrte90DPdywMQZKZ9NkNYqyXpAqDzYH6JvWUtW7Oa6SaKGJHbvlpysFbLvX8u4owvyJeZ2wbpDqFTiLoEHcXgV7bveVnpbP/KVFcOD7Zl/3b1Ti4luyGrS2K9DQwS8Z972j4bnnTX+t6vP/+Dew= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=ael4jJVT; arc=none smtp.client-ip=209.85.167.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="ael4jJVT" Received: by mail-oi1-f175.google.com with SMTP id 5614622812f47-3db1d0fca58so3403567b6e.3 for ; Tue, 20 Aug 2024 08:58:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1724169533; x=1724774333; 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=z8r3jcTfoo6qehw9myoqpknk+mT1kpzg79vaDmFe51U=; b=ael4jJVTaF16e4/5ceLQ78FNbFohPooyWGJzuOU4Uif3PBVlTC+06Ll1qgBSgzn2z/ NeqJq+10Y3UOvKpJmCyAEC693q9hXW6FLKAeG/80fZ18HfBYTQrbgWaNuusdfl0o9QCq KxD6muz3Hl8mpoIV58Pf/bYrKN8GPMQ3O79DD4L5zD0DlGd96EFqGOk1s9dfRHwsfyZZ vlfa06359DqoAaDc6cbN6XwHCR7Ywh8VxG/+vSBLwaLoj1ULtbOX7YaCSwSNEeSZXgtG Gaytuka1eh+FcaXnd4sKpI2vAI19d/c2qJ6sZpfirFt1usC4HgoScw3H/i0QrBqqdmCC 8v2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724169533; x=1724774333; 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=z8r3jcTfoo6qehw9myoqpknk+mT1kpzg79vaDmFe51U=; b=jYO0FaOCOegF1FVLR9vOMcfQ+FzEYI9T+oJ4aFnuek43L4mYOUKtYYBjmYM5JEdOh7 vVrR2VW2c8VaXw8paQZNwpZeV46R4tutF+KA1QD7Xj/B+Kbwf+IpPgJLH+VsG49T3HD3 wDNj70o4jjid1F+HnLPsakJqR/zrZ0QdJNLA/xoPlXtBCss4RAaXTmSbm6YBKne7GzvT wr2LYAYLCTjrUngKHQOPuGA0yaCKKfZe8HcOL+1lRJK5Y87/4ENxESfpCqRMOHrgz5tf BsY/VIqMolvA5rdWiPvFk/cNjTCTMLMWgjeGGLEszYMCadEDUMFu7UDuDPG4vTT4Vucp 1Wdw== X-Forwarded-Encrypted: i=1; AJvYcCVQTRfVoczp3ObTmasoI85+GTer9N6vPR/DbGE5ve5ub9j2yqFIjLsfrL0T5MhXj4hsqQ6LveDcL4WEHyA=@vger.kernel.org X-Gm-Message-State: AOJu0Ywdy8M2GrfZNLwcmkw3hov2RH//uQChG8Y/uIwyIaPQlLxhfm6m mMdPsqYQocSTe3OX9c0RFpwGQFs4v7DqsMjf2WPmMXGQeS0Z5eY+uHIl/mWj7mM= X-Google-Smtp-Source: AGHT+IHY9wEuslBOuA+07pv4kLyKmUKmBvx9lJ6KeF5DAR20Dmo8DuJoCoB0Nvw1kx6Q5jEcJFPEAA== X-Received: by 2002:a05:6808:14c6:b0:3d6:3050:7ce7 with SMTP id 5614622812f47-3dd3af8210fmr16554650b6e.44.1724169533411; Tue, 20 Aug 2024 08:58:53 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3dd33d5a3efsm2872718b6e.17.2024.08.20.08.58.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Aug 2024 08:58:53 -0700 (PDT) From: David Lechner Date: Tue, 20 Aug 2024 10:58:35 -0500 Subject: [PATCH 1/4] iio: adc: ad4695: add 2nd regmap for 16-bit registers 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: <20240820-ad4695-gain-offset-v1-1-c8f6e3b47551@baylibre.com> References: <20240820-ad4695-gain-offset-v1-0-c8f6e3b47551@baylibre.com> In-Reply-To: <20240820-ad4695-gain-offset-v1-0-c8f6e3b47551@baylibre.com> To: Jonathan Cameron Cc: Michael Hennerich , =?utf-8?q?Nuno_S=C3=A1?= , Jonathan Corbet , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, David Lechner X-Mailer: b4 0.14.1 The AD4695 and similar chips have some multibyte registers that have to be read/written in a single operation. So we need to add a 2nd regmap for these registers. These registers are removed from the 8-bit regmap allowable ranges and AD4695_MAX_REG is dropped since it would be ambiguous now. debugfs register access is also updated to automatically use the correct regmap depending on the register address. Signed-off-by: David Lechner --- drivers/iio/adc/ad4695.c | 83 +++++++++++++++++++++++++++++++++++++++-----= ---- 1 file changed, 68 insertions(+), 15 deletions(-) diff --git a/drivers/iio/adc/ad4695.c b/drivers/iio/adc/ad4695.c index b8547914f00f..63d816ad2d1f 100644 --- a/drivers/iio/adc/ad4695.c +++ b/drivers/iio/adc/ad4695.c @@ -34,6 +34,7 @@ /* AD4695 registers */ #define AD4695_REG_SPI_CONFIG_A 0x0000 #define AD4695_REG_SPI_CONFIG_A_SW_RST (BIT(7) | BIT(0)) +#define AD4695_REG_SPI_CONFIG_A_ADDR_DIR BIT(5) #define AD4695_REG_SPI_CONFIG_B 0x0001 #define AD4695_REG_SPI_CONFIG_B_INST_MODE BIT(7) #define AD4695_REG_DEVICE_TYPE 0x0003 @@ -77,7 +78,6 @@ #define AD4695_REG_GAIN_IN(n) (0x00C0 | (2 * (n))) #define AD4695_REG_AS_SLOT(n) (0x0100 | (n)) #define AD4695_REG_AS_SLOT_INX GENMASK(3, 0) -#define AD4695_MAX_REG 0x017F =20 /* Conversion mode commands */ #define AD4695_CMD_EXIT_CNV_MODE 0x0A @@ -121,6 +121,7 @@ struct ad4695_channel_config { struct ad4695_state { struct spi_device *spi; struct regmap *regmap; + struct regmap *regmap16; struct gpio_desc *reset_gpio; /* voltages channels plus temperature and timestamp */ struct iio_chan_spec iio_chan[AD4695_MAX_CHANNELS + 2]; @@ -150,8 +151,10 @@ static const struct regmap_range ad4695_regmap_rd_rang= es[] =3D { regmap_reg_range(AD4695_REG_SPI_CONFIG_C, AD4695_REG_SPI_STATUS), regmap_reg_range(AD4695_REG_STATUS, AD4695_REG_ALERT_STATUS2), regmap_reg_range(AD4695_REG_CLAMP_STATUS, AD4695_REG_CLAMP_STATUS), - regmap_reg_range(AD4695_REG_SETUP, AD4695_REG_TEMP_CTRL), - regmap_reg_range(AD4695_REG_CONFIG_IN(0), AD4695_MAX_REG), + regmap_reg_range(AD4695_REG_SETUP, AD4695_REG_AC_CTRL), + regmap_reg_range(AD4695_REG_GPIO_CTRL, AD4695_REG_TEMP_CTRL), + regmap_reg_range(AD4695_REG_CONFIG_IN(0), AD4695_REG_CONFIG_IN(15)), + regmap_reg_range(AD4695_REG_AS_SLOT(0), AD4695_REG_AS_SLOT(127)), }; =20 static const struct regmap_access_table ad4695_regmap_rd_table =3D { @@ -164,8 +167,10 @@ static const struct regmap_range ad4695_regmap_wr_rang= es[] =3D { regmap_reg_range(AD4695_REG_SCRATCH_PAD, AD4695_REG_SCRATCH_PAD), regmap_reg_range(AD4695_REG_LOOP_MODE, AD4695_REG_LOOP_MODE), regmap_reg_range(AD4695_REG_SPI_CONFIG_C, AD4695_REG_SPI_STATUS), - regmap_reg_range(AD4695_REG_SETUP, AD4695_REG_TEMP_CTRL), - regmap_reg_range(AD4695_REG_CONFIG_IN(0), AD4695_MAX_REG), + regmap_reg_range(AD4695_REG_SETUP, AD4695_REG_AC_CTRL), + regmap_reg_range(AD4695_REG_GPIO_CTRL, AD4695_REG_TEMP_CTRL), + regmap_reg_range(AD4695_REG_CONFIG_IN(0), AD4695_REG_CONFIG_IN(15)), + regmap_reg_range(AD4695_REG_AS_SLOT(0), AD4695_REG_AS_SLOT(127)), }; =20 static const struct regmap_access_table ad4695_regmap_wr_table =3D { @@ -174,15 +179,47 @@ static const struct regmap_access_table ad4695_regmap= _wr_table =3D { }; =20 static const struct regmap_config ad4695_regmap_config =3D { - .name =3D "ad4695", + .name =3D "ad4695-8", .reg_bits =3D 16, .val_bits =3D 8, - .max_register =3D AD4695_MAX_REG, + .max_register =3D AD4695_REG_AS_SLOT(127), .rd_table =3D &ad4695_regmap_rd_table, .wr_table =3D &ad4695_regmap_wr_table, .can_multi_write =3D true, }; =20 +static const struct regmap_range ad4695_regmap16_rd_ranges[] =3D { + regmap_reg_range(AD4695_REG_STD_SEQ_CONFIG, AD4695_REG_STD_SEQ_CONFIG), + regmap_reg_range(AD4695_REG_UPPER_IN(0), AD4695_REG_GAIN_IN(15)), +}; + +static const struct regmap_access_table ad4695_regmap16_rd_table =3D { + .yes_ranges =3D ad4695_regmap16_rd_ranges, + .n_yes_ranges =3D ARRAY_SIZE(ad4695_regmap16_rd_ranges), +}; + +static const struct regmap_range ad4695_regmap16_wr_ranges[] =3D { + regmap_reg_range(AD4695_REG_STD_SEQ_CONFIG, AD4695_REG_STD_SEQ_CONFIG), + regmap_reg_range(AD4695_REG_UPPER_IN(0), AD4695_REG_GAIN_IN(15)), +}; + +static const struct regmap_access_table ad4695_regmap16_wr_table =3D { + .yes_ranges =3D ad4695_regmap16_wr_ranges, + .n_yes_ranges =3D ARRAY_SIZE(ad4695_regmap16_wr_ranges), +}; + +static const struct regmap_config ad4695_regmap16_config =3D { + .name =3D "ad4695-16", + .reg_bits =3D 16, + .reg_stride =3D 2, + .val_bits =3D 16, + .val_format_endian =3D REGMAP_ENDIAN_LITTLE, + .max_register =3D AD4695_REG_GAIN_IN(15), + .rd_table =3D &ad4695_regmap16_rd_table, + .wr_table =3D &ad4695_regmap16_wr_table, + .can_multi_write =3D true, +}; + static const struct iio_chan_spec ad4695_channel_template =3D { .type =3D IIO_VOLTAGE, .indexed =3D 1, @@ -646,13 +683,24 @@ static int ad4695_debugfs_reg_access(struct iio_dev *= indio_dev, struct ad4695_state *st =3D iio_priv(indio_dev); =20 iio_device_claim_direct_scoped(return -EBUSY, indio_dev) { - if (readval) - return regmap_read(st->regmap, reg, readval); - - return regmap_write(st->regmap, reg, writeval); + if (readval) { + if (regmap_check_range_table(st->regmap, reg, + &ad4695_regmap_rd_table)) + return regmap_read(st->regmap, reg, readval); + if (regmap_check_range_table(st->regmap16, reg, + &ad4695_regmap16_rd_table)) + return regmap_read(st->regmap16, reg, readval); + } else { + if (regmap_check_range_table(st->regmap, reg, + &ad4695_regmap_wr_table)) + return regmap_write(st->regmap, reg, writeval); + if (regmap_check_range_table(st->regmap16, reg, + &ad4695_regmap16_wr_table)) + return regmap_write(st->regmap16, reg, writeval); + } } =20 - unreachable(); + return -EINVAL; } =20 static const struct iio_info ad4695_info =3D { @@ -807,6 +855,11 @@ static int ad4695_probe(struct spi_device *spi) return dev_err_probe(dev, PTR_ERR(st->regmap), "Failed to initialize regmap\n"); =20 + st->regmap16 =3D devm_regmap_init_spi(spi, &ad4695_regmap16_config); + if (IS_ERR(st->regmap16)) + return dev_err_probe(dev, PTR_ERR(st->regmap16), + "Failed to initialize regmap16\n"); + ret =3D devm_regulator_bulk_get_enable(dev, ARRAY_SIZE(ad4695_power_supplies), ad4695_power_supplies); @@ -876,9 +929,9 @@ static int ad4695_probe(struct spi_device *spi) msleep(AD4695_T_WAKEUP_SW_MS); } =20 - /* Needed for debugfs since it only access registers 1 byte at a time. */ - ret =3D regmap_set_bits(st->regmap, AD4695_REG_SPI_CONFIG_C, - AD4695_REG_SPI_CONFIG_C_MB_STRICT); + /* Needed for regmap16 to be able to work correctly. */ + ret =3D regmap_set_bits(st->regmap, AD4695_REG_SPI_CONFIG_A, + AD4695_REG_SPI_CONFIG_A_ADDR_DIR); if (ret) return ret; =20 --=20 2.43.0 From nobody Sun Feb 8 15:37:33 2026 Received: from mail-oi1-f182.google.com (mail-oi1-f182.google.com [209.85.167.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 126A11946A7 for ; Tue, 20 Aug 2024 15:58:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724169537; cv=none; b=s0s3c3HFdknnLjW+J0oZbIfpDdWQEyZ9sTil1wGLi26yRF4K2RsfHY4Rq2FocrfGWW2IW86fUI1RK261CpIBaFuH4cSJgeeL7Snp4bgL/SF37H/5BnCWhJiaBCS/OPslQh7JY5Q/dfahV7muDkwRQQTRVIQLVcAp7mLrVQAN5JM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724169537; c=relaxed/simple; bh=oaJmi/ZJxtUimFsdNU5rkHVdgv/yFGZx1cME/QQcQl0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ttr21mHnBuFmq1hbIIww3ObP8dql0GXDrPKK2cnTwkCXM990DVtOXaWB9hqY35+GNN1UPF4VmQaDu38jZFN2XVKwXC7LI+UAXUNuPvGyoyhSWWAxXH/fshCaftK+QkGbyVQaVTxkDZX1fUY8f81x3q9fTN6b+uHBWrv3WyiZOQM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=gDBZaDyx; arc=none smtp.client-ip=209.85.167.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="gDBZaDyx" Received: by mail-oi1-f182.google.com with SMTP id 5614622812f47-3db1d0fca58so3403579b6e.3 for ; Tue, 20 Aug 2024 08:58:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1724169534; x=1724774334; 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=HECI8r7T3u0JJ5Sp0TIQJdhUl6oQitYnZhldhbcQNd4=; b=gDBZaDyx/B8rLKbArX27DDnjyZuPyQlWPxhjVduEZO8pVGLu8xEtkHiF1t6M/USsfA I41M3NoJewibYYsop7nCwS84z56g8DTlwrv04grKTibOorqXIZ/LqRIOJ/rSz3tg/QI2 MfVHTcDn2++E5xHOtv172unTGk2eqgWA1UY1rDGTMQUtwN0OjmUnyd69GGlsvXCO9oZ0 KpTySUBaxlyLq7YtN0k88Sz+i3jxTyF4mgylvG08w/o3RKeFudvHehXXn1SVNap/ywqt 3Yu0HZzB4VkW80M8zdoAtowl6abRiTTttnLcawI1flzrh76lBuC/3Xi3WSHg6GOnJGMB Khig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724169534; x=1724774334; 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=HECI8r7T3u0JJ5Sp0TIQJdhUl6oQitYnZhldhbcQNd4=; b=W/aOd8H598cWarXR6DjetCRCoY7ttt+1qfXFUAtii5NPAlBg/aody7K8xKUj+nheVu 7Cfw+FeB5JN6XUKqJW384HYAg6tHqo7+81OQv6kdsePH5BBzdC7cKF5I9LE3mN0VDuuz EMmByJDMuW5Rmi5wkdkvxufLy0ejJMf3rI5sH5YwKSrEWhudzbA3yy9CZDZREoKnCbnP 6yUMSOSeLru8BYNUH5TZbx73Y/Kxy50kBnauLafvXda1xi9ZVlLxS1MkXctttbu+0p66 giF+KRQ6FNOduDzm2APlSJfHaAzapDp7BpkwnafG+x4hzhq10JmsQ3rRGVIlXOt14da/ jdzQ== X-Forwarded-Encrypted: i=1; AJvYcCVgav8jvYn0sDyOWKzE9pXKKVoR2mDjRXagmWUX2cGASx57tBND6jTMkshSx2NXxRz/7sBUCsbKWarpMzM=@vger.kernel.org X-Gm-Message-State: AOJu0YzZmdN5gYpAfa0ph0hu2pPaYZifAJ4Ixikk8Rq8cSkmtPsEKTVR pxaWXMfbFyop97fcNc5trYS29Q+y6+lWCpjWxM2fLKDPACiCgAVUlIy7RKEjDwg= X-Google-Smtp-Source: AGHT+IHIkAhI9bCg/czmhOwJ00jGYFHqeuQAh3GUl0mP8FSSaKUHPiSl0FgDu1UYYUa+B/YzS+e4WQ== X-Received: by 2002:a05:6808:238f:b0:3dc:1b05:73fd with SMTP id 5614622812f47-3dd3acf921dmr18073312b6e.10.1724169534171; Tue, 20 Aug 2024 08:58:54 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3dd33d5a3efsm2872718b6e.17.2024.08.20.08.58.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Aug 2024 08:58:53 -0700 (PDT) From: David Lechner Date: Tue, 20 Aug 2024 10:58:36 -0500 Subject: [PATCH 2/4] iio: adc: ad4695: implement calibration 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: <20240820-ad4695-gain-offset-v1-2-c8f6e3b47551@baylibre.com> References: <20240820-ad4695-gain-offset-v1-0-c8f6e3b47551@baylibre.com> In-Reply-To: <20240820-ad4695-gain-offset-v1-0-c8f6e3b47551@baylibre.com> To: Jonathan Cameron Cc: Michael Hennerich , =?utf-8?q?Nuno_S=C3=A1?= , Jonathan Corbet , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, David Lechner X-Mailer: b4 0.14.1 The AD4695 has a calibration feature that allows the user to compensate for variations in the analog front end. This implements this feature in the driver using the standard `calibgain` and `calibbias` attributes. Signed-off-by: David Lechner --- drivers/iio/adc/ad4695.c | 159 +++++++++++++++++++++++++++++++++++++++++++= +++- 1 file changed, 157 insertions(+), 2 deletions(-) diff --git a/drivers/iio/adc/ad4695.c b/drivers/iio/adc/ad4695.c index 63d816ad2d1f..181c4146188c 100644 --- a/drivers/iio/adc/ad4695.c +++ b/drivers/iio/adc/ad4695.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -225,7 +226,11 @@ static const struct iio_chan_spec ad4695_channel_templ= ate =3D { .indexed =3D 1, .info_mask_separate =3D BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE) | - BIT(IIO_CHAN_INFO_OFFSET), + BIT(IIO_CHAN_INFO_OFFSET) | + BIT(IIO_CHAN_INFO_CALIBSCALE) | + BIT(IIO_CHAN_INFO_CALIBBIAS), + .info_mask_separate_available =3D BIT(IIO_CHAN_INFO_CALIBSCALE) | + BIT(IIO_CHAN_INFO_CALIBBIAS), .scan_type =3D { .sign =3D 'u', .realbits =3D 16, @@ -619,7 +624,8 @@ static int ad4695_read_raw(struct iio_dev *indio_dev, struct ad4695_state *st =3D iio_priv(indio_dev); struct ad4695_channel_config *cfg =3D &st->channels_cfg[chan->scan_index]; u8 realbits =3D chan->scan_type.realbits; - int ret; + unsigned int reg_val; + int ret, tmp; =20 switch (mask) { case IIO_CHAN_INFO_RAW: @@ -670,6 +676,153 @@ static int ad4695_read_raw(struct iio_dev *indio_dev, default: return -EINVAL; } + case IIO_CHAN_INFO_CALIBSCALE: + switch (chan->type) { + case IIO_VOLTAGE: + iio_device_claim_direct_scoped(return -EBUSY, indio_dev) { + ret =3D regmap_read(st->regmap16, + AD4695_REG_GAIN_IN(chan->scan_index), + ®_val); + if (ret) + return ret; + + *val =3D reg_val; + *val2 =3D 15; + + return IIO_VAL_FRACTIONAL_LOG2; + } + unreachable(); + default: + return -EINVAL; + } + case IIO_CHAN_INFO_CALIBBIAS: + switch (chan->type) { + case IIO_VOLTAGE: + iio_device_claim_direct_scoped(return -EBUSY, indio_dev) { + ret =3D regmap_read(st->regmap16, + AD4695_REG_OFFSET_IN(chan->scan_index), + ®_val); + if (ret) + return ret; + + tmp =3D sign_extend32(reg_val, 15); + + *val =3D tmp / 4; + *val2 =3D abs(tmp) % 4 * MICRO / 4; + + if (tmp < 0 && *val2) { + *val *=3D -1; + *val2 *=3D -1; + } + + return IIO_VAL_INT_PLUS_MICRO; + } + unreachable(); + default: + return -EINVAL; + } + default: + return -EINVAL; + } +} + +static int ad4695_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + struct ad4695_state *st =3D iio_priv(indio_dev); + unsigned int reg_val; + int ret; + + iio_device_claim_direct_scoped(return -EBUSY, indio_dev) { + switch (mask) { + case IIO_CHAN_INFO_CALIBSCALE: + switch (chan->type) { + case IIO_VOLTAGE: + if (val < 0 || val2 < 0) + reg_val =3D 0; + else if (val > 1) + reg_val =3D U16_MAX; + else + reg_val =3D (val * (1 << 16) + + mul_u64_u32_div(val2, 1 << 16, + MICRO)) / 2; + + return regmap_write(st->regmap16, + AD4695_REG_GAIN_IN(chan->scan_index), + reg_val); + default: + return -EINVAL; + } + case IIO_CHAN_INFO_CALIBBIAS: + switch (chan->type) { + case IIO_VOLTAGE: + if (val2 >=3D 0 && val > S16_MAX / 4) + reg_val =3D S16_MAX; + else if ((val2 < 0 ? -val : val) < S16_MIN / 4) + reg_val =3D S16_MIN; + else if (val2 < 0) + reg_val =3D clamp_t(int, + -(val * 4 + -val2 * 4 / MICRO), + S16_MIN, S16_MAX); + else if (val < 0) + reg_val =3D clamp_t(int, + val * 4 - val2 * 4 / MICRO, + S16_MIN, S16_MAX); + else + reg_val =3D clamp_t(int, + val * 4 + val2 * 4 / MICRO, + S16_MIN, S16_MAX); + + return regmap_write(st->regmap16, + AD4695_REG_OFFSET_IN(chan->scan_index), + reg_val); + default: + return -EINVAL; + } + default: + return -EINVAL; + } + } + unreachable(); +} + +static int ad4695_read_avail(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + const int **vals, int *type, int *length, + long mask) +{ + static const int ad4695_calibscale_available[6] =3D { + /* Range of 0 (inclusive) to 2 (exclusive) */ + 0, 15, 1, 15, U16_MAX, 15 + }; + static const int ad4695_calibbias_available[6] =3D { + /* + * Datasheet says FSR/8 which translates to signed/4. The step + * depends on oversampling ratio which is always 1 for now. + */ + S16_MIN / 4, 0, 0, MICRO / 4, S16_MAX / 4, S16_MAX % 4 * MICRO / 4 + }; + + switch (mask) { + case IIO_CHAN_INFO_CALIBSCALE: + switch (chan->type) { + case IIO_VOLTAGE: + *vals =3D ad4695_calibscale_available; + *type =3D IIO_VAL_FRACTIONAL_LOG2; + return IIO_AVAIL_RANGE; + default: + return -EINVAL; + } + case IIO_CHAN_INFO_CALIBBIAS: + switch (chan->type) { + case IIO_VOLTAGE: + *vals =3D ad4695_calibbias_available; + *type =3D IIO_VAL_INT_PLUS_MICRO; + return IIO_AVAIL_RANGE; + default: + return -EINVAL; + } default: return -EINVAL; } @@ -705,6 +858,8 @@ static int ad4695_debugfs_reg_access(struct iio_dev *in= dio_dev, =20 static const struct iio_info ad4695_info =3D { .read_raw =3D &ad4695_read_raw, + .write_raw =3D &ad4695_write_raw, + .read_avail =3D &ad4695_read_avail, .debugfs_reg_access =3D &ad4695_debugfs_reg_access, }; =20 --=20 2.43.0 From nobody Sun Feb 8 15:37:33 2026 Received: from mail-oi1-f169.google.com (mail-oi1-f169.google.com [209.85.167.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D47F5194149 for ; Tue, 20 Aug 2024 15:58:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724169537; cv=none; b=fhPT5hTkBnk+6JsLZtY5M2iTym/UWpllGwAm4aBZF9PJgI5xma2p4Yia457lvHg1VYpb2DoZ1q8SSEe2kjnio/0rUijX5hcLwGD9qS9Wx9uxBIg4ftFXPCpt8gooiiQXbNXbURifGF2ekWiRzWv9QgEir5bP44i9RnUKwQc28EQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724169537; c=relaxed/simple; bh=WGhbcSyIIr/fQOdxh9+s+geW6Hei0Wbkpns6twCPCAg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cLcZRmA3TaDPOFTGUII7MpEJR1AcYLrhuJwnOzFMeI4XGeeRi68hJKyH3ZDZFyOZ63HtfcOxhH0aDzNfe+aafUvxZduwaYrx/WNVQCVOv7tqxtAZny62gphxyE/VfNRjs8d1pta7h9gYlovXAqTlKz9gZ5eHzgs78onkbcGS8jY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=BMMLy95M; arc=none smtp.client-ip=209.85.167.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="BMMLy95M" Received: by mail-oi1-f169.google.com with SMTP id 5614622812f47-3db18842a4dso3401290b6e.0 for ; Tue, 20 Aug 2024 08:58:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1724169535; x=1724774335; 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=qDlT04LNCgm2mSm4ARTKoN0QbMcB1grVRpO0j/iJMDE=; b=BMMLy95M5bEYGtMOHV/WAFw1QuJ9n5cWA0VJs+WPP8WHwRnumLzZdoyFUWr9+CVAsg cDNrEb+z1I0PwQcUFrfRaWCJva7ZcbIwZFgEcfBG2bSwQ9M+TGnFVvNSX9thJ9XnNXAt vErUtaRBRgmbbnNZziJRwt/WTys9x6csmy569bnN0y68H4fJGAzZh9e7qDIrooztkI9e x/dIQ5ferjxZJN7CRdOenygj8MTvTOfHacHTPODQAEk+T4Z5EmM45IgZRD1JX9QEglUv Baa3BP1iyjgK9S76AE1SsIejYcUCwcZ2A/hsd1kIP6yMbJiJjaq/pIS6n6ZjWb6ISNK+ AZNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724169535; x=1724774335; 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=qDlT04LNCgm2mSm4ARTKoN0QbMcB1grVRpO0j/iJMDE=; b=cqur+fVo3fYpg2z1+EP87YgMs/usuqWzYsQEjfJKgz5Bp+QlsPMDkZ80qmpGz9hABh p/x2RkbfXW/uMa8s1YF04gmLGltUlBXYP+on6k3nN1Ttpgbo5fb5sr5SXl/bRqzlNAhQ mGtPlk2gdtabM47HFNjF8YeR57/jFXzxnJRHdA4OUw3eJoGPxPyDrAojUMFzCOlwR/ak SVpdEgbFGXCEsXScHjr/sAjYSoJ+DihZwALEdjJ5lKIeGnlYrnPbwZLSsZ1oQpsLjhx6 pb51iFmZGtoGENEWlbwWH+oEj5ddCPAJLvskvXbRpbsn/0LCb9a1Huwd3CUFpl5fQT2U q5Mg== X-Forwarded-Encrypted: i=1; AJvYcCU5sJWuUpN5Toa6NUVPghBomgeAhPVIuprwvoesLfXkjGBp5MMMw7VJd4e5iwbGW+3PyIpxBHsENYWr70E=@vger.kernel.org X-Gm-Message-State: AOJu0YwBV5Feu2/OIDU/dLF9TiguiTlH/G4MCzcDEHVhBl+tnFZxQ+W0 5D79rfAQ5Llud8pFLFLzMGIPSfJs/lAoHortnAKHrN4jyJfB8kS6kiSbFNaQVXY= X-Google-Smtp-Source: AGHT+IHkutffJWZQ/q5tRdDMPF0l50eePnYWl7D4EWVgBKv1fTppJhXqO9viedy+cV6Oir8LahGePQ== X-Received: by 2002:a05:6808:302a:b0:3db:32c6:a7cb with SMTP id 5614622812f47-3ddb9cbf40dmr1472297b6e.9.1724169534926; Tue, 20 Aug 2024 08:58:54 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3dd33d5a3efsm2872718b6e.17.2024.08.20.08.58.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Aug 2024 08:58:54 -0700 (PDT) From: David Lechner Date: Tue, 20 Aug 2024 10:58:37 -0500 Subject: [PATCH 3/4] doc: iio: ad4695: update for calibration 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: <20240820-ad4695-gain-offset-v1-3-c8f6e3b47551@baylibre.com> References: <20240820-ad4695-gain-offset-v1-0-c8f6e3b47551@baylibre.com> In-Reply-To: <20240820-ad4695-gain-offset-v1-0-c8f6e3b47551@baylibre.com> To: Jonathan Cameron Cc: Michael Hennerich , =?utf-8?q?Nuno_S=C3=A1?= , Jonathan Corbet , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, David Lechner X-Mailer: b4 0.14.1 Calibration support has been added to the ad4695 driver, so update the documentation to reflect this. Signed-off-by: David Lechner --- Documentation/iio/ad4695.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/iio/ad4695.rst b/Documentation/iio/ad4695.rst index 7612596bb6e9..33ed29b7c98a 100644 --- a/Documentation/iio/ad4695.rst +++ b/Documentation/iio/ad4695.rst @@ -143,13 +143,18 @@ present, then the external reference voltage is used = and the internal buffer is disabled. If ``refin-supply`` is present, then the internal buffered refer= ence voltage is used. =20 +Gain/offset calibration +----------------------- + +System calibration is supported using the channel gain and offset register= s via +the ``calibscale`` and ``calibbias`` attributes respectively. + Unimplemented features ---------------------- =20 - Additional wiring modes - Threshold events - Oversampling -- Gain/offset calibration - GPIO support - CRC support =20 --=20 2.43.0 From nobody Sun Feb 8 15:37:33 2026 Received: from mail-oi1-f177.google.com (mail-oi1-f177.google.com [209.85.167.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A1B16196C7B for ; Tue, 20 Aug 2024 15:58:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724169538; cv=none; b=IGesIM5+aGBM5AtUh/2Q12AE8iLRpuPklfY5oLvXpoSHMOS2WrKT/B0Yf3Mi32ZeWbeufyhgXM4sVomN4wtU0cpFPG/dOKrq2yGvNmhDu/NJzMK9QXq9vKwoiLW8JR9Qp2ZT5sI+T/yEe0CvEheohTZiJ9mjiJdhtmn7QfQ8oMQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724169538; c=relaxed/simple; bh=plzPScmSdjLox3OYdz9t2P7i8g4UtSg4NyCpXW7I1m4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tsgZFZM/BCR9UAmA5zEKWK0uOrvId2zuuFi5K8kVg4Ctz+O0/Xnu7s2VPt6Re0B082xEMX618f6J7soFIpKg91qnkl6lhC+ipCsAjRnGD1h3jBVXaWqb2Xu6/hxLy+ye8u9+4/PnaUcP6zVebKg9Q9Ah/ojcUzooBDnq5fbZ/e4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=z3GAUfFB; arc=none smtp.client-ip=209.85.167.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="z3GAUfFB" Received: by mail-oi1-f177.google.com with SMTP id 5614622812f47-3db1bc36bc2so2773124b6e.0 for ; Tue, 20 Aug 2024 08:58:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1724169536; x=1724774336; 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=rfB87M+ajklff9IR1StKsGavCV4e8E2kBLAYS9A+WSE=; b=z3GAUfFBJb9Fr9y5ct6dqH57lQtBem4fP09z9PPB3juPZdXZ3vKuVq1cyArYpChE7s ReuskLcI3i0+xiEqEjiPIS1Ko2dAzc3WQiF+ez993HRqzOWaWrSt1n4C/SGX/tQUSiWQ VaRiIfewuTLRnWMPz+PGz/BBQ1qZisFx+rR6KtDBkyieUxYHH3lhC7xDmzJIhgwBROAa jhxf5R8hmmYm828bakmtbL6OEiuT51mPyUXiF9j9qd7VAbyeLIxmkZrF0WrNzPJWDHNF thM2DBmBwn6F7PPtAJvuHbAydhEzJ+n14yIbyLCj2sjqEyrXr3JovDl7w1p0Le8g4mGw K4zA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724169536; x=1724774336; 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=rfB87M+ajklff9IR1StKsGavCV4e8E2kBLAYS9A+WSE=; b=iHXu+4eQGi6ox+cSE83BLrsbrPJ+bi0not+/ws8H0wQ0rFuf6kr/iLAIpumdRFmyUW FGV/NIF7hwRN7lrQWkhhsAX6uLHo8kjoSL0AAUcC3+j2Is2Tn0ojEGJYrb5wAIqdC6O9 P30omCpPmqaAL6xqFOibQfQKtU5095oyk8oIXNnyIThp0trONSPsy9fCXEzz9Abxykaf XubOCWVVXmtgKLESSObCEWLO+ovq4tz26m+e9nT949HbJbPm7N/9e7Wp4mQvG8dHLe0l rCw1YJ9auJdAQHJxFhWGcqjG8Q3jc7Ai9ECGPOvPEsv6SJaAI6uHP6YmdaxaQleBGVyr v9ZQ== X-Forwarded-Encrypted: i=1; AJvYcCUk4G++OK7dUjOpAN/EYVRmnBAVELh61TMW7rbnlpqMmcikz2wAbZnHjtMCk7h0GtcnzIIppHKUx07cd32i8pucO/E2uh/inSJWHE0S X-Gm-Message-State: AOJu0YxqGjw9W/itQuYW7zITBy5pZ65ILkSM/q9QcBXgG1BzYG8JwUyw PO3W3zFjuTV/Ri9n/BC3Oike8zffCZKrrYHKNd+a3s5sPJwdiphN1T+KXxNgvXw= X-Google-Smtp-Source: AGHT+IEeoSdOkv8tmbc7KwjQ9tuFv/ugArVpvf2FmLeUfmeuA5fXqNWShnl4Dr6Ie3etUsR24flJvw== X-Received: by 2002:a05:6808:15a3:b0:3d9:dbe9:7cee with SMTP id 5614622812f47-3ddb9cbf10emr1211638b6e.14.1724169535714; Tue, 20 Aug 2024 08:58:55 -0700 (PDT) Received: from [127.0.1.1] (ip98-183-112-25.ok.ok.cox.net. [98.183.112.25]) by smtp.gmail.com with ESMTPSA id 5614622812f47-3dd33d5a3efsm2872718b6e.17.2024.08.20.08.58.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Aug 2024 08:58:55 -0700 (PDT) From: David Lechner Date: Tue, 20 Aug 2024 10:58:38 -0500 Subject: [PATCH 4/4] iio: ABI: document ad4695 new attributes 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: <20240820-ad4695-gain-offset-v1-4-c8f6e3b47551@baylibre.com> References: <20240820-ad4695-gain-offset-v1-0-c8f6e3b47551@baylibre.com> In-Reply-To: <20240820-ad4695-gain-offset-v1-0-c8f6e3b47551@baylibre.com> To: Jonathan Cameron Cc: Michael Hennerich , =?utf-8?q?Nuno_S=C3=A1?= , Jonathan Corbet , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, David Lechner X-Mailer: b4 0.14.1 The ad4695 driver now supports calibration using the in_voltageY_calib{scale,bias}[_available] attributes. Only one of these was documented before. This adds rest. Signed-off-by: David Lechner --- Documentation/ABI/testing/sysfs-bus-iio | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/te= sting/sysfs-bus-iio index 345d58535dc9..89943c2d54e8 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio +++ b/Documentation/ABI/testing/sysfs-bus-iio @@ -541,6 +541,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_proximity_ca= libbias What: /sys/bus/iio/devices/iio:deviceX/in_proximity0_calibbias What: /sys/bus/iio/devices/iio:deviceX/in_resistance_calibbias What: /sys/bus/iio/devices/iio:deviceX/in_temp_calibbias +What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_calibbias What: /sys/bus/iio/devices/iio:deviceX/out_currentY_calibbias What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_calibbias KernelVersion: 2.6.35 @@ -556,6 +557,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_accel_calibb= ias_available What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_calibbias_available What: /sys/bus/iio/devices/iio:deviceX/in_temp_calibbias_available What: /sys/bus/iio/devices/iio:deviceX/in_proximity_calibbias_available +What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_calibbias_available What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_calibbias_available KernelVersion: 5.8 Contact: linux-iio@vger.kernel.org @@ -603,6 +605,7 @@ Description: What: /sys/bus/iio/devices/iio:deviceX/in_illuminanceY_calibscale_availab= le What: /sys/bus/iio/devices/iio:deviceX/in_intensityY_calibscale_available What: /sys/bus/iio/devices/iio:deviceX/in_proximityY_calibscale_available +What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_calibscale_available KernelVersion: 4.8 Contact: linux-iio@vger.kernel.org Description: --=20 2.43.0