Thread (6 messages) 6 messages, 4 authors, 2021-12-12

Re: [PATCH v2 5/8] pinctrl: nuvoton: Add driver for WPCM450

From: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Date: 2021-12-12 23:03:45
Also in: linux-devicetree, lkml, openbmc

On Fri, Dec 10, 2021 at 02:41:45AM +0100, Linus Walleij wrote:
On Thu, Dec 9, 2021 at 9:26 AM Zev Weiss [off-list ref] wrote:
quoted
On Wed, Dec 08, 2021 at 05:58:30AM PST, Jonathan Neuschäfer wrote:
quoted
quoted
quoted
BIT()
I'll use it, but in this case, I think it doesn't simplify much the
whole expression all that much. Is there perhaps a macro that
constructs a continuous bitmask of N bits, perhaps additionally
left-shifted by M bits?

Maybe somewhere in the bitmap_* API...
There's GENMASK(), though it takes a high bit and low bit rather than a
bit position and count, so it'd require a small bit of arithmetic, e.g.

  lastbit = gpio->first_irq_bit + gpio->num_irqs - 1;
  ours = GENMASK(lastbit, gpio->first_irq_bit);

or a manual shift:

  ours = GENMASK(gpio->num_irqs - 1, 0) << gpio->first_irq_bit;
I think this can be handled with FIELD_PREP() from
<linux/bitfield.h>? Some examples at the top of the
header.
Thank you both!

Best regards,
Jonathan

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help