Re: [PATCH v2 4/6] iio: amplifiers: ad8366: add device tree support

From: Rodrigo Alencar

Date: Wed Jan 28 2026 - 05:24:35 EST


On 26/01/28 12:09PM, Andy Shevchenko wrote:
> On Wed, Jan 28, 2026 at 09:55:16AM +0000, Rodrigo Alencar wrote:
> > On 26/01/27 11:21PM, Andy Shevchenko wrote:
> > > On Mon, Jan 26, 2026 at 01:51:05PM +0000, Rodrigo Alencar via B4 Relay wrote:
>
> ...
>
> > > > +static size_t ad8366_pack_code(struct ad8366_state *st)
> > > > +{
> > > > + u8 ch_a = bitrev8(st->ch[0] & 0x3F);
> > > > + u8 ch_b = bitrev8(st->ch[1] & 0x3F);
> > >
> > > GENMASK() in both cases? But I don't see why ch_a needs this at all,
> > > isn't the 2 LSBs are not used anyway?
> >
> > Yes, I can adjust with:
> >
> > u8 ch_a = bitrev8(st->ch[0]) >> 2;
> > u8 ch_b = bitrev8(st->ch[1]) >> 2;
> >
> > st->data[0] = ch_b >> 2;
> > st->data[1] = (ch_b << 6) | ch_a;
> >
> > so no need for masking both.
>
> This is better, but let's think a bit more. The data we put seems to be
> __be12 (yeah, we don't have the exact type for that) and can be put slightly
> differently.
>
> So, something like
>
> put_unaligned_be16((ch_b << 6) | ch_a, &st->deta[0]);
>
> should be better, no? (Note, you would need linux/unaligned.h).

ok, ch_b would have to be u16 and ch_a could be too (for consistency)

--
Kind regards,

Rodrigo Alencar