From: Matti Vaittinen <mazziesaccount@gmail.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: "Matti Vaittinen" <matti.vaittinen@fi.rohmeurope.com>,
"Jonathan Cameron" <jic23@kernel.org>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Nuno Sa" <nuno.sa@analog.com>,
"David Lechner" <dlechner@baylibre.com>,
"Javier Carrasco" <javier.carrasco.cruz@gmail.com>,
"Olivier Moysan" <olivier.moysan@foss.st.com>,
"Guillaume Stols" <gstols@baylibre.com>,
"Dumitru Ceclan" <mitrutzceclan@gmail.com>,
"Trevor Gamblin" <tgamblin@baylibre.com>,
"Matteo Martelli" <matteomartelli3@gmail.com>,
"Alisa-Dariana Roman" <alisadariana@gmail.com>,
"João Paulo Gonçalves" <joao.goncalves@toradex.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
linux-kernel@vger.kernel.org, linux-iio@vger.kernel.org
Subject: Re: [PATCH v9 6/8] iio: adc: Support ROHM BD79124 ADC
Date: Fri, 21 Mar 2025 10:01:00 +0200 [thread overview]
Message-ID: <ae33de64-1ba1-4bd2-a139-3f0b5986f41e@gmail.com> (raw)
In-Reply-To: <Z9wVQ8vgV8kQylqG@smile.fi.intel.com>
On 20/03/2025 15:16, Andy Shevchenko wrote:
> On Thu, Mar 20, 2025 at 10:22:00AM +0200, Matti Vaittinen wrote:
>> The ROHM BD79124 is a 12-bit, 8-channel, SAR ADC. The ADC supports
>> an automatic measurement mode, with an alarm interrupt for out-of-window
>> measurements. The window is configurable for each channel.
>>
>> The I2C protocol for manual start of the measurement and data reading is
>> somewhat peculiar. It requires the master to do clock stretching after
>> sending the I2C slave-address until the slave has captured the data.
>> Needless to say this is not well suopported by the I2C controllers.
>>
>> Thus do not support the BD79124's manual measurement mode but implement
>> the measurements using automatic measurement mode, relying on the
>> BD79124's ability of storing latest measurements into register.
>>
>> Support also configuring the threshold events for detecting the
>> out-of-window events.
>>
>> The BD79124 keeps asserting IRQ for as long as the measured voltage is
>> out of the configured window. Thus, prevent the user-space from choking
>> on the events and mask the received event for a fixed duration (1 second)
>> when an event is handled.
>>
>> The ADC input pins can be also configured as general purpose outputs.
>> Make those pins which don't have corresponding ADC channel node in the
>> device-tree controllable as GPO.
>
> ...
>
>> +struct bd79124_raw {
>> + u8 val_bit0_3; /* Is set in high bits of the byte */
>> + u8 val_bit4_11;
>> +};
>
> Again, this is confusing.
>
> Just put a bit order map in the comment as I suggested previously.
> When I see variable name containing bit range like above I think
> about the same bit order, i.e. with your comment it makes like this
>
> bit number 7 6 5 4 3 2 1 0
> data bit 0 1 2 3 x x x x
Gah. I think I now understand what you're after. And, I agree, I haven't
been as clear as I could've been.
The pit numbers in the struct members:
u8 val_bit0_3; and u8 val_bit4_11;
are _not_ intended to represent the bit ordering - only the bit
positions. Like, bits from bit 0 to bit 3 are stored in high bits of
this u8 - where the "0 to 3" was just picked as order based on it being
from the smaller to greater (which I believe is grammatically typical) -
not based on how the bits are ordered in the register. If the order of
the bits was indeed reverted, then we should see much more complex
conversions than what is presented in these macros.
I will update the variable names to:
val_bit3_0; and val_bit11_4; I think it should sort out the confusion. I
won't go to bit level representation of the full registers:
> bit number 7 6 5 4 3 2 1 0
> data bit 3 2 1 0 x x x x
and
> bit number 7 6 5 4 3 2 1 0
> data bit b a 9 8 7 6 5 4
because it suggests there is something very strange in the registers
(which is not the case) - and it is hard to spot if some bits have
indeed changed the place.
Yours,
-- Matti
next prev parent reply other threads:[~2025-03-21 8:01 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-20 8:20 [PATCH v9 0/8] Support ROHM BD79124 ADC Matti Vaittinen
2025-03-20 8:20 ` [PATCH v9 1/8] dt-bindings: ROHM BD79124 ADC/GPO Matti Vaittinen
2025-03-20 8:21 ` [PATCH v9 2/8] property: Add functions to iterate named child Matti Vaittinen
2025-03-20 8:21 ` [PATCH v9 3/8] iio: adc: add helpers for parsing ADC nodes Matti Vaittinen
2025-03-20 8:21 ` [PATCH v9 4/8] iio: adc: rzg2l_adc: Use adc-helpers Matti Vaittinen
2025-03-20 13:13 ` Claudiu Beznea
2025-03-21 12:27 ` Matti Vaittinen
2025-03-20 8:21 ` [PATCH v9 5/8] iio: adc: sun20i-gpadc: " Matti Vaittinen
2025-03-20 8:22 ` [PATCH v9 6/8] iio: adc: Support ROHM BD79124 ADC Matti Vaittinen
2025-03-20 13:16 ` Andy Shevchenko
2025-03-20 13:38 ` Matti Vaittinen
2025-03-21 8:01 ` Matti Vaittinen [this message]
2025-03-21 12:06 ` Andy Shevchenko
2025-03-21 12:17 ` Matti Vaittinen
2025-03-21 13:16 ` Andy Shevchenko
2025-03-21 13:41 ` Matti Vaittinen
2025-03-21 13:56 ` Andy Shevchenko
2025-03-24 6:42 ` Matti Vaittinen
2025-03-20 8:22 ` [PATCH v9 7/8] MAINTAINERS: Add IIO ADC helpers Matti Vaittinen
2025-03-20 8:22 ` [PATCH v9 8/8] MAINTAINERS: Add ROHM BD79124 ADC/GPO Matti Vaittinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ae33de64-1ba1-4bd2-a139-3f0b5986f41e@gmail.com \
--to=mazziesaccount@gmail.com \
--cc=alisadariana@gmail.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=dlechner@baylibre.com \
--cc=gstols@baylibre.com \
--cc=javier.carrasco.cruz@gmail.com \
--cc=jic23@kernel.org \
--cc=joao.goncalves@toradex.com \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matteomartelli3@gmail.com \
--cc=matti.vaittinen@fi.rohmeurope.com \
--cc=mitrutzceclan@gmail.com \
--cc=nuno.sa@analog.com \
--cc=olivier.moysan@foss.st.com \
--cc=tgamblin@baylibre.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox