From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.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 45A4C31B836 for ; Tue, 2 Dec 2025 13:46:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764683218; cv=none; b=VtH0au+OI4lZHd+ZFr4e/F+1tPMMZ8oOZOAeg2d33185UmHUCdR4tZ7oq0x+e8icJhasgTYYeRd05/hHSYiDGVkqkoogjxpFTJxeNWh6St2or0XHcJ8TOht6FTQtgoRAYlmFMVyeEBRL6uHU4Pg6Ouy2SmN4W0JMbCeGN+fi9uM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764683218; c=relaxed/simple; bh=Ar8AemtrD+ULZNSWdzjLU9Qx5WlzNp3CdU/hDfLhZX4=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=JFRnlNXJ5gALYyPLOnwO8+FoFd7oC75HoO2aHDcVSPT6Df/Yge8OfHwqVeDlXCD8mWSGW5mwk9lPXdNg8g4uTQy4bx2LXxRaB0kUnMGemwO1eh44GndA/t9vyj/2Fqaq5AtqDY7g9/g64FznulWkhNDqClgqyfwEjJkEXq9TNwM= 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=PYSWuf2x; arc=none smtp.client-ip=209.85.221.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="PYSWuf2x" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-42e2e50c233so1272310f8f.3 for ; Tue, 02 Dec 2025 05:46:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764683214; x=1765288014; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=yMUu4bYlRumQfTx0Vp9g1/ddN8WmtuPuYyu0b0KpVXc=; b=PYSWuf2xlv2ISpQp41bDeRe/FEquau9fNDn4oZyKb3zGGwoY7FonghIaf5iCiPn3Ci UOSY6ZcbxOUJ8TCHu8BEITMoAR6QtwZXTuPAxPZ0dhfgcKJFxxTljuuoIjUuJvnf2WwK ybVx9hewVd0ZwX1s2Tfx9bTeAP/XmUoMOg1NJhogLetwyabkwORVBtx7E0q9w8aSSe5Y 9HkqqQd379mkNk1PVILH6zMsFpg3EsoKQBqu/MRtt/i0q5wPvjdmSthJ61LmuGo1TRsg ElHvlS/PPL6J3/eV51GDjUZdH4kYzGp7QXLNpKX/GpV5Ri7yF8RkTd3YPgCfR5Lo7hIr fLWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764683214; x=1765288014; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yMUu4bYlRumQfTx0Vp9g1/ddN8WmtuPuYyu0b0KpVXc=; b=gejZ7p9zC0A917gsP/3qUNMlkM1rbB5IzB7KpJYR5XUHSFCUCOnmR6Li5CXwVrIf1W FXkuxWUSwdJZpqF+76TNrpE6xC+sFApRoYjDqmvy+gtFewf1SiLcHONVFMpYW1Pglg9j Ater6x8NcddoN4/aLVFB1/Dt2Xlby+9o/VayDw9gQop1a+Q6Os0CyLp0aD7UYwEJO652 ukjrJ4d/aug8JqnMtc0fjhxH4yMtEl+C55CcWtmm/0C4I7G6laPRIBmqZXK6c//pk1CS mQ4+aQs3Bx6TzzifRmBh23/JlPeLyMnRvtfwiwYxQcubvoABie7aRWK3NZrizkGvq7dS FuWw== X-Forwarded-Encrypted: i=1; AJvYcCXG1DRFIPu/gD+KOcTZXKDxQKwFrtXkA4/CkECyXaZp+K5+koPfILfHHm8PTi016Jol47snCY80ABRxoiA=@vger.kernel.org X-Gm-Message-State: AOJu0Yy5BcL/qm1swDerjCyvuhsRSYLHHTLOKiRlFvNJdhv3u4EX0vDg K3AqVPJYH85Qbygl+X5jo+/T9kW9ESN2qaViLbQaZAj7kA3AqXRLIQTY X-Gm-Gg: ASbGncssipf2SMwKdOf0nV/Q2PIaiz4cVYzZodwt4opZvqro1IyLEOecO+ODiHR7FJb 1OqmlkfaUXNbu2EwBgabwqq/qKCF2pGn3DldIVnsJlXEJUv6oaZ/ZDlIAD9pApDuR8E3cop/X4b VBRkGQLx/0EReN/zXaH1J87UxUXez8Y9EztU6TLhVDDV2x9n87YrukhDwx7jip1mO99LD+E5+Qx 1/xwJNwvCOtnS/TM1M1asAaSiu/PuyJJZtg2b1uGQDQq6PpTi1dJb6sSKpPVBIVDIClAaH+r5Ge fr3qWnEygsjKgCULKvGPYiMgyAXafQOlwsqMovvMmtFXNGL9W5moPXistXk3sKMrh4DTtj/PBQ1 Bmk8iTwS9bRc4+N6gs4SdV+vKr3fb0Wcw59E22TNyA5EOfjfskYHJdV0GYcdBaO0uERlBlUcgFO x7Cljlg3IBmyC2mfDAfjU= X-Google-Smtp-Source: AGHT+IFgFZbB9vrelpDOhaxjd/YQx/3FjpJBwUNPcJgYR+lDOaHRzG6nA4JYIOtZdCY0YDko00dYbg== X-Received: by 2002:a05:6000:1885:b0:42b:394a:9de with SMTP id ffacd0b85a97d-42cc1d1a10cmr44241554f8f.49.1764683213794; Tue, 02 Dec 2025 05:46:53 -0800 (PST) Received: from [192.168.1.187] ([161.230.67.253]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42e1ca1a303sm34754386f8f.27.2025.12.02.05.46.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Dec 2025 05:46:53 -0800 (PST) Message-ID: <5d343af235c499382bd2eac987357e857865b457.camel@gmail.com> Subject: Re: [PATCH v2 2/2] iio: adc: ad9467: support write/read offset From: Nuno =?ISO-8859-1?Q?S=E1?= To: Tomas Melin , Lars-Peter Clausen , Michael Hennerich , Nuno Sa , Jonathan Cameron , David Lechner , Andy Shevchenko , Alexandru Ardelean Cc: Jonathan Cameron , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Date: Tue, 02 Dec 2025 13:47:33 +0000 In-Reply-To: <20251202-ad9434-fixes-v2-2-fa73d4eabbea@vaisala.com> References: <20251202-ad9434-fixes-v2-0-fa73d4eabbea@vaisala.com> <20251202-ad9434-fixes-v2-2-fa73d4eabbea@vaisala.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.58.2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 On Tue, 2025-12-02 at 12:53 +0000, Tomas Melin wrote: > Support configuring output calibration value. Among the devices > currently supported by this driver, this setting is specific to > ad9434. The offset can be used to calibrate the output against > a known input. The register is called offset, but the procedure > is best mapped internally with calibbias operation. >=20 > Signed-off-by: Tomas Melin > --- > =C2=A0drivers/iio/adc/ad9467.c | 60 +++++++++++++++++++++++++++++++++++++= ++++++++++- > =C2=A01 file changed, 59 insertions(+), 1 deletion(-) >=20 > diff --git a/drivers/iio/adc/ad9467.c b/drivers/iio/adc/ad9467.c > index 2d8f8da3671dac61994a1864a82cdbef7f54c1af..c3cf7ae977d4279ce5e80a7c9= 56c3844483eb8bd 100644 > --- a/drivers/iio/adc/ad9467.c > +++ b/drivers/iio/adc/ad9467.c > @@ -145,6 +145,7 @@ struct ad9467_chip_info { > =C2=A0 unsigned int num_lanes; > =C2=A0 unsigned int dco_en; > =C2=A0 unsigned int test_points; > + const int *offset_range; > =C2=A0 /* data clock output */ > =C2=A0 bool has_dco; > =C2=A0 bool has_dco_invert; > @@ -234,6 +235,10 @@ static int ad9467_reg_access(struct iio_dev *indio_d= ev, unsigned int reg, > =C2=A0 return 0; > =C2=A0} > =C2=A0 > +static const int ad9434_offset_range[] =3D { > + -128, 1, 127, > +}; > + > =C2=A0static const unsigned int ad9265_scale_table[][2] =3D { > =C2=A0 {1250, 0x00}, {1500, 0x40}, {1750, 0x80}, {2000, 0xC0}, > =C2=A0}; > @@ -298,7 +303,24 @@ static void __ad9467_get_scale(struct ad9467_state *= st, int index, > =C2=A0} > =C2=A0 > =C2=A0static const struct iio_chan_spec ad9434_channels[] =3D { > - AD9467_CHAN(0, BIT(IIO_CHAN_INFO_SCALE), 0, 12, 's'), > + { > + .type =3D IIO_VOLTAGE, > + .indexed =3D 1, > + .channel =3D 0, > + .info_mask_shared_by_type =3D > + BIT(IIO_CHAN_INFO_SCALE) | > + BIT(IIO_CHAN_INFO_SAMP_FREQ) | > + BIT(IIO_CHAN_INFO_CALIBBIAS), > + .info_mask_shared_by_type_available =3D > + BIT(IIO_CHAN_INFO_SCALE) | > + BIT(IIO_CHAN_INFO_CALIBBIAS), Odd style for info_mask_shared_by_type_available and info_mask_shared_by_ty= pe. Seems we have more line breaks than needed. > + .scan_index =3D 0, > + .scan_type =3D { > + .sign =3D 's', > + .realbits =3D 12, > + .storagebits =3D 16, > + }, > + }, > =C2=A0}; > =C2=A0 > =C2=A0static const struct iio_chan_spec ad9467_channels[] =3D { > @@ -367,6 +389,7 @@ static const struct ad9467_chip_info ad9434_chip_tbl = =3D { > =C2=A0 .default_output_mode =3D AD9434_DEF_OUTPUT_MODE, > =C2=A0 .vref_mask =3D AD9434_REG_VREF_MASK, > =C2=A0 .num_lanes =3D 6, > + .offset_range =3D ad9434_offset_range, > =C2=A0}; > =C2=A0 > =C2=A0static const struct ad9467_chip_info ad9265_chip_tbl =3D { > @@ -499,6 +522,33 @@ static int ad9467_set_scale(struct ad9467_state *st,= int val, int val2) > =C2=A0 return -EINVAL; > =C2=A0} > =C2=A0 > +static int ad9467_get_offset(struct ad9467_state *st, int *val) > +{ > + int ret; > + > + ret =3D ad9467_spi_read(st, AN877_ADC_REG_OFFSET); > + if (ret < 0) > + return ret; > + *val =3D ret; > + > + return IIO_VAL_INT; > +} > + > +static int ad9467_set_offset(struct ad9467_state *st, int val) > +{ > + int ret; > + > + if (val < st->info->offset_range[0] || val > st->info->offset_range[2]) > + return -EINVAL; > + > + ret =3D ad9467_spi_write(st, AN877_ADC_REG_OFFSET, val); > + if (ret < 0) > + return ret; > + /* Sync registers */ I think this is not what David meant by adding a comment. IMHO, the comment= as-is does not bring any added value. - Nuno S=C3=A1